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.
adt:
Abstract Data Types - Implemented in C.
aic:
Algorithms in C (Third edition) Parts 1-4 - Robert Sedgewick
assembler/arm/aal:
Arm Assembly Language Fundamentals and Techniques by William Hohl
assembler/arm/eggwall:
Arm Assembly exercises http://www.eggwall.com/2011/09/android-arm-assembly-device-set-up-part.html
blp:
Beginning Linux Programming - Neil Matthew and Richard Stones.
CLRS:
Introduction to Algorithms - Cormen, Leiserson, Rivest, Stein
cpl:
The C Programming Language - Brian W. Kernighan, Denis M. Ritchie, Second edition.
gopl:
The Go Programming Language - Alan A. A. Donovan, Brian W. Kernighan
haskell/LearnYouAHaskell:
Learn You a Haskell for Great Good http://learnyouahaskell.com/
haskell/RealWorldHaskell:
Real World Haskell - Bryan O'Sullivan, John Goerzen, Don Stewart
haskell/CIS194:
http://www.seas.upenn.edu/~cis194/fall16/
haskell99HaskellProblems:
https://wiki.haskell.org/H-99:_Ninety-Nine_Haskell_Problems
perl/learning-perl:
Learning Perl - Randal L. Schwartz, brian d foy and Tom Phoenix, Sixth edition.
perl/intermediate-perl:
Intermediate Perl - Randal L. Schwartz, brian d foy and Tom Phoenix, Second edition.
programming-perls:
Programming Perls - Jon Bentley
pthw:
Python the Hard Way - Zed A. Shaw.
scheme/little-schemer:
The Little Schemer - Daniel P. Friedman and Matthais Felleisen (Fourth Edition).
scheme/seasoned-schemer:
The Seasoned Schemer - Daniel P. Friedman and Matthais Felleisen (Fourth
Edition).
scheme/scheme-programming-language:
The Scheme Programming Language - R. Kent Dybvig (Fourth Edition).
scheme/sicp:
Structure and Interpretation of Computer Programs - Harold Abelson and Gerald
Jay Sussman with Julie Sussman
tlpi:
The Linux Programming Interface - Michael Kerrisk
UNIX/apue:
Advanced Programming in the UNIX Environment - Stevens and Rago, Third Edition.
UNIX/usp:
UNIX SYSTEMS Programming - Kay A. Robbins, Steven Robbins.
UNIX/unp:
UNIX Network Programming - Stevens, Fenner, Rudoff, Volume 1, Third Edition.
tpop:
The Practice of Programming - Brian W. Kernighan, Rob Pike.
Calculated using wc
on source files (C headers excluded)
apue: 9000
unp: 3000
usp 8000
tlpi: 9000
perl: 2000
C lib: 1000
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