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

vim - Switch to Vim for Good
Sublime Text - Unofficial Documentation
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
Learn C The Hard Way
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