Choosing a career in tech. is choosing an endless life learning. But, then again, which career isn't like that? Improvement is critical after all.
The Pragmatic Programmer
This book doesn't focus on any one programming language but explains logic and provides wisdom for all languages. Topics include writing code, developing a great team, managing expectations, how expensive tools don't produce better designs, etc. A book by developers, for developers - not one to miss. Also, check out https://pragprog.com/tips/.
Refactoring: Improving the Design of Existing Code
Why and when do you refactor? How do you structure classes, methods, etc.? What are unit tests? How to refactor tools? This books takes you through it all! The examples are in Java, but can be applied everywhere.
Code Complete: A Practical Handbook of Software Construction
Wow, 960 pages! Every aspect of software development is contained in this book - code structure, code formatting, variables, methods, team management, etc. The amount of knowledge in this book will make you thankful you picked it up.
Peopleware: Productive Projects and Teams
A book on managing and motivating programmers, not about programming itself. Software development is not an assembly line process. It's a creative process!
Head First Design Patterns
13 essential patterns of basic design explained with plenty of examples and illustrations. It's not another book with endless pages of text blocks. Hand-drawn diagrams and illustrations keep you engaged while learning the concepts.
Clean Code
This focuses on how to write code that is easy to read and maintain, by a human being. It contains examples in Java that are helpful to illustrate the concepts.
Working Effectively with Legacy Code
Legacy code is not ideal to work with but most developers will have to deal with it at some point or another. For those who understand how to approach this the right way, working with legacy code can potentially be an exciting adventure! This book will explain how to examine and stabilize legacy code.
A Philosophy of Software Design
This newer book introduces programming principles that lead to good, maintainable programs. The book does not focus on any particular programming language. The concepts explained are widely applicable.
Conclusion
Do you have other books to add to the list? As potential software developers are making their way into the industry, new editions and new books are being written. What are the ones that have to be read? ...since one person can't have time to read them all.
Happy coding!

Oldest comments (46)
97 Things Every Programmer Should Know - This book covers wisdoms from experienced programmers who point out the key skills and techniques required.
i second this. Just a lot of best practices and its very digestible.
97 Things Every Programmer Should Know
Thanks for the link
Is still my absolute favourite programming quote by far and will likely continue to be forever. That book really is the "art of war" of programming :D
Great article! I love Pragmatic Programmer, I refer to the tips regularly pragprog.com/tips/
I would also recommend Software Engineering at Google, it's a fantastic reference for everyday work.
thanks for the link and suggestion! I will definitely look into it and add it to the article <3
I agree with Kimmo on Software Engineering at Google! Take a look at that:)
I also firmly agree! It is more high-level than the average book on software development, yet adds so much value to different domains (testing, metrics, code analysis ...). And it really explains in-depth how Google approaches the different aspects of software engineering. An absolute cracker!
Thank you for the suggestion
Great recs! I'd also add (while not as pragmatic to developing day-to-day programming skills) the excellent "Masterminds of Programming", by Biancozzi and Warden (https://smile.amazon.com/Masterminds-Programming-Conversations-Creators-Languages/dp/0596515170/ref=mp_s_a_1_1?crid=1XX8IL4F0BZRN&keywords=masterminds+of+programming&qid=1648103695&sprefix=masterminds+of+Programming%2Caps%2C152&sr=8-1). It's a series of interviews with the designers of different programming languages, partly trash-talking each other but also with some fascinating insights into what trades and objectives go into different languages, their features, and their quirks.
Thanks for the suggestion and links :) I will definitely look into it
Head First Design Patterns is absolutely an incredible resource. The examples are useful in a more abstract sense (if you can separate Java from concept, you're good!), and the tone is playful and readable.
I'm also a fan of Clean Code by Robert Martin, and Composing Software by Eric Elliot. I have a "top 50" list saved as ebooks on my tablet - even on vacation or on the road, nerd-reading is the best reading!
What are some of the books you have on your top 50? 🤔
Ditch Clean Code, but otherwise it's a good list.
We really should be actively working to deplatform "Uncle Bob" not inflicting him on the next generation.
Thanks for the suggestion :) always appreciated
Why is that? I am 1/3 through it and was able to get some inspiration.
Why should we "deplatform" Uncle Bob?
"40 Algorithms Every Programmer Should Know" written by Imram Ahmad
Thanks for the suggestion :) I have been looking at that book actually. What do you like about it?
A list of good reads you've mentioned.
Thank you
Good recommandations. thanks!
I will also suggest the Robert C. Martin collection.
Thanks for the suggestion
I would like to also recommend "Good Code, Bad Code" by Tom Long.
Thanks for this books!
Glad the list could be of use to you