To follow the path, look to the master, follow the master, walk with the master, see through the master, become the master. -- Zen Proverb
This tree contains source code I have written (also in some cases source code downloaded from text book website) whilst learning the craft of programming. Categorized by text book name (or abbreviation thereof). I have attempted to attribute all source files that were typed directly from texts to their respective authors in the first line of the code. Attribution is generally given in the source files only (not the header files). However, many files contain lines of code, or whole functions, taken directly from a text. This has been done on the path of knowledge and, I believe, is within the spirit with which the texts were written.
I owe a debt of gratitude to the authors of these texts for having the opportunity to learn from them. Many thanks.
Abstract Data Types - Implemented in C.
Arm Assembly Language Fundamentals and Techniques by William Hohl
Arm Assembly exercises http://www.eggwall.com/2011/09/android-arm-assembly-device-set-up-part.html
Beginning Linux Programming - Neil Matthew and Richard Stones.
Introduction to Algorithms - Cormen, Leiserson, Rivest, Stein
The C Programming Language - Brian W. Kernighan, Denis M. Ritchie, Second edition.
The Go Programming Language - Alan A. A. Donovan, Brian W. Kernighan
Learn You a Haskell for Great Good http://learnyouahaskell.com/
Real World Haskell - Bryan O'Sullivan, John Goerzen, Don Stewart
Learning Perl - Randal L. Schwartz, brian d foy and Tom Phoenix, Sixth edition.
Intermediate Perl - Randal L. Schwartz, brian d foy and Tom Phoenix, Second edition.
Programming Perls - Jon Bentley
Python the Hard Way - Zed A. Shaw.
The Little Schemer - Daniel P. Friedman and Matthais Felleisen (Fourth Edition).
The Seasoned Schemer - Daniel P. Friedman and Matthais Felleisen (Fourth Edition).
The Scheme Programming Language - R. Kent Dybvig (Fourth Edition).
Structure and Interpretation of Computer Programs - Harold Abelson and Gerald Jay Sussman with Julie Sussman
The Linux Programming Interface - Michael Kerrisk
Advanced Programming in the UNIX Environment - Stevens and Rago, Third Edition.
UNIX SYSTEMS Programming - Kay A. Robbins, Steven Robbins.
UNIX Network Programming - Stevens, Fenner, Rudoff, Volume 1, Third Edition.
Approximate Line Counts
wc on source files (C headers excluded)
C lib: 1000
Solution code not public (at the request of the project)
Eudyptula Challenge (C, kernel): 1000
Project Euler (Python): 3000
Matasano cryptography challenges (Python): 2000
HackerRank (Golang): More than 10 000 (not including test code).
Line count does not include open source contributions
Total approximate line count for apprenticeship so far: approx 50 000