Option B by
This is a list of books I recommend reading. If this list seems overwhelming, try the marathon strategy I describe in Tips for New Software Developers. Establish a routine of reading for 20-30 minutes a day. What works best for me is to have a set time each day that I read, but there are other strategies as well. If 20-30 minutes seems too intimidating, make Mini Habits the first book you read.
I’ve enabled comments on this page so feel free to add your own recommendations!
I’m putting personal development books first, because developers tend to prioritize them last. However, I’ve found that improving yourself as a person makes you a better developer, not to mention more satisfied with your job and life in general.
- Crucial Accountability and Crucial Conversations- These books changed the way I think about and handle confrontation and have helped me immensely in both my career and personal life. Read my article on Handling Conflict in a Healthy Way for more details.
- Finding Flow - Concise, excellent read. The best book I’ve found explaining “how to feel consistently happy/satisfied in life.”
- The Power of Vulnerability - Great counterargument to the “gladiator culture” of the stereotypical male-dominated technology workplace. You don’t have to be an asshole to be a successful developer. 😊
- Self Compassion - Are you sensing a theme here? Yes, the software industry is filled with a bunch of Type A, overachievers who set high expectations on themselves and struggle with Imposter Syndrome. However, the pressure people put on themselves as a result can become counterproductive and lead to burnout. If this sounds like you, read this book.
- Deep Work - I read this after writing my article on Productivity Tips, and this book does a great job of providing the psychological research to back up why the methods I use work so well. It also gave me ideas on how to take my productivity to the next level. It includes a lot of good food for thought on limiting social media use and measuring the value of that time spent vs your long term goals.
- Mini Habits - While Deep Work advocates for extremely long periods of focus, many struggle with the willpower to do this. Mini Habits provides a great strategy for short-circuiting the intimidation and fear of failure that can paralyze you from taking steps toward your life goals. It’s a quick read and the author takes an entertaining, conversational tone.
- The Pragmatic Programmer - Essential read for any software developer.
- Code Complete - Excellent book breaking down many nuances in day-to-day code construction.
- The Mythical Man-Month - Oldie, but a goodie. Another essential foundational book for any developer or manager of developers.
- Clean Code - Great book emphasizing coding best-practices.
- The Clean Coder - How to be an effective software engineer in industry.
- Effective Java - Must read for any Java developer, however its information is only current to Java 1.5, so doesn’t include new Java features.
- Java 8 in Action - Covers new features in Java 8.
- Java Concurrency in Practice - Great book for getting a deep understanding of just how hard concurrent programming is. I think the best reason to read this book is as a means of steering you away from quickly jumping to writing your own concurrent, shared-memory (buggy) solutions to problems. Use a framework! 😊
- Design Patterns - Foundational GOF book. Must-read for any software developer.
- Domain-Driven Design - I’m a big fan of DDD, and this is the original book on the topic.
- The Amazon Way - Fast read expanding on Amazon’s leadership principles from a former Amazonian. Lots of fun stories from Amazon’s early days.
- The Checklist Manifesto - I’m a huge fan of checklists as a low-cost way to ensure consistent behavior when required. This book covers why they are so helpful and what elements go into an effective checklist. The author is a surgeon who shares several fascinating (and sometimes unsettling) anecdotes from the medical world, showing how checklists can effectively minimize human error.