Re: In my experience, there's always a shortage of the highly-skilled workers ...
If there's a shortage of skilled IT workers (which I don't believe there is) then I think it's actually more advantageous in the long run for both the company and the country if they train a citizen to do the jobs they can't find people for. A trained citizen doesn't have to go back to their country after a few years, losing that skill to the visa holder's home country.
In addition, many employers of my parents' generation whine endlessly about the job hopping and lack of loyalty from younger workers, when I've never felt much loyalty from them on my end. Training employees to fill in gaps that college left or for very recent technologies will show they take care about the employees and the employees may be more likely to take care of them.
This may also solve the problem of the lack of women in STEM. Radical feminists constantly moan about the gender imbalance while in my college classes, there was rarely more than one woman. If there's really a shortage of STEM graduates, then maybe they can hire a few of the unemployed Wymyn's Studies and other humanities type graduates and train them to do the jobs that computer science and information systems graduates don't care to do.