Before we list all the books here, we want to discuss why we think it's essential to read them.
It increases knowledge (duh):
First off, reading has one BIG advantage; it increases knowledge! This alone should be reason enough to nurture a reading habit, no matter what the subject is.
Facilitates a common vocabulary:
Focused reading on specialized subjects enables a common vocabulary that helps communicate perspectives effectively and succinctly.
Someone else's years of experience can become your starting point:
As an industry, computer science seems to reinvent the wheel a lot because of the field's infancy. Reading has a distinct advantage here. By learning from someone else's experience, we can prevent mistakes that others have made in the past!
The last page of someone's book can become the first of ours.
Gives you a global perspective:
Reading makes you global in two senses, global geographically and global in function. Regular reading can keep you updated on what's happening in the rest of the world.
Traditionally, developers focus on development; Testers concentrate on quality; IT focuses on infrastructure... Those days are long gone. In today's software development environment, we need broad knowledge along with an in-depth specialization. Reading and acquiring new knowledge can upskill people for today's environment of agility and DevOps.
Improves communication skills:
Especially when English is not the first language, reading enhances overall communication. Given the critical role of communication in remote work, reading helps on all fronts, be it email, verbal communication, or meetings.
So, coming to the point, here's our recommended reading list:
- The Software Craftsman: Professionalism, Pragmatism, Pride by Sandro Mancuso
- Clean Code By Robert C. Martin or Implementation Patterns by Kent Beck
- Extreme Programming Explained by Kent Beck
- Clean Coder by Robert C. Martin
- The Phoenix Project by Gene Kim
- The Pragmatic Programmer, 20th Anniversary Edition by David Thomas, Andrew Hunt
- Monolith to Microservices by Sam Newman
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren Ph.D., Jez Humble, et al.
- Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin
- Refactoring: Improving the Design of Existing Code by Martin Fowler
- Working Effectively with Legacy Code by Michael Feathers