I know that you are a top rated developer. In fact I know that everyone reading this is rankning among the top 10% of all developers. How I know? Because 90% of all developers never read a programming blog, never make any side projects to learn something new, never spend any time or effort outside work hours to improve.
Many years ago, Tom Demarco and Timothy Lister wrote in Peopleware:
The average software developer, for example, doesn’t own a single book on the subject of his or her work, and hasn’t ever read one. That fact is horrifying for anyone concerned about the quality of work in the field, for folks like us who write books, it is positively tragic.
Back when they wrote that, books and not the web was the main source of information. Nowadays blogs and other web resources have largely overtaken books as the main source of information. Did that solve the problem? Do people read more? In my experience: Unfortunately not. The basic pattern persists: Most developers don’t care.
The Pragmatic Programmer has a given place in my list of must read books for professional developers. The subtitle “from journeyman to master” explains the contents very well. The book is made up of short chapters with concrete advice on how to become a master software developer. The 70 numbered tips are short and look simple, but set a really high bar on the standards to strive for. Anyone following a majority of the tips would definitely be considered a master.
Have you heard about the DRY (Don’t Repeat Yourself) principle? This is the book that introduced it and has the original explanation and motivation for the concept. To be a book about software it is remarkable timeless. Most of the tips are as relevant today as they were 10 years ago when the book was written. Source control is now much more widespread than it was back then, but Tip 23: Always use source code control still applies. Believe it or not, there are projects out there without it.
The book is made of up six chapters, with the first one being an introduction to the concept of design patterns and the second containing a case study of a “pattern view” on a sample application. The last four chapters are a catalog of design patterns. The entire book is a must read for any software developer.