Reading List ¶
My favorite books of CS and engineering:
- Compilers — textbooks such as CompilersPrinciplesTechniquesAndTools and several others.
- Algorithms — many, including classics such as DonaldKnuth's bible TheArtOfComputerProgramming,
CambridgeUniversityPress's NumericalRecipes and NicholasWirth's ancient, but still brilliant,
"Algorithms + Data Structures = Programs".
- Operating Systems — Too many to mention here, most of which were quite
theoretical and boring. My favorite will always be Advanced Programming In The Unix Environment by Richard Stevens.
I also recommend The Art of Unix Programming.
- Networking — My favorite is the immortal TCP/IP Illustrated trilogy.
- Programming Languages — All the obvious textbooks such as BjarneStroustrup's
SeePlusPlusProgrammingLanguage, and many others like the old SeeProgrammingLanguage,
ThinkingInJava, and dozens of C++ books.
- Programming Techniques — Countless. Such as SeePlusPlusTemplateMetaprogramming
and the controversial ModernSeePlusPlusDesign by AndreiAlexandrescu.
My absolute favourite is Brian Kernighan's and Rob Pike's The Practice of Programming.
- Software Architecture and Design — All the "must-read" classics such as
GangOfFour's DesignPatterns, UmlDistilled and UmlDesignPatterns.
- Project Management — My favourites are TheMythicalManMonth and
AntiPatterns, but I've also read
WaltzingWithBears,
ExecutionPlainAndSimple and a few others.
- Technical Writing — TheElementsOfStyle and DonaldKnuth's TheTexBook are my
favourites on the topics of stylish writing and typesetting.
- Numerical Methods — I'm sorry to have quite a thin mathematical background.
Nevertheless, I enjoyed reading DonaldKnuth's ConcreteMathematics and
CambridgeUniversityPress' NumericalRecipes.
- Database — Relational algebra, principles of schema normalization, SQL.