These aren't liberal arts majors here. The recession doubled unemployment among programmers and electrical engineers, but that means that they're up to 2.4% and 1.6% now. The US demand for STEM majors has been growing steadily, but the number of people graduating in STEM majors has been decreasing steadily over the last decade.
Degree is not necessary in tech business. Ellison, Gates, Jobs all dropped out of college. The people that teach themselves and have a "go get 'em" attitude tend to do the best. Perhaps a little on the job training is all we need to compensate for the "steady decline".
Companies want to recruit 'unicorns', people who are absolutely perfect for the job. People that they don't have to train and can be parachuted into a position and be 100% productive from day one. They want an XXX or YYY developer, not a good general purpose software engineer who can learn new things quickly.
Such 'unicorns' either don't exist or are rare enough that they can command a premium in salary that most companies don't want to pay.
So instead of recruiting someone who is competent but needs some training (say recruiting a good Java/C developer and sending them on a training course to learn Ruby), they would rather whine that there is a shortage of software developers and petition for more H1Bs.