While I can vouch for there being CS graduates who seem mysteriously poor at SW dev/engineering/programming, I also know a chunk of my graduating class never made it into a SW eng career despite having solid CS foundations.
IMO many of them suffered not from being poor at stuff like writing a compiler or foundational CS (because I think some of them were better than me), but not really having a way to translate those core skills to jobs that wanted specific skills that differed. I've had fine luck getting jobs in languages I've never used, but so far as I can tell (a) most people don't even try because they believe requirements are requirements, and (b) it's less and less common consider deviation from "requirements" okay, particularly without connections of some sort.
For non SW engineer engineers it seems worse - I know a good number who've ended up starting unrelated businesses (e.g. making furniture) because they couldn't find a job within a year or so of getting a degree. Or who got masters degrees just to work for $40-$60k a year for 5+ years before finding a way to get paid better.
I do not buy the H1B argument. While I think hiring remote foreigners is now widespread and often an even more economic alternative, I have, for my whole life, seen positions written to be excessively niche, posted in places where actual job seekers will ignore or not see, and applications rejected to hire H1B hires, whether for traditional engineers (chemical, mechanical, etc.) or SW developers. My dad used to enjoy pointing out job ads that weren't supposed to get applicants in papers and magazines.
That said, there's a large mix of H1B hiring types. But most of what I've personally seen and witnessed has not struck me as savory. Every shenanigan in the books gets used - label a SW eng role as "programmer" or "IT system tech" role, muddle whether the comparative pay does or doesn't include benefits valued correctly, reject applicants for inane reasons to get the more "perfect fit" non-American.
IMO many of them suffered not from being poor at stuff like writing a compiler or foundational CS (because I think some of them were better than me), but not really having a way to translate those core skills to jobs that wanted specific skills that differed. I've had fine luck getting jobs in languages I've never used, but so far as I can tell (a) most people don't even try because they believe requirements are requirements, and (b) it's less and less common consider deviation from "requirements" okay, particularly without connections of some sort.
For non SW engineer engineers it seems worse - I know a good number who've ended up starting unrelated businesses (e.g. making furniture) because they couldn't find a job within a year or so of getting a degree. Or who got masters degrees just to work for $40-$60k a year for 5+ years before finding a way to get paid better.
I do not buy the H1B argument. While I think hiring remote foreigners is now widespread and often an even more economic alternative, I have, for my whole life, seen positions written to be excessively niche, posted in places where actual job seekers will ignore or not see, and applications rejected to hire H1B hires, whether for traditional engineers (chemical, mechanical, etc.) or SW developers. My dad used to enjoy pointing out job ads that weren't supposed to get applicants in papers and magazines.
That said, there's a large mix of H1B hiring types. But most of what I've personally seen and witnessed has not struck me as savory. Every shenanigan in the books gets used - label a SW eng role as "programmer" or "IT system tech" role, muddle whether the comparative pay does or doesn't include benefits valued correctly, reject applicants for inane reasons to get the more "perfect fit" non-American.