As seems to be the done thing on the internets this holiday season, here’s my list.
- The C++ Programming Language: This was one of the first programming books I ever read. It taught me what C/++ programs look like, how to write a basic parser, basic object-oriented programming, the difference between stack and heap allocation, basic data structures, etc etc etc. It also gave me a deep and abiding tolerance for an always practical and recently quite pleasing systems programming language.
- Modern C++ Design: I use the techniques from this book once every never. I keep with me always the reminder that, with sufficient cleverness, the computer works for me and not the other way around.
- Advanced Programming in the UNIX Environment and…
- Unix Network Programming: Above and beyond giving me a solid understanding of how Unix works, Stevens’ excellent books taught me that sometimes there is a well trod path that gets you there quickly, easily and well, and that taking said path can can save you a lot of time and trouble.
- Literate Programming: If all you learn from this book is that people will read your programs, it is worth your time.
Differing from DHH’s list, four of five books are nominally about specific tools as opposed to more general techniques. The lessons in them, however, are quite general and apply far beyond the technologies listed on the cover.