When I look at programming jobs I often see companies looking for a specialist in technology X or technology Y. I understand the need. Companies need to launch products ASAP and they need people already comfortable in the chosen technologies.<p>However, in my opinion, they are neglecting a powerful workforce. Those guys or gals who have a breadth-first approach to learning. People fascinated with many fields of our trade. These people, sometimes neglected, could be crucial for the long term success of the company.<p>What do you think?
You have to understand the reason why the company is hiring. If they are looking for a specialist, that's because of a pressing need. They probably exhausted their network and now are throwing money at the problem by a job ad.<p>When hiring a generalist things are more relaxed. If they wait a little bit more someone from their network will pop up. So generalist posts tend to appear on job listings a lot less.
The last thing a business wants is to hire more people. This means less money for the owners/shareholders. Companies don't hire until they are forced to, and by that point they are facing a very specific blocking problem. People are extremely greedy and their motivations are to get more money as fast as possible, not find some long term success or to do a business idea fishing expedition. I think to myself, "in what cases would a criminal pay someone money" because that's the lowest common denominator of when an employer will pay someone. By keeping this perspective, I'll never misunderstand the employer's motivations or goals.
Speaking from an enterprise perspective I'd say the reason most companies do not hire generalists is because the corporate structure is not well equipped to handle such resources. Very few companies grok the concept of internal consultants (which is exactly how a generalist will have to function in order to be leveraged properly) and fewer still know how to foster that sort of talent.<p>On top of this, a company by its very nature will tend to pigeonhole employees. It is costly to do knowledge transfer, its costly to move employees around, its costly to train employees, and in reality it is inefficient to not leverage prior experience as much as possible.<p>Even though we are in the "information era" companies still very much function as if we were standing on an assembly lines.
Most companies organize technology around tools because the people making the decisions about technology at the highest level often don't really get technology; even CIO/CTOs are often from a tech-focussed business management background, not a strong engineering background with management skills layered on top.<p>You see the opposite at some places. Google, for instance, will generall yhave listings that mention a desire for "experience with" (or sometimes "significant experience with") some specific set of technologies but rarely specific <i>years</i> of experience with particular technologies, but also ask for <i>X</i> years of general experience in the field and/or a specific degree level.<p>Google appears (from their listings) to prefer to hire <i>generalists</i> with some experience in the the area of immediate need, whereas most companies frame their listings to focus on specialists without much emphasis on breadth.
I am a generalist spanning both hardware and software (with expertise on many sub-fields within these), and so this highly impacts me in spite of the stellar reputation I have amongst those who know me.<p>Many of the answers here point to a potential solution: Develop a specialization in generalization, like taking on an architect or multidisciplinary role. More thoughts on this are welcome. :-)
My ex-girlfriend graduated awhile ago from Ohio state with a degree in computer science with most of her college work done in an obscure language event there. Needless to say had problem find a job. I told her to go to comlumbus state(a community college) and take vb.net class. Viola job with the state. Employers are looking for that person that will go above and beyond.
You're a manager and realize (reluctantly) that you need to hire another programmer...<p>What's the strongest indication of success? If someone already on your team recommends them.<p>So, my theory is, programmers at companies know other generalists, and recommend them (successfully) for generalist positions.<p>And the reason you see job postings like you do (technology X and technology Y), is because the people who work at that company don't <i>already know someone</i> who knows those technologies, and is looking for a job.