I'm recommending the following books because they have left an impression on me after reading them. I'm trying not to include
any that will be outdated very quickly so this isn't an exhaustive list of books I've read, just the ones I think most
professional programmers should read.
Building Evolutionary Architectures: Support Constant Change
By: Neal Ford, Rebecca Parsons, Patrick Kua
Software Architecture for Developers - Technical leadership and the balance with agility
By: Simon Brown
Software Architecture for Developers - Visualise, document and explore your software architecture
By: Simon Brown
Team of Teams: New Rules of Engagement for a Complex World
By: General Stanley McChrystal
The Five Dysfunctions of a Team
By: Patrick Lencioni
Punished by Rewards: The Trouble with Gold Stars, Incentive Plans, A's, Praise, and Other Bribes
By: Alphie Kohn
Release It!: Design and Deploy Production-Ready Software
By: Michael T. Nygard
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
By: Jez Humble & David Farley
Building Microservices
By: Sam Newman
Collaborative Enterprise Architecture
By: Stefan Bente; Uwe Bombosch; Shailendra Langade
Growing Object-Oriented Software, Guided by Tests
By: Steve Freeman
Search: How The Data Explosion Makes us Smarter
By: Stefan Weitz
Notes To a Software Team Leader
By: Roy Osherove
Rework
By: Jason Fried & David Heinemeier Hansson
The Pragmatic Programmer: From Journeyman to Master
By: Andrew Hunt; David Thomas
Domain Driven Design Quickly
By: InfoQ.com (Summary of Eric Evans and Jimmy Nilsson's books)
Head First Design Patterns
By: Eric Freeman; Elisabeth Robson; Bert Bates; Kathy Sierra
Code Complete
By: Steve McConnell
Don’t Make Me Think, Revisited: A Common Sense Approach to Web Usability
By: Steve Krug
Designing with Progressive Enhancement: Building the Web that Works for Everyone
By: Todd Parker; Patty Toland; Scott Jehl; Maggie Costello Wachs