Hate it or love it, but reading is an integral part of our professional life. What makes a great software developer is the amount and quality of their readings. You can argue that you can substitute reading with video tutorials and workshops, but I will not be convinced. Good books contain thoughts and ideas that have been played in their authors' minds over and over, refined and adjusted before committed to paper. This subtlety is lost in all other means of knowledge exchange.
A definition of a good book will be different from reader to reader. Therefore, this post is opinionated. I wasn't sure if I should write it. There're more than 10 books that should be on your bookshelf! You might agree or disagree with my choices, then please post your books in the comments. I'd love to read them too.
Here's a list of books that defined my career as a software developer. I've read dozens if not hundreds of books. Yet, these 10 are the ones that seem not to age and I find myself coming back to them for reference or just reading again for fun.
This list is not in any particular order, and one book is not better than another.
|Book||Author||Why I love it|
|The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin http://amzn.to/2EqFxlb||Compared to Law, Medicine, Engineering, Accounting, Programming is a relatevely easy field to enter. There're countless success stories of self-thought programmers. This book introduces to what a Professional Programmer is. The author shows how to approach software development with honor, self-respect, and pride; work well and work clean; communicate and estimate faithfully; face difficult decisions with clarity and honesty; and understand that deep knowledge comes with a responsibility to act.|
|Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin http://amzn.to/2ssThWJ||Even bad code can function. But if code isn't clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn't have to be that way. " Another book by Uncle Bob, it is an opinionated book, but full of wonderful resources and advice on how to improve your code.|
|Clean Architecture: A Craftsman's Guide to Software Structure and Design by Robert C. Martin http://amzn.to/2Bsq7dd||Yet another book by Uncle Bob. This is an anticipated guide to Software Architecture. Soon to be a best seller like the other Clean Series. I believe the best way to improve your skill is learning from the best in the industry. Martin's half a century of experience is imprinted for us to study and apply in our trade.|
|Head First Design Patterns: A Brain-Friendly Guide http://amzn.to/2Hd6x57||This is a great book for mastering The Design Patterns. Clear explanation, good examples and just practical.|
|Peopleware: Productive Projects and Teams http://amzn.to/2sxPBDs||IT management is your ultimate goal? Read this book! Written in the 80s,it outlines the major issues with current management practices in software development field. It's amazing that most companies still make the same mistakes. If you won't move into management, at least this book will help you ask the right questions and look for red flags next time you're looking for a new job. Personally, I cannot chuckle inside when I hear "Open space office"|
|The Algorithm Design Manual by Steven S Skiena http://amzn.to/2BszJ7S||Read this book if you want to work for Google, Microsoft, Amazon or any company that loves to drill their candidates about Algorithms. Seriously, this is a must read for any programmer. The foundation for any efficient code.|
|Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin http://amzn.to/2CiZGDT||The book covers Design Paterns just like the Head First Design Patterns, but this book goes deeper in the world of OOP, software architecture and Agile Methodology.|
|Working Effectively with Legacy Code by Michael Feathers http://amzn.to/2HaEKlY||Legacy Code - You can hate it, but you cannot kill it. All code will be legacy at the end ;) Unless you're a hobby programmer, you will end up working with it. You will pull your hair out because of it. This book is sanity shield that we all need. Good Read!|
|Head First Object-Oriented Analysis and Design http://amzn.to/2CiYsZe||Ability to analyze and design solid OOP systems is science and art. The programmer who can take upon a role of an architect is worth its weight in gold. This is a good introduction book to OOP|
|The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas http://amzn.to/2EHdOfk||This book is a great read to fill the gaps that have been missed by all other books on this list. The authors will show you what it takes to master our trade, and hopefully they will equipe you with skill and idea to avoid the common pitfalls.|