Programming Books

I haven't read many books about programming. Most of them aren't about what I want to know. Nobody ever seems to publish anything like How to Tell When Motif Is Being Demented and Evil As Usual and When it's Just You. Most textbooks should simply be burnt. Still, there are books out there which I actually learned something from. These are the books I keep around, in my mind if not on my shelves.

The Unix Programming Environment, Kernighan and Pike. Plan 9 Documents and Manuals, Bell Labs.
Two operating systems built around the same powerful concepts. Plan 9 is still relatively obscure, but it may yet spawn a swarm of "how to" books -- twenty or thirty years from now.
The C Programming Language, Kernighan and Ritchie.
Check out the first edition if you can. C owes a lot of its success to the clarity and elegance of this book. It is glorious.
Effective C++: 50 Ways to Improve Your Programs, Scott Meyers
An entertaining, highly readable book on the benefits and pitfalls of C++ programming. Get the ARM but read this first.
The Art of Computer Game Design, Chris Crawford.
A brief but thorough examination of computer games and how they are and should be created, in Crawford's opinion. If you've ever written a game, read it.
The PET Manual, I don't want to know.
This is not a good book. It is not a bad book. It may be the most bizarre travesty of a user's manual ever to see print. Possibly written by Martians. It taught me a crucial truth: Manuals do not reveal. They contain, and they do not give up their secrets willingly.
The Mythical Man-Month, Fred Brooks
A devastating examination of how to manage a project straight into the ground. Contains the mathematical demonstration of Brooks' Law: Adding manpower to a late software project makes it later. Other chapters explore ways out of the "tarpit" of software development.
The Psychology of Computer Programming, Gerald M. Weinberg.
I've only read the second part, which is more about the sociology of computer programming. Details with many examples how simple human failings can lead to utter disaster, and the obscure virtues which keep disaster from striking.
Understanding the Professional Programmer, same guy.
A collection of essays and parables on programming as a job, the emergence of programming as a profession, and the causes of its current immaturity. Weinberg's observations are insightful and thoroughly subversive. Reading them had a lot to do with why I quit my second job.
Peopleware, DeMarco and Lister
Another book of sterling subversion, more from the management perspective. If the manager whose office it was in had paid it any attention, I might still be at the above-mentioned job.