Eleven books to read if you want to be a computer programmer.
The Structure and Interpretation of Computer Programs - Abelson and Sussman
Programming Pearls - Bentley
The Mythical Man Month - Fred Brooks
The Dragon Book - Aho, Ullman, Lam, Sethi
The Soul of a New Machine - Tracy Kidder
Algorithms - Cormen/Leiserson/Rivest/Stein
Transaction Processing - Gray
Computers and Intractability - Garey and Johnson
Computer Architecture: A Quantitative Approach - Hennessy and Patterson
The Art of Computer Systems Performance Analysis - Jain
Types and Programming Languages - Pierce
Notes
I have not actually ever read the last one, but it seems like a decent candidate for the one book you need to read about type theory.
Yeah, most of these books are old. New books haven’t had time to get good yet.
Don’t come after me and tell me that I need to have some OO bullshit on this list. If you can’t figure out that stuff from the material above, then I’m not talking to you anyway. If you really must have something, throw the BYTE Smalltalk issue on to the pile. It’s better than most of the crap published after it.
The best books are the ones that combine theory and practice in an interesting way. Thus my list.
Any book about a specific programming language is disqualified for not having the right set of priorities.
Honorable mentions: Any old book about the Apple II. The Peyton-Jones monographs about functional programming. The Annotated Turing. Some book about Art, or Music, or Writing. Your choice. Exploratory Data Analysis, by Tukey (this is hard and expensive to get now).
That’s all I got.