I know this may seem a bit racist and discriminatory, but I have to ask why the heck tech firms are so hot and bothered to get a boost in H-1B visa's so that they can hire more foreign born IT workers?!
Honestly, what is wrong with the idea of boosting hiring of U.S. born workers and perhaps spending a little money to train them to do the jobs the firms want these foreign born individuals to do? Is it a case of the foreigners working for much lower wages? If so, tough luck you cheap bastages, pay your employees a fair wage.
Is it a case of the U.S. born workers refusing to do the type of work the companies want? Again, pay a fair wage and you'll get employees to do just about anything.
U.S. workers can't learn to do the job? B.S.
Takes too long to train people to do the job? Again, b.s. Pay fair wages along the way and people will learn quite quickly unless your IT systems are total crap, in which case, uh, spend money to upgrade them or replace the over-priced systems with systems that will actually do the job and pay for that along the way.
I just don't see why the U.S. congress needs to let another group of foreign born IT workers come into the states to take the jobs that companies like Microsoft want to give them. Especially not when I look at my son as he struggles to find his first real job and hits that old 'no experience, no job' connundrum. Hire more under employed workers, train them as necessary and put U.S. citizens to work. Stop trying to hand out money to people from other countries, no matter if in the long term it'll help you sell your products in foreign lands.
If that is the goal (training individuals to eventually go sell your systems and products in foreign lands) then build up the market there in those countries. Create satellite offices there, hire people there, train them there, etc.