The Art Of Computer Programming [http://www-cs-faculty.stanford.edu/~knuth/taocp.html] is a series of books by Donald E. Knuth (the creator of the General/TeX typesetting system) that explain how programming should be done. Knuth is also known as the father of computer science.

It’s the seminal work describing the basic algorithms and data structures that underly most all programming. The code samples are in a pseudo assembly language called MIX, which makes following the code samples more difficult than if they were presented in a more common language (I guess FORTRAN or Algol at the time). These days, you’d probably be better off getting a more modern data structures book (like the one by Sedgewick), and browsing through Knuth at your local university library. The advantage of using MIX is that you can exactly compute the runtime cost of the algorithm. These days most books will gloss over details and only state the order cost of computation.

The fake assembly language MIX was created to make the analysis of the algorithms easier, which is the point of TAOCP. IMHO, a modern data structures book is great but loses the depth and intriguing ideas that are captured in TAOCP. I believe TAOCP forces you to a deeper understanding of algorithmic complexity. From this guy, TAOCP comes highly recommended - it’s tedious, but it’s rewarding. –General/DanKeen

According to Knuth’s website, he has begun work on writing Volume 4, which will actually be published at 3 subvolumes, and has begun planning Volume 5. After that, he plans to revise Volumes 1-3 to use a newer version of MIX (RISC-based now, I believe), and then create Volumes 6 and 7. This man just astounds me! –General/OwenAnderson

MMIX is the new language and is RISC based (see [http://sunburn.stanford.edu/~knuth/mmixware.html] for more information). This book was written using Knuth’s General/LiterateProgramming system CWEB [http://sunburn.stanford.edu/~knuth/cweb.html].