Software Design Patterns

This is the basics. Every software developer needs to understand these things. Im far from saying that this book contains the only rules you should ever follow when creating software and using patterns. I think you need to mix and match these and other patterns to help you solve the problem. But having everyone know these basic patterns and be able to speak to them from the same context is a great thing.

Mythical Man Month

https://www.amazon.co.uk/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959

Even though this book is over 30 years old it still has some excellent insights into the work we do today building software. The thinking and thought that has gone into this is great. This really should be one of those books that you re-read whenever you are having a tough time working out processes within a team.

Clean Code

https://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/

This is a great book that really teaches you about how to reason about clean code and understanding why you should make decisions about the way you write your code. I don’t maybe agree with all of it but there is a lot of good here. It will certainly help you think about the why and understand the impact of the things that you do.