Programming / Scripting Notes

At a minimum learn how to work text with various command line tools such as grep and awk. Ideally learn a scripting language such as Python and a compiled language such as C.

Learn X in Y minutes

Recommended Text Editors

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

Recommended IRC channels

freenode: #bash, #grep, #sed, #awk, #lua, #python

Recommended Reading

Rob ban der Woude's Scripting Pages


Automate the Boring Stuff with Python by Al Sweigart
Beginner's Guide to Python
CodingBat Python code practice interactive tutorial
Learn Python The Hard Way
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


BASH Basics (playlist) - Metalx1000
Shell Script Basics - BASH (playlist) - Kris Occhipinti
GNU Parallel (playlist) - Ole Tange
Google Python Class


pyvmomi - Python API bindings