Classics of Computer Science

These are must-have books about computers and programming. You simply can't go wrong with these. Even if you never read them, they look great sitting on your bookshelf!
   The C Programming Language, 2nd Edition
by Brian W. Kernighan, Dennis M. Ritchie
The original book on C, and still the best. The first edition defined the "K&R" style of C programming. This second edition is updated to cover ANSI C. No C programmer should be without this book.
   
   The C Programming Language, 2nd Edition
by Brian W. Kernighan, Dennis M. Ritchie
This is the same classic book, but in hardcover, for true C diehards!
   
   The C++ Programming Language, 3rd Edition
by Bjarne Stroustrup
This 910-page tome is the C++ bible, written by the creator of C++.
   
   Design Patterns: Elements of Reusable Object-Oriented Software
by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch
Anyone doing object-oriented programming should study this book. Read it at least twice! Published in 1994, it is already a classic.
   
   A Pattern Language: Towns, Buildings, Construction
by Christopher Alexander, Sara Ishikawa, Murray Silverstein
This is the classic book that inspired Design Patterns. Its about architecture and urban design, not about computers. Read it anyway. Many computer programmers and engineers find it inspiring, and anyone who secretly wants to be an architect will find it mind-altering!
   
   Numerical Recipes in C, Second Edition
by William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery
This is a classic book on numerical algorithms. If you do that kind of programming, and can remember your college calculus, this is a great book. It explains the algorithms in detail and with mathematical rigor, and includes example implementations in C.
   
   The Mythical Man Month: Essays on Software Engineering
by Frederick P. Brooks, Jr.
An old but timeless classic on software engineering and project management. Should be required reading!
   
   The Art of Computer Programming, 3rd Edition, Volumes 1-3
by Donald E. Knuth
This classic has been recently updated, and is now available in a 3-volume boxed set. This is the reference work on computer algorithms. Enormously comprehensive, these books can make for difficult reading. Nevertheless, they repay careful study.