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
Broadly Helpful
Useful, But Sometimes Only Situationally
Software Engineers
Table Stakes
Start with my [First Year Reading List]({{ site.baseurl }}{% post_url /writing/2016-03-10-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
Non-Technical
Product Managers (and their Managers and Directors)
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.