Books recommendations from Bozhidar’s talk, lists by Uncle Bob, and Kent Beck, books from blog posts by Jeff Atwood and DHH.
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 recommend 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: books recommendations from Bozhidar’s 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 work Compilers: Principles, Techniques, and Tools
- every programmer should know C Programming Language
- Advanced Programming in the UNIX Environment
- Unix Network Programming volume 1 and volume 2
This a essential minimum for a good developer.
– Bozhidar
For programmers working with object-oriented languages Bozhidar recommends:
The last book in Bozhidar’s list is The Elements of Programming style.
I asked Robert C. Martin, aka Uncle Bob Martin, software engineer, author, instructor, co-author of Agile Manifesto, for books recommendations. Here is his list:
- Design Patterns
- Structure and Interpretation of Computer Programs (recommended for the second time)
- Fundamental Algorithms Vol.1 of The Art of Computer Programming series
- The Annotated Turing
- Refactoring
- Extreme Programming Explained
- Redshirts
- The “Bobiverse” trilogy, volume 1, volume 2, and volume 3
I asked speaker and author of the Extreme Programming book series Kent Beck, for books recommendations:
- On Growth and Form
- The Timeless Way of Building
- Nature’s Patterns series: Shapes, Flow, and Branches
Jeff Atwood author of Coding Horror blog and co-founder of Stack Overflow and Discourse, share his list of Recommended Reading for Developers:
- Code complete 2
- The Mythical Man-Month
- Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
- Rapid Development
- Peopleware
- 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.
David Heinemeier Hansson, aka DHH, creator of Ruby on Rails, founder and CTO at Basecamp, author, and public speaker share the 5 books that meant most for him:
- Smalltalk Best Practice Patterns
- Refactoring: Improving the Design of Existing Code (recommended for the second time)
- Patterns of Enterprise Application Architecture
- Domain-Driven Design: Tackling Complexity in the Heart of Software (recommended for the second time)
- Are Your Lights On?: How to Figure Out What the Problem Really Is
- The Elements of style, Fourth Edition
- On Writing Well: The classNameic Guide to Writing Nonfiction
David comments on each book in his post, and I recommend reading it.
All book links above are lead to Amazon store that is closest to your country. As an Amazon Associate, I earn from qualifying purchases.
Ready to Upgrade?
I’ve created a framework to help you eliminate unproductive activities, reduce decision fatigue, and plan your weeks for effortless execution. If you want to take your productivity to the next level, check out my Productivity Framework.