Andrew Huth

March 23, 2021

My software engineering reading list

After reading Four books professional developers should read, by Phil Eaton, I was inspired to write my own software engineering reading list.

Originally I thought of this as a “staff engineering” reading list, because I wouldn’t have appreciated these early in my career. When starting out, my reading was about using Ruby on Rails, HTML, and CSS.

Those were the subjects I needed to learn at the time. But after learning about the tools, it's also necessary to learn about how to work as part of an organization. These books have helped me as an engineering leader.

  1. A Philosophy of Software Design, by Jon Ousterhout (ISBN: 978-1732102200). A pretty short book about what abstraction is, and how to make good ones. Even though the examples are written in C++, it has been relevant to thinking about React components and design systems.

  2. Mastery Teaching, by Madeline Hunter (ISBN: 978-0761939306). A book about classroom teaching? Oh yes. So much of my job is teaching. Not only by instructing others, but also presenting and documenting. Madeline’s masterpiece is full of ideas that I use every day.

  3. The Minto Pyramid Principle, by Barbara Minto (ISBN: 978-0960191031). One of my favorite books, this one is about clearly communicating ideas through writing. Writing scales better than conversations (which are still important), and writing is a great way to scale yourself.

  4. An Elegant Puzzle, by Will Larson (ISBN: 978-1732265189). Engineering management may be an unusual topic for a list of engineering books. I’m not advocating that you take on management tasks, unless you want to. But there is a lot of overlap with senior+ engineering, and this book does a great job outlining approaches for things like managing technical migrations, onboarding, and team dynamics.

Two others that are great for specific interests are

  • For computer science nerds, Structure and Interpretation of Computer Programs, by Harold Abelson, Gerald Jay Sussman, and Julie Sussman (ISBN: 978-0262510875). Does using Scheme to dive in to computer science content from the 1980’s sounds like a good time? Check this classic out! No other book has inspired in me a sense of wonder about computing as much as this one. On the other hand, if this sounds terrible to you, there’s nothing wrong with skipping it.

  • For people working on web sites and apps, Inclusive Design Patterns, by Heydon Pickering (ISBN: 978-3-945749-43-2). I work on accessibility, and am biased towards this pick. It’s the best book I’ve found about accessibility, covering the why and how (in HTML and CSS).

Most of these aren’t actually about writing code. For all engineers, technical skill is important. But also a given.

We’ve gotten to where we’re at in part because of technical skill. The next level, however, also requires more people, organization, and communication skills. These books have helped me maximize my effectiveness.