Published: September 28, 2022 • Updated: October 14, 2022 • 2 min read
Here are some books that have helped me understand programming. This list is a living document that I plan to update as I read.
Beck, Kent and Andres, Cynthia. Extreme Programming Explained: Embrace Change. XP won, and this book from Kent Beck is the primary source. I revisit it often to find or refresh my ideas about software delivery.
Hoover, Dave and Oshineye, Adewale. Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman. Dave and Adewale provide a template for helping yourself or your teammates grow in their early careers. Some ideas that have greatly influenced me: wearing the white belt, exposing my ignorance, and being the worst person on a team.
Hunt, Andrew and Thomas, David. The Pragmatic Programmer: From Journeyman to Master. Andrew and David expertly explain the best ideas I know about programming as metaphors. If you want a shortcut to understanding how great programmers think, start here.
Krug, Steve. Don’t Make Me Think: A Common Sense Approach to Web Usability. Steve encourages us to ask our users to make as few arbitrary decisions as possible. If they’re thinking, you’re losing money.
Metz, Sandi. Practical Object Oriented Design in Ruby. Sandi’s book is the best introduction to Object-Oriented Programming I’ve read.
Norman, Don. The Design of Everyday Things. Diving deeper into design, I recommend this insightful book. Don shows how our minds approach tools, and how those tools can compliment or frustrate human psychology.
Petzold, Charles. Code: The Hidden Language of Computer Hardware and Software. I loved this book. Charles teaches us a mental model of how computers work from first principles.
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.