11 May 2008
I'm looking for the best books in the world on the subjects listed below. They can be beginning books, intermediate or advanced. If you know of other good books on these subjects, that you think maybe should be on this list, please let me know.
Must-Read/Classic
- C Programming Language by Brian W. Kernighan and Dennis M. Ritchie
- Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman
- Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
- Art of Computer Programming by Donald E. Knuth
Discrete Math
- Discrete Mathematics with Applications by Susanna S. Epp
- Concrete Mathematics by Ronald L. Graham, Donald E. Knuth, and Oren Patashnik
- Basic Category Theory for Computer Scientists by Benjamin C. Pierce
Computer Theory
- Computer Science: An Overview by J. Glenn Brookshear
- Introduction to the Theory of Computation by Michael Sipser
- Introduction to Computer Theory by Daniel I. A. Cohen
- Introduction to Automata Theory, Languages, and Computation by John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman
Algorithms
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
- The Algorithm Design Manual by Steve S. Skiena
- Art of Computer Programming by Donald E. Knuth
- Algorithms in C by Robert Sedgewick
- Purely Functional Data Structures by Chris Okasaki
Compilers
- The Art of Compiler Design by Thomas Pittman and James Peters
- Compilers: Principles, Techniques, and Tools by Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
- Advanced Compiler Design and Implementation by Steven Muchnick
- Linkers and Loaders by John R. Levine
Programming Language Theory and Design
- Programming Language Pragmatics by Michael L. Scott
- Types and Programming Languages by Benjamin C. Pierce
- Essentials of Programming Languages by Daniel P. Friedman and Mitchell Wand
Hardware/CPU
- Inside the Machine by Jon Stokes
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
Operating Systems
- Operating Systems Design and Implementation by Andrew S Tanenbaum and Albert S Woodhull
- Modern Operating Systems by Andrew S. Tanenbaum
- Operating System Concepts by Abraham Silberschatz, Peter Baer Galvin, and Greg Gagne
- Linux Kernel Development by Robert Love
- Linux Device Drivers by Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
Assembly
- Programming From The Ground Up by Jonathan Bartlett and Dominick, Jr. Bruno
- Assembly Language Step-by-Step by Jeff Duntemann
Network Programming
- Unix Network Programming, Volume 1 by W. Richard Stevens, Bill Fenner, and Andrew M. Rudoff
Better Programming
- Code Complete by Steve McConnell
- The Pragmatic Programmer by Andrew Hunt and David Thomas
- Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson, and John M. Vlissides
- The Mythical Man-Month by Frederick P. Brooks
- Beautiful Code by Andy Oram and Greg Wilson
Comments (9)