Text books and programming problem websites
C Scheme Roff Go Makefile Haskell Other
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CLRS
UNIX
adt
assembler/arm
blp
cpl
gopl
haskell
perl
programming-perls
pthw
scheme
sedgewick
tlpi
.gitignore
README.md

README.md

Self Learning

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.

Directory Listing

adt:
Abstract Data Types - Implemented in C.

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.

Approximate Line Counts

Calculated using wc on source files (C headers excluded)

apue: 9000
unp: 3000
usp 8000
tlpi: 9000
perl: 2000
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