A List of Definitive Computing Books

February 9, 2009

There are many books on every niche of computing. A few of these books are definitive, in that there is wide agreement that one single book is the book on a subject.

Here I attempt to gather a list of these books.

Career Programming
The Pragmatic Programmer
Code Construction
Code Complete
Algorithms
Introduction to Algorithms. The popular alternative is The Art of Computer Programming, but as I understand it nobody actually reads it.
Artificial Intelligence
The Green Book
Compilers
The Dragon Book
JavaScript
JavaScript: The Definitive Guide
C
The C Programming Language
C++
The C++ Programming Language
Java
Effective Java
Erlang
Programming Erlang
Ruby
Programming Ruby
Design Patterns
GoF 
Refactoring
Refactoring
Design
The Design of Everyday Things
Regular Expressions
Mastering Regular Expressions
Ruby on Rails
Agile Web Development With Rails
Django
The Django Book
Everyone Should Read It Because
The Wizard Book 

What have I missed?

Fine print: Where possible, I’ve linked to the author’s homepage for the book. Otherwise I just picked a decent resource. There was no scientific method in the choice of books. I went on reputation and likely answer to “Hey, I want to get good at _____ What book should I get?” There was no scientific method in the choice of categories, though I had a mental notability filter.

Advertisements

7 Responses to “A List of Definitive Computing Books”

  1. Neil Says:

    Practical common lisp?

  2. aran Says:

    @Neil: Oh, good suggestion. It’s a good lisp book… but is it head-and-shoulders beyond e.g. ANSI Common Lisp, PAIP, etc?

    @George: I thought about Machine Learning. In fact I thought about PRML but I wasn’t sure if it dominated the field as a recommended book on machine learning. Thanks for the tip— I’ll definitely check it out!

  3. Reynold Xin Says:

    I have doubt about C++ and Java part. Effective Java is much less of a definitive book than The C++ Programming Language. Also depending on skill level, C++ Primer isn’t a bad one. That said, for learning a new language, I don’t read books anyway 🙂

    C++
    The C++ Programming Language
    Java
    Effective Java

  4. zak Says:

    Hmm… can you really put “The Django Book” and “Agile Web Development With Rails” in the same category as CLRS and the Dragon Book? And you have a standard book for Ruby, and a whole new book for when you put that Ruby on Rails?

    If the only requirement is that it’s THE book in the area, why not Shyr’s “Free Monoids and Languages” (known in some (extremely) small circuits as “The Other Little Red Book”)?

    More seriously, Peirces’s “Types and Programming Languages”, Okasaki’s “Purely Functional Data Structures”, Barendregt’s “The Lambda Calculus”, Girard’s “Proofs and Types”, Bird and de Moore’s “Algebra of Programming” are all standard texts for their respective subfields of PLT.

  5. George Says:

    Zizak
    I think I totally agree with you. Esp. about Okasaki and Peirce.

  6. aran Says:

    Hey, no fair ganging up on me on my own blog!

    Actually, thanks for the great reading suggestions. This is exactly what I was hoping for. I hadn’t heard of most of those books.

    Like I said in the post, I did have a notability filter on the categories. You can call any book a leader by making the category small enough. “Google Maps Applications with Rails and Ajax” is probably the definitive book on using Rails with Google Maps but not that many people care. However, (at least on Amazon) the Rails book outsells the Dragon Book these days, and both outsell Okasaki.

    I also forgot the Red Book: the OpenGL Programming Guide.


Comments are closed.

%d bloggers like this: