Books every software engineer should read
I'm willing to bet money one of these books will help you grow.
Table of contents
Introduction
I don't agree with every sentence in every book. I remain open-minded. I take the good and leave the bad. If I disagree with something, it makes me think, and potentially learn more than I agree with.
Looking at my shelf of books I have read, these are the ones that stick out. Books I benefitted from and would have recommended to my younger self. If you're doing web development like I am, then every book will help you.
I'll share the books and sentences that come to mind.
The books
Clean Code
A book that made me write better code. After reading this book, for the first time, I started following the single-responsibility principle.
The Pragmatic Programmer
A book that inspired me to take ownership of my career and broaden my skill set.
The Software Craftsman
A book that taught me software craftsmanship and what professionalism in software engineering is.
Pragmatic Thinking & Learning
This book made me understand why I get solutions in the shower. It's a book that taught me why I must form habits that trigger my right brain.
Lean Software Development
A book I think every software engineering team should read. The Lean principles are amazing:
Eliminate waste
Amplify learning
Decide as late as possible
Deliver as fast as possible
Empower the team - people with the knowledge make the decisions
Build integrity in - integrity is not just quality, it's also adaptability to change
See the whole - don't optimize pieces at the expense of the whole (put all metrics one level above the area you want to optimize)
Modern Software Engineering
This is the first book that made me understand what software engineering is. It opened my mind and made me question the practices I follow religiously.
From Chaos to Successful Distributed Agile Teams
I loved this book. I was looking for a book on remote work. This is the book for teams that want to become agile remotely.
Learning Domain-Driven Design
Finally, a book that can explain Domain-Driven Design. I guess it's because the author himself struggled to learn it. This book is a gem. Everyone should read it.
A Web for Everyone
A must-read for anyone who wants to build user experiences accessible to everyone.
Inclusive Design Patterns
The best book I have read on accessibility. It teaches you accessible patterns, from design to code.
Don't Make Me Think
A book I need to re-read, the best design book that's out there.
Clean Agile
A book that made me understand what agile means. All misconceptions I had got demystified.
The Effective Engineer
This book made me understand that working more hours won't make me have more impact. Of course, it can, but there is no direct correlation.
Engineers Survival Guide
I wish this had been the first book I read. I could've avoided many mistakes if I had read this book.
Code Complete
The bible for writing good software.
Refactoring: Improving the Design of Existing Code
The second edition was terrific. It contained JavaScript examples. I enjoyed the book. It also dove into refactoring when there are no tests in place.
The Clean Coder
It taught me the behavior of a professional software engineer—both soft and hard skills.
Staff Engineer: Leadership beyond the management track
This book was outstanding. The author interviews people who are now staff engineers. My biggest takeaway was to tell your manager what you want, not what you think they want to hear. A book I strongly recommend for anyone who wants to go beyond being a Senior engineer.
Extreme Programming Explained: Embrace Change
A book that's dear to my heart, it taught me software engineering is a social activity. Teams can improve significantly by changing the ways they work. Not just how the team collaborates, but how it works with the customers.
Conclusion
Books contain amazing knowledge. Some have hidden gems. You're missing out on good stuff if you aren't reading.