One thing most people won't regret is reading a good book. As the title suggests, I will suggest five books that you will never regret reading.
These books are old and wise and still, they make much sense. I can guarantee you that reading these books will definitely change your perspective towards writing software.
And I believe that learning the latest technology and frameworks is still important but understanding and revising the fundamentals of building the software is much more important. Because there will be always new languages and frameworks coming up. But fundamentals and the basics will never change. So I think every dev should read these books.
Note: I have mentioned links from Amazon and it's not affiliated.
1. Clean code
This book explains various principles, patterns of writing clean code. And it also consists of lots of code examples, exercises, and real-time case studies of writing clean code. This book is not a one time read, this is a guide or reference for writing clean code.
Every developer should have ended up refactoring some code sometimes and you will end up doing lots of refactoring in the future too. So I think it's better to learn refactoring the right way.
This book explains why Refactoring is important, its process, and its principles of achieving it. It also provides various code examples and use-cases you can try. Again this is not a one time read, this is a reference book.
And I think with Refactoring, everyone will understand the need for TDD.
3. Pragmatic programmer - Your journey to mastery
This book is praised by various devs. And many talented and industry experts can't recommend this book more.
This book not only covers about coding but also teaches you how to lead the lifestyle of a programmer. Every dev should be reading this book much early in their career so that you won't be reinventing the wheel.
4. Clean Architecture
As the name suggests, this book explains how to architecture software. This book covers various topics in principles and disciplines in writing software, design principles of component separation, data management, programming paradigms, and others.
Every good software engineer will know that building software is always a trade-off. So you just have to make decisions based on various factors present to you. This book explains this very well and like the other books Uncle Bob has given the best.
5. Patterns of Enterprise Application Architecture
Software Architecture is always a difficult job to do and there are always mistakes that you might think you could have avoided. This book explains the problems of software architecture, common pitfalls that developers should learn from object developers bring in, basic design patterns, and others.
This book is basically into two parts. The first part explains software architecture and the second part is more of the reference part where it explains the architecture patterns. If you are interested in software architecture I think this book is a must-read.
I don't think I have to explain about TDD. It's hard to adapt to but I think that it is an investment you make in building quality software.
Extreme programming (XP) is one of the agile software development methodologies. It's better to learn what is XP, its lifestyle, how it can improve software development, how it is important to business, and others. XP is a lifestyle the entire team (or a company) live by and it has shown tremendous results in delivering quality software.
Thank you for reading and I hope you read these books. And if you got any recommendations you can comment on it. :) :)