For developers, the best position is often to obtain expertise in a language with exploding demand. Before the iPhone came out, Objective-C was a fading language used to write native applications for the Mac. Then things changed and demand for Objective-C soared. The gamble for every developer is whether the new FooBar language is going to fade away or explode.
Should you contribute to open source projects?
The classic stereotype of open source projects is that they're put together by unkempt purists who turn up their nose at anything to do with money. This stereotype is quickly fading as people are learning that experience with major open source projects can be a valuable calling card and even a career unto itself.
The most obvious advantage to working on an open source project is that you can share your code with a potential employer. There are no nondisclosure agreements or proprietary restrictions that keep you from sending out a pointer to your corner of the project and saying, "I wrote that." Anyone can look at it. If you've achieved committer status, it shows you work well enough with others and know how to contribute to an ongoing project. Those are valuable skills that many programmers never develop.
Some of the most popular open source projects are now part of enterprise stacks, so companies are increasingly looking for developers who are part of the community built around the open source projects on which their stack depends. One manager at a major server company told me he couldn't afford to hire Linus Torvalds, but he needed Linux expertise. He watched the Linux project and hired people who knew Linus Torvalds. If the email lists showed an interaction between Torvalds and the developer, the manager picked up the phone.
Many open source projects require support, and providing this can be a side job that leads to a full-time career. Companies often find it much cheaper to adopt an open source technology and hire a few support consultants to make it all work, rather than go proprietary.
Savvy programmers are also investing early in open source projects by contributing code. They can work on cutting-edge open source projects on the side just because they're cool. If the project turns into the next Hadoop, Lucene, or Linux, they'll be able to turn that experimentation into a job and, quite possibly, a long-lasting career.
How do you work around ageism?
What does every tech recruiter want? An unmarried 21-year-old new graduate of a top computer science institution ready to work long hours and create great things. What about a 22-year-old with a year of experience? Uh. Maybe. Perhaps. Are there any 21-year-olds available?
Sign up for Computerworld eNewsletters.