Programming Notes

At a minimum learn how to work text with various command line tools such as grep and awk. I recommend learning a cross-platform programming language and having functional knowledge of BASH and PowerShell.

Learn X in Y minutes for printable references.

Recommended Text Editors

Sublime Text - Unofficial Documentation
vim - Switch to Vim for Good
nano - Official Documentation

Recommended Reading

Rob ban der Woude's Scripting Pages


xonsh, a Python shell

Dive Into Python 3
Python Tutor
 Automate the Boring Stuff with Python by Al Sweigart
 Effective Python by Brett Slatkin
 Python Tricks by Dan Bader
Beginner's Guide to Python
CodingBat Python code practice interactive tutorial
The Hitchhiker’s Guide to Python


Getting Started With Microsoft PowerShell
The PowerShell Best Practices and Style Guide
Hey, Scripting Guy!
TechNet Virtual Lab: Introduction to Windows PowerShell
Windows PowerShell Survival Guide
PowerShell Classes on Channel 9
 Learn Windows PowerShell in a Month of Lunches by Don Jones (Youtube Channel)
 Windows PowerShell Cookbook by Lee Holmes
PowerScripting Podcast
PowerShell Resources - Put together by Warren F


Learn C Programming by Robert Elder
 Illustrating C by Donald Alcock
 Practical C Programming by Steve Oualline
 Absolute Beginner's Guide to C by Greg Perry
The C Book
Rules for defensive C programming
10 Rules for Writing Safety Critical Code (PDF)


BASH Guide
BASH Guide for Beginners (PDF) - Machtelt Garrels
Learn X in Y minutes: BASH
 Classic Shell Scripting - Arnold Robbins and Nelson Beebe
Advanced BASH Scripting Guide (PDF) - Mendel Cooper


Drew's grep tutorial
grep tutorial (basics) - Bruce Barnett

Regular Expressions

regular expressions 101
Regular Expressions


awk tutorial (basics) - Bruce Barnett
Introduction to gawk - Tim Sherwood
sed & awk (2nd Edition) - Dale Dougherty and Arnold Robbins
Top 5 Shell Commands for Working with Data Files - Craig Russell
7 command-line tools for data science - Jeroen Janssens
Power Tools: Using grep, xargs, and sed


Python Training by Dan Bader
Python videos by Corey Schafer
Google Python Class