American businesses say they can't find enough programmers to fill their software development positions. Yet coders say they live in constant fear of their jobs being shipped overseas to outsourcing contractors. Can both be right?
There's no denying that software development is still a very lucrative profession. But rote coding and code maintenance are increasingly considered low-value functions -- and ones that are easily outsourced. Developers who want to maintain an advantage in today's job market need to specialize.
[ Neil McAllister explains how to solve America's programmer shortage and reveals the ugly truth behind programmer hiring quizzes. | Speaking of quizzes, see if you can pass InfoWorld's programming IQ test, round 1, and programming IQ test, round 2. | Get software development news and insights from InfoWorld's Developer World newsletter. ]
Fortunately, IT moves so quickly that there is never a shortage of unique niches for shrewd engineers to occupy. Here are just five examples of specialized skill areas that are sure to experience rapid growth in the coming years.
1. Cross-platform mobile developer
Customers choose smartphones for many reasons. Mobile network coverage varies throughout the country. Smartphones differ in features and capabilities, and not every carrier offers every model. Budget is a factor, too.
The smartphone model a customer buys usually determines which smartphone OS that customer uses. The upshot is that although leaders are emerging, the smartphone OS market is considerably more fragmented than the PC market and will probably remain so for years to come.
Smartphones all work more or less alike. The trick is knowing how to access the APIs that enable their various features, regardless of platform. That isn't easy when each platform makes you write apps in a different specialized programming language using a different set of tools. Even HTML-based apps need considerable UI tweaks before they feel like native ones.
I've said before that mobile tool vendors should do more to help facilitate cross-platform app development. Until that happens, developers who invest the time to become versed in two or more mobile ecosystems will find themselves in high demand.
2. Mainframe/cloud integration specialist
Cloud computing platforms are all the rage for Web applications. They're catching on in small business and enterprise IT departments, too. But for other market segments -- including big retailers, finance, banking, insurance, and telecom, among others -- the mainframe is still king.
In some ways, multitenant cloud computing platforms are a lot like the timeshared mainframe environments of yesteryear. In other ways, they're very different. For example, cloud applications scale horizontally; mainframe applications ... well, they scale.
This isn't to say the kind of organizations that still use mainframes aren't interested in cloud computing. They are. But expecting them to migrate their mission-critical transaction-processing applications off their mainframes is unrealistic.
That presents a significant opportunity for developers who can bridge the two worlds. Traditional mainframe developers are becoming a rare breed. Developers who speak both Java and Cobol, or who know their way around mainframe databases and cloud storage systems alike, are virtually unheard of -- but companies will be looking for them. Fill that niche, and you can write your own ticket.3. Cloud migration engineer
Companies that are investing heavily in the cloud face a different problem than ones who are sticking with mainframes. Mainframes are time-tested technology, while cloud platforms are anything but. Amazon Web Services, arguably the most mature general-purpose cloud platform, celebrates its tenth birthday this year.