This article makes the fundamental mistake almost all other articles of its topic do: it assumes that software development is a monolithic entity, when it is instead a collection of extremely dissimilar camps.
Part of this is the fault of government - in almost all statistics the $200K systems architect at Google is rolled into the same column as the $45K coder pounding out VB6 apps for the company intranet.
This article is even worse than most, since it lacks any real data on programmers, and instead uses data for all STEM fields. This is a little like measuring the average height of people in Texas using data from all over the world. It's just lazy.
The more accurate title is: "top level developers in extreme shortage, mid level developers less so, USA swimming with underemployed low level developers"
And this reflects the reality on the ground. You have companies like Google, Facebook, Microsoft, et al, who are desperately trying to bring in foreign labor at the $150-200K levels (and beyond, I'm starting to see comp packages towards $300K), showering them with lavish perks that the rest of the tech industry hasn't even heard of, much less the rest of America.
Then you have the flip side, with companies like Infosys and WiPro bringing in cheapo labor at $50K a pop and renting them out at exorbitant rates, using the terms of the H-1B to hamper and exploit their employees knowing they have little recourse. You also have domestic low-skill IT workers who, despite exploding demand, have not seen their wages rise significantly.
Anyone who talks about tech immigration in the US who doesn't acknowledge these two sides is either woefully uninformed or has a vested agenda. The reality is that we need to expand immigration in the former category and hit the brakes on the latter, but this also doesn't fit nicely into the "immigration is purely a means for exploitation" narrative that some people are trying to spin.
Schools are very good at producing crappy programmers, and not very good at producing top-notch programmers. This is not a surprise, nor is it unique to America. The "look at all of these unemployed STEM graduates" argument is useless without also looking at whether or not said STEM graduates actually qualify for the jobs they seek. Simply shoving a shiny, rolled-up piece of paper at someone doesn't automatically make them competent.