Past, current, and future. List is in approximate reverse chronological order.


An Introduction to Functional Programming Systems Using Haskell A J T Davie

Purely Functional Data Structures Chris Okasaki

Hackers Delight Henry S. Warren, Jr.

Coders At Work Reflections on the craft of programming - Peter Seibel

Algorithms in C Parts 1 - 5 Robert Sedgewick

Compilers Principles, Techniques, and Tools - Aho Lam, Sethi Ullman

Artificial Intelligence A modern Approach - Stuart Russell and Peter Norvig


Understanding the Linux Virtual Memory Manager Mel Gorman


Computer Architecture A Quantitative Approach - John L. Hennessy, David A. Patterson (a,-)

Computer Organization and Design David A. Patterson, John L. Hennessy (second reading) (a,-)

Linux Kernel Networking Implementation and Theory - Rami Rosen (a,-)

A Guide to Kernel Exploitation Attacking the Core - Enrica Perla, Massimiliano Oldani (a,-)

The Art of Linux Kernel Design Illustrating the Operating System Design Principle and Implementation - Lixiang Yang (a,-)*

Mastering Regular Expressions Jeffrey E.F. Friedl (a,-)

UNIX Filesystems Evolution, Design, and Implementation - Steve D. Pate (a,n)

Peopleware Productive Projects and Teams - Tom DeMarco and Timothy Lister (a,-)

Programming Pearls Jon Bentley (a,s)

The Mythical Man-Month Frederick P. Brooks, Jr. (a,-)

Code Complete Steve McConnell (a,-)

802.11 Wireless Networks The Definitive Guide - Matthew S. Gast (m,-)

Linux Device Drivers 3rd Edition Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman (a,-) (read twice)

Refactoring Improving the Design of Existing Code - Martin Fowler (a,-)

The Design of the Unix Operating System Maurice J. Bach (a,-)

The Clean Coder A Code of Conduct for Professional Programmers - Robert C. Martin (a,-)

Modern Operating Systems Andrew S. Tanenbaum (m,)

Essential Linux Device Drivers Sreekrishnan Venkateswaran (a,-)

Linux Kernel Development Robert Love (a,-)

Open Data Structures Pat Morin (m,-)

The Go Programming Language (a,m) Alan A. A. Donovan, Brian W. Kernighan

Pro Git Scott Chacon (m,-)

Introduction to Algorithms Thomas H. Cormen, Charles C. Leiserson, Ronald L. Rivest, Clifford Stein (m,-)

The Algorithm Design Manual Steven S Skiena (a,n)

Apprenticeship Patterns Guidance for the Aspiring Software Craftsman - David H. Hoover and Adewale Oshineye (a,-)

Real World Haskell Bryan O’Sullivan, John Goerzen and Don Stewart (s,s)

Learn You a Haskell For Great Good Miran Lipovaca (m,m)

Structure and Interpretation of Computer Programs Harold Abelson, Gerald Jay Sussman, Julie Sussman (m,m)

The Scheme Programming Language R. Kent Dybvig (m,m)

The Little Schemer Daniel P. Friedman, Matthias Felleisen (a,a)

ARM Assembly Language William Hohl (a,m)

The Linux Programming Interface Michael Kerrisk (m,m)

Programming the World Wide Web Rebert W. Sebesta (a,-)

Applied Cryptography Bruce Schneier (a,-)

Python Essential Reference David M. Beazley (m,-)

Clean Code, A Handbook of Agile Software Craftsmanship - Robert C. Martin (a,-)

Python the Hard Way Zed A. Shaw (a,a)

UNIX Network Programming W. Richard Stevens, Bill Fenner, Andrew M. Rudoff (a,a)

Advanced Programming in the UNIX Environment W. Richard Stevens, Stephen A. Rago (a,a)

UNIX Systems Programming Kay A. Robbins, Steven Robbins (a,m)

Intermediate Perl Randal L. Schwartz, brian d foy, Tom Phoenix (a,a)

Learning Perl Randal L. Schwartz, brian d foy, Tom Phoenix (a,a)

Beginning Linux Programming Neil Matthew, Richard Stones (a,-)

Version Control with Git Jon Loeliger, Matthew McCullough (a,-)

The Pragmatic Programmer Andrew Hunt, David Thomas (a,-)

The Art of UNIX Programming Eric S. Raymond (a,-)

Expert C Programming, Deep C Secrets Peter Van Der Linden (a,-)

The Practice of Programming Brian W. Kernighan, Rob Pike (a,-)

How Linux Works Brian Ward (a,-)

Learning GNU Emacs Debra Cameron, James Elliott, Marc Loy, Eric Raymond, Bill Rosenblatt (a,-)

The Art of Computer Programming (volume 2) Seminumerical Algorithms - Donald E. Knuth (m,-)

The Art of Computer Programming (volume 1) Fundamental Algorithms - Donald E. Knuth (a,-)

Command Line Kung Foo Jason Cannon (a,-)

Linux Shell Scripting with Bash Ken O. Burtch (a,-)

From Bash to Z Shell Conquering the Command - Oliver Kiddle, Jerry Peek, Peter Stephenson (a,-)

Computer Networks A Systems Approach - Larry L. Peterson, Bruce S. Davie (a,-)

A Concise Introduction to Pure Mathematics Martin Liebeck (m,m)

Computer Organization and Design David A. Patterson, John L. Hennessy (a,-)

Operating System Concepts Abraham Silberschatz, Peter Baer Galvin, Greg Cagne (a,-)

The C Programming Language Brian W. Kernighan, Dennis Ritchie (a,a)


<Title> <author> (x, y)
x == percentage of text read
y == percentage of exercises completed
‘a’ - all
’m’ - most
’s’ - some
‘n’ - none
’-’ - no exercises in text