Shortage is a tricky political term. Reality doesn't work like that. X positions and Y candidates. It depends on the quality of candidates and salary. Better programmers, and companies can hire more. Higher salaries and more people will become programmers. That said, 2 counter points. First point is the speed the profession has been expanding. Programming is and has been (barring the dotcom bubble burst) an area of f…
When I was but a wee pollywog, it was pointed out to me that most open positions are never advertised in any way. Instead, when a position opens up, the hiring manager looks at the pile of resumes that are already on file.
For that specific reason, I applied to companies based on whether I'd like to work there, rather than whether they had any openings. One such company interviewed me immediately, but waited two years to actually hire me. That job actually worked out really well.
I don't actually know but have reason to believe that that's not commonly the case anymore. That is, my impression is that companies don't solicit resumes unless they have a specific opening.
From time to time I find a "Jobs" website that specifically says "We are not accepting applications at this time" or "We have no open positions".
By contrast, some others will say "We are always looking for great people, please send us your resume".
One might at first think that it's not a big deal for a position to be unfilled for a period of time. But consider that a company typically expects an employee to be worth twice their pay.
That is, if a software engineer is paid $100,000.00 per year, then to be considered truly qualified for their job, they must write $200,000.00 worth of software during that same year.
That's not $100,000.00 of pure profit. Actually that's the breakeven point - that is, writing $200,000.01 worth of code in a year would yield one cent of profit!
There are considerations of office space leasing, all manner of other costs like the equipment and software the employee requires, telephone, internet, electricity.
That "twice your salary" figure isn't specific to coders, my understanding is that that's regarded as the rule of thumb for the value of every employee, in every line of work.