I’ve read a couple of articles in the last couple of months that have resonated with my beliefs and aims with regards to development. One of these is Renaissance Developer, a blog entry by Charles Cook. The gist of his post is the following:
If you only concentrate on what satisfies your immediate career needs, you’ll be living in a box with tinted windows. You’ll not only see everything in the box in a single shade of colour but worse than that you’ll be missing out on a world of other interesting and intellectually entertaining software ideas. So spend your evenings and weekends on something different from how you earn a living. It will be much more fun and you’ll incidentally end up a better developer, a Renaissance developer instead of an MSCE.
The second article is an essay by Scott Ambler, which builds upon this concept and introduces the term Generalizing Specialists. The main points can be summarised from the following quotes:
A generalizing specialist is someone with one or more technical specialities who actively seeks to gain new skills in both their existing specialities as well as in other areas, including both technical and domain areas.
A generalizing specialist is more than just a generalist. A generalist is a jack-of-all-trades but a master of none, whereas a generalizing specialist is a jack-of-all-trades and master of a few.
Both of these concepts are ideals to which I aspire, to such a degree that I’ve just changed the name of my blog to “Renaissance Developer”.