Recommended Reading for Software Engineers, Their Managers, and Others Working to Produce Software
I've created the following list(s) in an effort to help those I personally encounter and anyone one else who stumbles across it.
I've organized this list by role rather than topic, so some items may be listed twice. Find the section that best aligns with your current role.
I recommend reading every book, blog post, or article listed; I don't necessarily agree with or endorse every idea presented or advocated.
My professional history is heavily weighted toward technical roles. These lists will reflect that bias.
Software Engineering Managers (and Directors)
In addition to the below, I strongly recommend reading all of the non-technical items recommended to Software Engineers.
Table Stakes
- Lean Enterprise: How High Performance Organizations Innovate at Scale 📖
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations 📖
- The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change 📖
Broadly Helpful
- High Output Management 📖
- Peopleware: Productive Projects and Teams (3rd Edition) 📖
- Turn the Ship Around!: A True Story of Turning Followers into Leaders 📖
- What Got You Here Won't Get You There: How Successful People Become Even More Successful 📖
- Guide: Set goals with OKRs
Useful, But Sometimes Only Situationally
- Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity 📖
- Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency 📖
- The Five Dysfunctions of a Team: A Leadership Fable 📖
- Measure What Matters: How Google, Bono, and the Gates Foundation Rock the World with OKRs 📖
- The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers 📖
- Creativity, Inc.: Overcoming the Unseen Forces That Stand in the Way of True Inspiration 📖
- Fire Someone Today: And Other Surprising Tactics for Making Your Business a Success 📖
Software Engineers
Table Stakes
Start with my First Year Reading List
Books
- Managing Oneself 📖
- The Unwritten Laws of Engineering 📖
- The Pragmatic Programmer: From Journeyman to Master 📖
- The Mythical Man-Month: Essays on Software Engineering 📖
- Web Operations: Keeping the Data on Time 📖
- Head First Design Patterns 📖
- Lean Enterprise: How High Performance Organizations Innovate at Scale 📖
- Building Microservices 📖
- Release It!: Design and Deploy Production-Ready Software 📖
- Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation 📖
- Patterns of Enterprise Application Architecture 📖
Articles, blog posts, etc
- Be Kind
- Thou Shalt Not Commit Logical Fallacies
- Anscombe's quartet
- The Emperor's New Clothes (and the associated Wikipedia article)
- Falsehoods Programmers Believe About Time, Names, Addresses, Networks, etc
- Choose Boring Technology
- OWASP Top 10
- Steve Yegge's Google Platforms Rant
- HTTP Protocol: HTTP/1.1, HTTP/2
- Latency Exists, Cope!
- Fallacies of Distributed Computing
- You Can't Sacrifice Partition Tolerance
- Notes on Distributed Systems for Young Bloods
- Jepsen: On the Perils of Network Partitions [VIDEO]
- Six Myths of Product Development
- Amazon is a Technology Company; They Just Happen To Do Retail
- How Complex Systems Fail
- Harmful GOTOs, Premature Optimizations, and Programming Myths Are the Root of All Evil
- The Wrong Abstraction
Technical
- Refactoring: Improving the Design of Existing Code (2nd Edition) 📖
- Code Complete: A Practical Handbook of Software Construction, Second Edition 📖
- The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise 📖
- Domain-Driven Design: Tackling Complexity in the Heart of Software 📖
- Database Reliability Engineering: Designing and Operating Resilient Database Systems 📖
- Enterprise Integration Patterns 📖
- Microservices Patterns 📖
- Web Operations: Keeping the Data on Time 📖
- The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations 📖
- Site Reliability Engineering: How Google Runs Production Systems 📖
- The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win 📖
Non-Technical
- The Unwritten Laws of Engineering 📖
- Taking the War Out of Our Words 📖
- Braving the Wilderness: The Quest for True Belonging and the Courage to Stand Alone 📖
- Rising Strong: How the Ability to Reset Transforms the Way We Live, Love, Parent, and Lead 📖
- Influence: The Psychology of Persuasion, Revised Edition 📖
- The 48 Laws of Power 📖
- Do the right thing, wait to get fired
- No, seriously. Root Cause is a Fallacy
Product Managers (and their Managers and Directors)
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations 📖
- Lean Enterprise: How High Performance Organizations Innovate at Scale 📖
- Competing Against Luck: The Story of Innovation and Customer Choice 📖
- Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability (3rd Edition) 📖
- The Design of Everyday Things 📖
Tips for Accessing the Content
If digital text works for you, then you can actually get a great deal on many of the books by becoming a member of the Association for Computing Machinery. The $100 ACM mebership includes access to O'Reilly Safari for ~25% of the individual Safari subscription retail price. Some content may not be available, but I've found the vast majority of the books I've looked for.
If you have a commute and/or like audio content, a number of the human skills books can be found on Audible. I listen to them on my commute (when I have one), other long drives, or working around the house.