Jake Worth

Technologist Reading List

September 28, 20193 min read

“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 great critiques of them.

Some of these books in this list are programming classics, while others focus on teams, management, communication, and ethics. I’ve broken the list accordingly into two categories: code and culture.

I will update and edit this list over time with new books I discover.

Code

  • Ball, Thorsten. Writing An Interpreter In Go. I don’t think everyone should read this book. However, understanding the components of a programming language has been indispensable to me. A wise idea in programming is that you should strive to understand ‘one level below’ where you work. One level below writing in a high-level language like Go is the subject of this book. You learn 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. I revisit this book often to mine for techniques and inspiration.
  • Hoover, Dave and Oshineye, Adewale. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. Advancing from entry-level requires time and a strategy. This book will help anyone create a winning strategy.
  • Hunt, Andrew and Thomas, David. The Pragmatic Programmer: From Journeyman to Master. This is a broad survey of the techniques every programmer must know, described in useful metaphors. An alternate title could be “How programmers solve problems in the real world.”
  • 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. Ruby is so readable and her examples are so clear that you could probably pick this up without knowing any Ruby.
  • Shaw, Zed. Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to the Imaginative World of Computational Thinking with Code. This was my first Ruby book. I wish that Zed’s ‘type it, then understand it’ approach was more common in programming tutorials. Computers are understandable, and the sooner you realize that, the faster you will become the kind of programmer who can write a tutorial.
  • Simpson, Kyle. This & Object Prototypes. Succinctly explains some of the thornier features of JavaScript.

Culture

  • 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 here.
  • 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? 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 like authenticity, passion, and communication.
  • 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.
  • Isaacson, Walter. Steve Jobs. A gripping biography of a technology icon. I can’t think of any person who better embodied product vision.
  • Lanier, Jaron. You Are Not a Gadget. This is the first book that made me think critically about technology, and led me down a path to considering programming as a career. 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.
  • 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 pioneers, gone too soon.
  • 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.

Conclusion

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.


Blog of Jake Worth, software engineer in Maine.

© 2021 Jake Worth.