Never ask advice of someone with whom you wouldn’t want to trade places — Darren Hardy
The idea to collect a list of books that knowledgeable, experienced and well-known programmers recommends to read comes to me from The long Journey to Ruby Mastery conference talk by Bozhidar Batsov.
Here I share what I have found so far: the books recommendations from the Bozhidar talk, lists by Uncle Bob, and Kent Beck, books from blog posts by Jeff Atwood and DHH.
Bozhidar Batsov VP Engineering at Toptal and open-source hacker in his talk named 15 books to reach mastery as a programmer independently of programming language:
- Inside the Machine how computers work
- CODE processors and stuff
- Concrete Mathematics: A Foundation for Computer Science
- Structure and Interpretation of Computer Programs proper introduction into programming
- How to Design Programs: An Introduction to Programming and Computing
Even if you have 20 years of experience in programming you can learn a lot from the books above thinks Bozhidar.
- The Algorithm Design Manual and Introduction to Algorithms for a good understanding of algorithms
- good programmers should understand how compilers works Compilers: Principles, Techniques, and Tools
- every programmer should know C Programming Language
- Advanced Programming in the UNIX Environment
- Unix Network Programming volume 1 and 2
This a essential minimum for a good developer.
For programmers working with object-oriented languages Bozhidar recommends:
- Code complete 2
- The Mythical Man-Month
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
- Rapid Development
- The Design of Everyday Things
- About Face: The Essentials of Interaction Design
- The Inmates Are Running the Asylum
- Programming Pearls
- The Pragmatic Programmer: From Journeyman to Master
- Designing Web Usability
- Regular Expressions Cookbook
- The Visual Display of Quantitative Information
- Visual Explanations: Images and Quantities, Evidence and Narrative
- Envisioning Information
- Beautiful Evidence
Some of them Jeff mentioned in the comments on the page:
Jeff added links to Amazon as well and put his opinion under every book in his list.
- Smalltalk Best Practice Patterns
- Refactoring: Improving the Design of Existing Code
- Patterns of Enterprise Application Architecture
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- Are Your Lights On?: How to Figure Out What the Problem Really Is
- The Elements of Style, Fourth Edition
- On Writing Well: The Classic Guide to Writing Nonfiction
David comments on each book in his post, and I recommend reading it.
(by B. Batsov, Uncle Bob, K. Beck, J. Atwood and DHH)