You're not talking about a people shortage, you're talking about a training shortage.
Nope. Training can help people to learn about a new language, a new operating system, etc. But if people lack the talent for abstract thought, can't write something as simple as FizzBuzz in any language of their choice, then no amount of training is going to enable them to write complex software. The issue is that Universities do not want to tell people early that they lack talent and should switch to a different profession. Then they somehow finish their CS degree and cannot find a job.