Although Java is probably the most popular programming language, hiring managers find that position for Java devs are the hardest to fill, closely followed by mobile developer and .NET developer.
This league table comes from the US technical jobs website, Dice.com and raises the interesting question of why market forces can't correct for the imbalance between available jobs and suitable candidates.
According to Alice Hill, Dice.com's Managing Director:
In some cases such as mobile developers, the market is expanding faster than the talent pool can adapt. That in turn impacts software developers who can fairly transition into the mobile space.
She also points out that hiring managers "largely want journeymen, not apprentices". They are typically looking for those with 2 to 5 years experience, followed by those with 6 to 10 years.
One change she notes is that companies have been shifting the responsibility for training their employees to the individual for decades:
Hiring managers say they expect tech professionals to stay with their firm about three years. That makes it tough to cross-train, retrain, or train at all.
You might imagine that the perceived shortage of software developers might lead to suitable qualified candidates being able to gain favorable terms but Alice Hill doesn't see this happening. She concludes:
Finally, even with an unemployment rate for technology professionals hovering around 3.5 percent, bold hiring decisions are not on the agenda. Companies are largely sticking to their terms. Sometimes the pay is unacceptable. Sometimes the requirements are for fantasy candidates. And, sometimes talent remains as elusive as the next great idea to fix our tech talent gaps.