I had been wanting to look into this subject, and lo, I find that someone else has already done it.
I've long been dubious that we don't have enough native-born STEM graduates in the US. My reasoning is based on my own experience rather than exhaustive data, but I think the things I have noticed are nonetheless potent arguments. First, wages in technical fields are good, but not that good. If we truly had a shortage, in the economic sense, of programmers or engineers or what have you, wages should respond appropriately. If there were a shortage of programmers, I would expect to see companies fighting to pay 18 year old high school graduates $50,000 a year. Instead, you can make that kind of wage, but you need at least a bachelor's degree, if not a master's. Programming is still a field where a true talent can rise to the top regardless of credentials, but in any discussion of larger job trends, such folks are an exception.
Mark Zuckerberg has been in the news lately pushing for more H-1B visas for high-skilled tech workers, but many tech moguls have been pushing for expansion of the H-1B program for many years, along with other different, but related programs. Zuckerberg et al. have been claiming that there aren't enough quality workers available in the US, but I find this less plausible than they simply want to keep their labor costs down by importing cheaper workers.
I can think of one explanation that would support the claim there are not enough skilled STEM workers available in the US. Plausibly, one could claim the existing industry has already skimmed the high-IQ high-motivation graduates, and the remaining workers aren't good enough to do the needed work. However, I don't think the available data supports this either. Let's look and see. Here is what the EPI report notes:
Consider that U.S. students make up one-third of the entire global population of high-performers on tests of science knowledge.
For STEM graduates, the supply exceeds the number hired each year by nearly two to one, depending on the field of study. Even in engineering, U.S. colleges have historically produced about 50 percent more graduates than are hired into engineering jobs each year.
ln the computer and information sciences field, which is where nearly half of high-skill guest workers are employed, we see that about two-thirds of college graduates find jobs in their field 1 year after graduation, and of those who don't find a job, nearly half cite low pay and poor working conditions as the reason. For some of these, I would find it plausible that they weren't actually qualfied for the job. There is a skill distribution amongst college graduates, and not everyone is qualfied to do every job in this field. However, it does seem that the higher number of guest-workers in IT compared to engineering may be associated with a higher number of US college graduates being unable to find IT work because the pay is too low.
This matches the rate of growth we see in guestworkers compared to US citizens and permanent residents graduating with degrees in computer and information sciences.
The authors of the study go on to look at the responsiveness of the domestic supply of graduates to wages over time, looking at both IT and petroleum engineering. In both cases, they find that increasing wages lead to increasing numbers of graduates in the field, while decreasing wages lead to a decrease in domestic graduates, with a suitable time lag. So in a sense, Zuckerberg is correct that the domestic supply of graduates in the computer and information sciences field is decreasing. However, the problem is he's not paying well enough, and importing workers only makes the problem worse. Unless, the domestic supply isn't what Zuckerberg is after, in which case he's getting exactly what he wants. Last time I checked, Mark Zuckerberg is really, really smart. Which is more likely?