The Ultimate Career Challenge
There you are all bright-eyed and eager, ready to roll up your sleeves and go to work in the exciting new world of Free/Open Source software. You have rosy visions of getting paid to do enjoyable, challenging work. Maybe even fat stock options that vest while you are still young, so you can quit the wage-slave routine and venture forth on your own and maybe even fund projects yourself.
You can't count on fat stock options, because they are just as hard to come by as they are in any profession, but getting paid to do enjoyable, challenging work is exciting all by itself, and quite probable in the FOSS world. While the FOSS world is vast and diverse, there are three arenas that I think offer the most opportunities:
- Migrating from other platforms
- Translating into other languages
My crystal ball tells me that skilled coders will always be in increasing demand. The majority of software is not developed for shrink-wrapped retail sales, but for custom in-house applications. (Some figures say maybe 20 percent of software is developed for commercial sale.) We're just in the very baby infant stage of computing; from here it's nothing but lots of growth. It's going to take a lot of bodies to cover all the coding demands, because practically everything in the world is controlled by microchips: phones, cars, trucks, factories, TVs, home appliances, airplanes, store checkstands, cameras, traffic signals – everything. (You don't want your next 747 flight to BSOD, do you? Then hone those embedded Linux skillz and save lives!)
The future of the personal computer is unclear. I think that consumer-level computing is moving toward fat network/simple user appliance, just like telephones. Customers will use simple terminal devices and all the computing power, storage, and security will be managed by the vendor. Eventually this same model will be extended to businesses, who will someday regain their sanity and demand that their IT services meet the same level of accountability, reliability, and cost-effectiveness as any other service.
Powerful personal computers will eventually disappear from the hands of unskilled users (hurrah!) and find their rightful niche as super-duper power tools for developers, engineers, graphics and sound artists, power users and anyone who wants to retain control of their data and computing infrastructure.
Most of these scenarios imply powerful, gigantic database backends. Even now, skilled database programmers are in demand, so if you're looking for a specialty that will always be there, that's the one.
So opportunities for programmers will continue to increase in both number and variety.
Migrating From Other Platforms
Starting from scratch is easy – moving from Unix to Linux is somewhat difficult, but not too hard, and moving from Windows to Linux is very difficult. Basic networking services like DNS/DHCP, e-mail, Internet, firewalls, and file-and-print serving are easy starting points. Application servers are hard, and migrating data can be downright beastly; all those closed, proprietary document formats are designed to foil migration. (Note to decision-makers: the problem will only get worse with time – don't let your data be held hostage.)
Anyone who can successfully implement large-scale migrations will be in great demand, and will not run out of work for a long long time.
Translating Into Other Languages
The ASCII character set is based on English. You may have noticed that there are several thousand human languages in the world. Additionally, people with vision or hearing impairments need help. Unicode "provides a unique number for every character, no matter what the platform, no matter what the program, no matter what the language." I don't know if Unicode is the path to easily translating programs and applications into multiple languages and to meet multiple needs, or to allow programmers to code in their own languages, but I do know that the demand for such conversions is huge.
Interestingly, this could also meet two other needs: increasing communication between diverse peoples, and lessening the need for the entire frikken' world to learn English. Just think, someday we could have our own little universal translators on lapel pins, just like on Star Trek.
A final thought: most folks think in terms of finding jobs. Why not think about being the boss of you? It's a lot of work, and requires a skill set that employed people don't bother with. But you control your own destiny, and you reap all the rewards, instead of handing them off to someone who considers you to be an unavoidable inconvenience. The FOSS world gives you all the tools you need to build a strong business, unencumbered by high price tags and ridiculously restrictive licenses and EULAs. Unleash your creativity and do what you really want to do.