Career Developers and Passionate Technologists
Programmers can be grouped into two broad categories: 1) Career Developers, and 2) Passionate Technologists. Career Developers will pick a language and a job and be very good at what they do, produce excellent work for their employer, and live happily ever after. Passionate Technologists will be constantly seeking different ways of doing things, learn a new language every year, keep old computer parts and reuse them in strange projects around the house, continually tinker with electronic gadgets of all sorts, and be considered the geekiest person around by all their friends and family. OK, perhaps that's a bit of an exaggeration and there can certainly be overlapping traits found in either group, but I'll bet most programmers can see themselves sliding over to one side or the other--or maybe they're a career developer at work but a passionate technologist at home.
Now before you fire up that email to me, let me be clear that I'm only contrasting two extremes. In no way do I want to insinuate that career developers cannot also be passionate about what they do. There are many great programmers that are very happy in their niche, are able to see the big picture, and yet stay focused on a product. This is a very good thing.
If you're running a business that needs some dedicated product development over a long period of time, you probably want a career developer on your team. If you have short-term needs that don't fit easily into a predefined job description, or need to integrate two systems that don't talk the same language, or just bought a computer but don't know what to do with it, call a technologist, someone who has breadth of experience, likes exploring new areas, thinks outside the box, and is always ready to learn something new.
I have found myself in both camps at different periods of my life but am leaning more and more toward the broad technologist side. Not that I'm losing focus on software development, but after being involved with so many different types of businesses and seeing such a wide variety of needs and solutions, I find myself naturally seeing the broader scope of things--no longer is my only tool a hammer and every problem a nail.
For a long time, I was all about Pascal. First Turbo Pascal, then Borland Pascal for DOS, then Delphi. These tools were ahead of their time being incredibly productive and leading innovation in software development. But other products have closed the gap by adding similar features and sometimes new angles to crafting software. And as the web has become ubiquitous and platforms have diversified, no longer is Windows on every desktop. In fact, no longer is the "desktop" to be assumed for any software platform.
Delphi has had a hard time adjusting to this and has adopted a technology to enable it to cross over into the iOS and Android platforms (it's had web support for a long time), but it's no longer the obvious advantage--unless all you know is Delphi. That's where being someone not encumbered by the history and culture of a business or a certain technology can be exactly what that business needs to innovate and stay relevant in a constantly changing technological world.
Being a passionate technologist--whether focused or broad-minded--takes a lot of time and effort. But it's not possible to maintain the momentum without an underlying desire for learning and embracing new ideas. And being at least part geek!