For a little over a year I’ve been planning to write a book on what makes a good software developer. This kind of book isn’t new, my personal book shelves is full of them, not to mention the hundreds of blogs and essayists sites which offer insight into what it takes to become one.
These books describe hundreds of different factors that will improve the developer lot, reams and reams have been devoted to:
- Environmental factors,
- Team structure,
- Methodology,
- Psychology.
The really good ones will make an impact and will change your life in an instant. However, the majority of developers I know consider these books pointless because the only books they think they need to read are the technical ones.
At work our book shelf is littered with titles such as WAP in 21 days and ASP in a nutshell. We’ve got more O’Reily and Wrox book then I’d care to mention and it was when I saw these literary carcasses getting dusty in favour of the latest technology release (“use dotNet to cook and egg “or something like that) that I decided enough is enough.
Transient Technology?
When I started programming I used Pascal, then Visual Basic, then ASP (VBScript, Jscript) and now (when I code) it’s in C#. Let’s not forget the forays into Delphi, Java, and C++. Plus my frequent use of TSQL, and other propriety languages such as MT’s templating system. However, rather then listing the skill portion of my CV I have a point I want to make, which is we very rarely stick with one programming language so why do we spend so much time learning the nuances of a programming language and not the supportive skills that enables us to adapt to the environment a developer works in?
I’m not suggesting that there isn’t a place for technical books. That would be absurd! My point is that in order to stand out from the crowd a developer should taking time to ask question and learn about best practice, fundamental principles, why and how developer tools work (I’m thinking Visual Studio) . We should all be interested in what are the factors that allow developers to flourish and then play our bit in ensuring that it happens.
Of course you have to write good code and for that you need to understand the languages you work with, but I’m convinced that you can get much further by working on the constants in our professions and not the things that change!