10 Recommended Books for Developers
I got a great message from a friend to ring in the new year.
“Could you suggest a list of 10 books that you’d recommend for a senior software engineer? They don’t all have to be technical; I’m open to leadership and professional development titles as well. I remember you’ve recommended some great leadership books before.”
I decided to create a page for this list so that it can be shared more broadly. Here it is, not in any particular order.
1. Becoming a Technical Leader
Published in 1986 by Gerald M. Weinberg, this book offers a unique perspective on technical leadership. It’s an engaging read that provides practical advice for immediate application and demonstrates a methodical approach to leadership.
2. Clean Agile
Published in 2020 by Robert C. Martin, this book offers a solid education on what “agile software development” really entails. I wish more people in the industry would read it.
3. The Goal
Published in 1984 by Eli Goldratt, this insightful work of fiction on optimizing systems is frequently referenced in software engineering. For senior developers, it highlights the contrast between the mindset of those focused on individual tasks (like developers writing features) and those considering the broader interconnections between subsystems. This kind of holistic thinking is essential for senior developers.
4. Site Reliability Engineering
Published in 2017, this collection of contributions from various authors offers valuable insights for application developers. It explores aspects of delivering software to users that go beyond merely making the app functional.
5. Measure What Matters
Published in 2017 by John Doerr, this book explores OKRs (Objectives and Key Results). At this stage in their careers, senior developers begin to take on team-level responsibilities. It is crucial for them to understand the complexities of aligning team goals with company objectives, as they become accountable for larger parts of the organization’s systems.
6. The Coaching Habit
Published in 2016 by Michael Bungay Stanier, this book offers concise advice on how to become an effective coach. As a senior developer, junior colleagues will seek your guidance. Understanding the value of coaching is essential for helping those around you grow.
7. Security Engineering
Published in 2020 by Ross Anderson, this book provides a broad overview of security engineering. Early-career developers often recognize the importance of security but lack the experience to confidently make the right choices. This book introduces more mature approaches to thinking about security risks.
8. Designing Data-Intensive Applications
Published in 2017 by Martin Kleppmann, this book addresses a common gap among application developers who haven’t had the chance to scale their systems. Dive into the details and enjoy the insights it offers!
9. “Effective” programming books
Books with “effective” in their titles have been especially empowering for me, helping me craft superior software. “Effective Java” and “Effective JavaScript” provided invaluable tools for making my code clearer, more maintainable, and more performant. I recommend finding an “effective” book for your preferred programming language.
10. Staff Engineer
Published in 2021 by Will Larson, this book is geared towards experienced senior developers. It effectively explains how the software developer role evolves over time and identifies the skills needed for the next phase of your career.