What books have shaped me as a programmer? In the post, I’d like to share my
personal developer reading list.
Some of these books are programming classics that have changed minds and the
discourse. Others focus on teams, management, communication, ethics, etc.– the
softer side of programming. I’ve broken the list accordingly into two
categories: code and culture.
This list is not complete; I’m still reading! I will update this list over time
with new favorites I discover.
Please reach out if you have any suggested reading for me. I’m always looking
for new ideas to consider. I’m doing something similar with
essays; check that out if you
prefer shorter-form ideas.
- Ball, Thorsten. Writing An Interpreter In Go. I don’t think everyone should
read this book. However, understanding the basic components of a programming
language has been indispensable to me. Offers that expertise via a hands-on,
test-driven Go project.
- Beck, Kent and Andres, Cynthia. Extreme Programming Explained: Embrace
Change. XP informs so much of modern software development that it’s hard to
grasp how revolutionary it was in its time.
- Hartl, Michael. Rails Tutorial. My first Rails book. A big headfirst dive
- Hoover, Dave and Oshineye, Adewale. Apprenticeship Patterns: Guidance for
the Aspiring Software Craftsman. Will help anyone create a strategy for
their early programming career.
- Hunt, Andrew and Thomas, David. The Pragmatic Programmer: From Journeyman to
Master. 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.
A clear, concise overview of how good UI reduces the amount of arbitrary
choices we ask of our users.
- Metz, Sandi. Practical Object Oriented Design in Ruby. Sandi is my hero!
Perhaps the defining introduction to Object-Oriented Programming. Exceptional.
- Olsen, Russ. Eloquent Ruby. What is the ‘Ruby Way’? Move beyond competence
and into fluency.
- Shaw, Zed. Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to
the Imaginative World of Computational Thinking with Code. My first Ruby
book. Zed’s ‘type it then understand it’, magic-free approach has greatly
- Simpson, Kyle. This & Object Prototypes. Succinctly explains some of the
- Carr, Nicholas. The Shallows: What the Internet Is Doing to Our Brains. A
detailed account– good, bad, and ugly– of what 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
- Godin, Seth. Linchpin: Are You Indispensable? Makes the argument that as
more work, including programming, becomes automated, the professionals who
will stand out in the future will be those who’ve mastered soft skills–
authenticity, passion, communication– that many developers ignore.
- Godin, Seth. The Dip: A Little Book That Teaches You When to Quit (and When
to Stick). Starting a project or working for a startup both require an
important ability: knowing when to lean in, and when to walk away.
- Hansson, David Heinemeier and Fried, Jason. Remote: Office Not Required.
Can your team function remotely? For almost every team, yes. Should you try
it out? Also yes.
- Isaacson, Walter. Steve Jobs. A gripping biography of a technology icon.
- Lanier, Jaron. You Are Not a Gadget. This is the first book I read that
made me think critically about technology, and led me down a path to
considering programming as a career. An impassioned plea for building a
- 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
- Swartz, Aaron. The Boy Who Could Change the World: The Writings of Aaron
Swartz. Thoughtful essays about technology and ethics from one of the Web’s
- Weinberg, Gerald M. The Secrets of Consulting: A Guide to Giving and Getting
Advice Successfully. Not just for consultants, but anyone who would like to
influence a technical organization.
“Not all readers are leaders, but all leaders are readers.” –Harry S. Truman
Thanks for reading. I’d love to know via Twitter the programming books that
have shaped you as a developer.