As financial advisers we spend a lot of time helping IT professionals look after and grow their financial capital. But equally important is looking after and growing your human capital – your ability to earn an income.
Regardless of where you are in your career, these 5 books will help kick your “programming maturity” up a notch, and make you an even more valuable software developer.
#1 – Agile Principles, Patterns, and Practices in C# by Robert Martin and Micah Martin
This book is insanely good. All the basics of good agile development are covered clearly and sensibly in the first section: what agile is, how to go about it, why testing and planning are so critical, and where refactoring fits in all of this. But it’s the second part of this book that really shines: design patterns are discussed in a clear and concise way, with concrete real-world examples. This book goes beyond the “what” and “how” of standard programming texts – it also delivers deep insights into when and why you should use each technique.
“Every half an age or so, you come across a book that short-circuits the school of experience and saves you years of purgatory…I cannot express how good this book really is. Code Complete is a pretty lame title for a work of brilliance.” – Jeff Duntemann, PC Techniques.
#3 – The Pragmatic Programmer: From Journeyman to Master by Andy Hunt and Dave Thomas
This book is a wonderfully concise distillation of years of experience, good high-level design principles and common sense. Essential reading if you want to become an indispensable member on your team.
This is a book that helps with the leap in knowledge and maturity from object-oriented programming to true proficiency in object-oriented design. For aspiring architects, this one uncovers the sorts of abstractions you’ll need to consider in your designs to truly align your solutions with the real-world problems you are attempting to solve with your software.
#5 Refactoring: Improving the Design of Existing Code by Martin Fowler
This is the book that made “refactoring” an every-day term. A catalogue of methods for improving the design of existing code, it will also help you write better code the first-time around.
The knowledge, ideas and insights in these books greatly assisted my professional development – what would your top picks be?