Technical books that made me a better Software Engineer
Looking back at my career, I wanted to reflect on the things I read that changed me. These are books or lectures I read or saw, and stayed with me. They either taught me something that I keep using, or created an aha! moment — made me reflect on something I already knew by giving it a name or made me rethink it in a different way.
As a leader, I’m trying to develop people more than I’m trying to develop software with my own hand. So I wanted to provide this list, I hope it will help you grow.
Software Engineering Classics
- Design Pattern — The mythological book, aka the gang of four. You can also read a more practical version for the programming language you’re most familiar with. E.g. Head First Design Patterns (useful for Java), Hands-On Design Patterns with Kotlin and others (feel free to comment here and I’ll add recommendations for other languages)
- The Pragmatic Programmer — you will find great wisdom that usually takes years of experience to learn on your own in this book
- Extreme Programming Explained — one of the first Agile books published. Provides a great foundation for any lean/agile methodology. And talks a lot about TDD (Test Driven Development)
- Clean code — a classic by Bob Martin.
- Refactoring — Improving the Design of Existing Code
- AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
- Effective Java, Effective Kotlin — great books for writing code that makes sense. In many cases, this can make the difference between what you learned in the academy and what you should be as a real engineer.
Software Management Books
- The mythical man-month — old but still very true and insightful.
- The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win
- Peopleware — I got many recommendations about it and it is considered a classic. I found it not so insightful.
- High Output Management — highly valued management book by Andrew Grove — the former chairman and CEO of Intel
- The Five Dysfunctions of a Team — Patrick Lencioni
- Radical Candor — Kim Scott — a great book about the importance of candid feedback. Very helpful when you need to give critical feedback and sometimes feel anxious about it. There is a 15min TED talk by Kim which is a great summary of the book.
Software Methodologies
- The Goal: A Process of Ongoing Improvement — not software specific but I see this as a classic that will help you improve performance and operations — of software (performance tuning for example) or processes.
- Scrum 10min video summary. The book I recommend for learning this methodology is Scrum, the art of doing twice the work in half the time.
- The Lean Startup — a must-read if you’re in a startup. 13min video summary | Book
Do you have any other books that affected your engineering career? Please add them as comments so that I and others will be inspired by them as well.
Note: I’m trying to see if this list is useful. I am tracking the purchases through Amazon Associate program. As an Amazon Associate, I earn from qualifying purchases.