“Not all readers are leaders, but all leaders are readers.” –Harry S. Truman
It’s been said that most programmers read less than one professional book per
year. I get it. Books about programming can be have short shelf lives, as well
as be expensive, hard to find, and challenging to read.
But in my experience, great programmers have read a lot of them anyway. There
are concepts defined in classic programming books that are ubiquitous in the
field. When you read those books yourself, you absorb those concepts. Or at
least develop informed critiques of them.
Some of these books in this list are programming classics, while others focus
on leadership, management, ethics, etc.. I’ve broken the list accordingly into
two categories: code and general.
I will update and edit this list over time with new books I discover.
- Ball, Thorsten. Writing An Interpreter In Go.
Learn the building blocks of all programming languages via a hands-on, test-driven Go tutorial.
- Beck, Kent and Andres, Cynthia. Extreme Programming Explained: Embrace
XP informs so much of modern software development and this is the primary source.
- Hoover, Dave and Oshineye, Adewale. Apprenticeship Patterns: Guidance for
the Aspiring Software Craftsman.
Advancing beyond entry-level requires time and a strategy; this book provides a template.
- Hunt, Andrew and Thomas, David. The Pragmatic Programmer: From Journeyman to
This is a broad survey of the techniques every programmer must know, described in useful metaphors.
- Krug, Steve. Don’t Make Me Think: A Common Sense Approach to Web Usability.
Good user interfaces ask their users to make very few arbitrary decisions.
- Metz, Sandi. Practical Object Oriented Design in Ruby.
I think this is the defining introduction to Object-Oriented Programming, and required reading for any Rubyist.
- Shaw, Zed. Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to
the Imaginative World of Computational Thinking with Code.
‘Type it, then understand it’ while realizing that computers are understandable.
- Simpson, Kyle. This & Object Prototypes.
- Carr, Nicholas. The Shallows: What the Internet Is Doing to Our Brains.
A detailed analysis of the world we programmers are building.
- Ford, Martin. The Lights in the Tunnel: Automation, Accelerating Technology
and the Economy of the Future.
A preview of the future of work in the face of automation.
- Godin, Seth. Linchpin: Are You Indispensable?
As more work becomes automated, the professionals who will stand out will be those who’ve mastered soft skills like authenticity, passion, and communication.
- Godin, Seth. The Dip: A Little Book That Teaches You When to Quit (and When
Starting a project or working for a startup both require an important ability: knowing when to lean in and when to walk away.
- Isaacson, Walter. Steve Jobs.
A gripping biography of a person who embodied product vision.
- Lanier, Jaron. You Are Not a Gadget.
An impassioned plea for a better internet.
- Newport, Cal. So Good They Can’t Ignore You: Why Skills Trump Passion in the
Quest for Work You Love.
Makes the case that the passion we chase as professionals only comes when we have first put in the work to be exceptional.
- Norman, Don. The Design of Everyday Things.
How good and bad design is rooted in psychology.
- Swartz, Aaron. The Boy Who Could Change the World: The Writings of Aaron
Thoughtful essays about technology and ethics from one of the Web’s pioneers, gone too soon.
- Sinek, Simon. The Infinite Game.
Organizations that win in the long term choose to play games with no end.
- Weinberg, Gerald M. The Secrets of Consulting: A Guide to Giving and Getting
How to advise in a technical organization.
Please reach out if you have any suggested reading for me. I’m always looking
for new ideas to consider. I’m also writing a similar long-running post on
essays that have influenced me. I
recommend that if you prefer shorter-form ideas.
What are your thoughts on this? Let me know!
Join 100+ engineers who subscribe for advice, commentary, and technical deep-dives into the world of software.