Why don't tech companies (or any company really) invest in their workers and help them attain new skills and career advancement?
Why don't tech companies (or any company really) invest in their workers and help them attain new skills and career advancement?
Because they don't actually want the "skill shortage" solved. There actually is no skill shortage.
Companies create the "skill shortage" by making the job requirements so impossible that no one applies:
"speaks Mandarin, programs in Java 7.1 and .Net 6.5, is able to travel 80% of the time, is a Backbone.js guru...."
Just look at the laundry list of "must-haves" in a job posting now a days to really get the true picture.
If companies really wanted to solve their "skill shortage" they would look for talent that could be trained to the exact technology rather than demanding that every possible candidate already know the tech stack.
It's far more of a sure thing that you can move into immediately vs. possibly not move into at all. You can choose an potential employee to train who may not 'just get it' for a cost far higher than hiring the experienced guy would cost. It's like building a house with cost overruns that your construction loan won't cover anymore and you cant get any more money. You end with a huge useless debt that YOU have to pay now and a useless half-finished house that most people don't want to buy.
Also when you train employees, you get these retention contracts that can create a perverse incentive for and employee to take advantage of or a deal as an employee that you wouldn't want to take, because you'd have to pay for a training cost subject to the whims of an employer firing you.