Essential Books That Every Programmer Should Read
by B. Batsov, Uncle Bob, K. Beck, J. Atwood, and DHH
Read the most recent version of this article on my personal blog.
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.
– Bozhidar
For programmers working with object-oriented languages Bozhidar recommends:
Also:
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
- Fundamental Algorithms Vol.1 of The Art of Computer Programming series
- The Annotated Turing
- Refactoring
- Extreme Programming Explained
- Redshirts
- The “Bobiverse” trilogy
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
- 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.
Call To Action
Subscribe with this link to the mailing list in which I share secrets of my success as a programmer. You will gain knowledge distilled from 12 years of work experience in 4 different kinds of businesses, from the huge state companies to small fast-growing startups.
What your list of “Essential Books That Every Programmer Should Read”?
Which programmer would you like to ask for advice about which book to read next?
Comment below or tweet me.
If you like this writeup share it with friends and clap a lot (Click 👏) to make it reachable to more people on Medium.
Another way to spread the word is to retweet this 👇