Yep. I actually had that in mind when I wrote the rant -- my time at Looking Glass taught me that, eg, 3D renderers are *not* a generalist function, but instead require deep math background and a fiendish devotion to optimization.
That said, specialist fields are *relatively* small. It's true that you need people with specialty knowledge for game simulators, device drivers, database implementation, and that sort of thing, but I'd be surprised if all of that amounts to more than 10% of the total programming out there.
Indeed, the number of times that I've looked at something being done at a company of mine and said, "That requires specialist background, and is out of my league" have been pretty modest. There was the physics and rendering work at Looking Glass; here, some of the high-level data processing stuff requires a *bit* of specialty knowledge about doing it efficiently. Several jobs have benefited from having some depth in security, and I've built that up gradually.
But for most projects, even ostensibly "special" ones, the necessary knowledge is mostly pretty general. You have to be comfortable at multi-threading for a *lot* of domains, but IMO that's always a good skill to have. All in all, most programming turns out to be mostly just programming...
Re: Exceptions...
Date: 2011-11-04 01:45 pm (UTC)That said, specialist fields are *relatively* small. It's true that you need people with specialty knowledge for game simulators, device drivers, database implementation, and that sort of thing, but I'd be surprised if all of that amounts to more than 10% of the total programming out there.
Indeed, the number of times that I've looked at something being done at a company of mine and said, "That requires specialist background, and is out of my league" have been pretty modest. There was the physics and rendering work at Looking Glass; here, some of the high-level data processing stuff requires a *bit* of specialty knowledge about doing it efficiently. Several jobs have benefited from having some depth in security, and I've built that up gradually.
But for most projects, even ostensibly "special" ones, the necessary knowledge is mostly pretty general. You have to be comfortable at multi-threading for a *lot* of domains, but IMO that's always a good skill to have. All in all, most programming turns out to be mostly just programming...