From time to time some colleagues and programmers I know have asked me for book suggestions. As a full time programmer staying up to date is crucial but this becomes extremely difficult with the daily routine and the challenges that we must face. With less free time to invest in our own growing choosing carefully what to read to improve our skills becomes an important matter.
I tend to favor the recommendation of non-technical books as I find them full of tips that you can implement right away with extraordinary results. Most of those books don’t focus on a given technology or methodology but rather focus on expanding our view, sharing experiences and overall improving our communication skills and acquiring better habits which are key to our success in our everyday collaboration, after all, writing code is all about communicating both machines and programmers.
With the past years I’ve found six valuable resources that I truly recommend you whether you are a proven leader with lots of experience or a young enthusiast.
Here it’s the list of my favorite six:
This was a book I needed to read earlier. It was a great book with lots of advises, dos and don’ts for effective communication and collaboration. it has also a lot of examples I could relate to and advises to handle situations that worked in Google, SVN and other teams. Finally the great surprise was the final list with reference books to read more about the subject. I recommend this book a lot if you have problems with your social skills as I had.
2. The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas
This book is a classic and no matter the years it remains valid. Is definitely another book that every programmer should read multiple times in their career. It provides useful tips to apply when you’re working on a team or how your code should speak about quality. It’s a must read.
3. The Passionate Programmer: Creating a Remarkable Career in Software Development by Chad Fowler, David Heinemeier Hansson
This is one of those books that every programmer must read eventually. It provides you a full list of tips and to-do’s in your daily work that will improve your overall role in your current company. It also provides great analogies about how being a musician helped him to achieve goals and how you should not fear to lose your job against outsourcing but rather become a more valuable programmer. Also at the end of every chapter it has a full list of things to do so it just invites you to keep your hands in action from day 1.
4. Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
Robert C. Martin is a proven authority in the world of software. In this book he provides a lot of techniques and concepts that will help you to greatly improve your skills and coding standards. It will guide you through all the processes from naming conventions to common sense recommendations such as the boy scout rule.
This is one of those books that change your way of work since day one and you’ll be one before and after reading it.
5. 97 Things Every Programmer Should Know: Collective Wisdom from the Experts by Kevlin Henney
This was an excellent book with many good advises. Great book for those that search for better practices at coding. The ones from Robert C. Martin are excellent to focus on becoming better programmers and professionals. There are also plenty of good examples of why doing the code fast and with poor quality should be avoided.
6. Code Simplicity: The Fundamentals of Software by Max Kanat-Alexander (Goodreads Author)
This is a very short book with excellent tips to improve your conceptions about what simple code is. It provides a full list of tips of when you should consider re-factoring rewriting and reduce complexity in your code. It also provides tips for choosing technologies in your project. It’s a great guide overall and can be read in a few hours with a great impact in your conceptions of software development.
I hope this was useful for you. Happy reading!
