Curious, how can it be so? In Sweden it is almost impossible to not get employment after a CS degree even if you aren't really good at it (I don't mean inexperienced, will expand on it further down in this post). But if you are good at it, you also get to choose where you want to work and get well paid according to what goes for pay in this country (less then in US for sure, but to myself plenty). Is it a difficulty with obtaining proper certificates outside the degree?
I think I understand where you are going with what you are saying, but I might be wrong, so I'll put what I think about that in my own terms here. I don't care much about people's certificates, or their previous work being at large or famous companies. However these can or at least should be a good indicator of what I do care about - to grasp a candidates length, variety, and depth of experience, so that we can test a candidate's ability to change mindset, to learn, and to add to our mindset. I would say that I don't care about all the math in and of itself or programming language use. But I do care very much about their specific skills of objective and logical reasoning and task solving. A systematic mind, consistency, ability to learn fast from experience, and to know when their conclusion is based on verifiable fact, or of it is just a fair assumption. Knowing how to verify an assumption before leaning on it. This last part is what an academic degree can or at least should be a good indicator of. People who can't do this can still work and earn well, but their advancement and pay-grade where I work is limited by those abilities.
Of specific programmer skills, it is a very good trait being able to visualize how code executes on a target environment down to CPU level, and to quickly find a bug and clarify the extent of its impact (which also includes ability to test, to understand what has been tested and why, and how to consistently construct code so that it enables to do these things).
To illustrate why I think this with a real life bad personal work experience:
We've had a guy who was unable to reason about correctness of what he'd delivered, unable to self-organize by chunking up a task and plan his milestones (for some reason he thought himself smart enough to keep everything relevant in his head over the course of weeks, but he wasn't), and subsequently also failing to understand how much of the task he'd actually delivered, and then further subsequently also unable to reason about whether he was done with a task or not. As a consequence, in an environment of independent and self-driving developers (we are all both product developers and coders) his throughput was 10% of anyone else's, and also taking everyone else's time to finish up what he should have delivered when "done" ("oh, it's almost finished", after one week in and three weeks remaining, should have preferably been "these are the things I don't know how they work, so I will spend a few days on it and then deliver you an estimate"). He slowly but consistently improved for about 8 months, which was apparently painful to him but we had gone out of our way to help him enable himself to carry his part of the burden. After about six months, he even stopped introducing new types of errors to the code, and we could finally typify the errors (to make it easier to correct in a code review) and handle/correct all the delivered errors accordingly, and then he peaked his performance for a while, and then stopped improving and even reverted to the performance from barely 2 months in. He got the job in the first place because we desperately needed someone to add at least 10% to our throughput over a period of time - at that time we've been fucking tired of overtime and needed breathing room to improve our delivery processes - and in that, it worked out. We weren't able to provide a satisfying environment for ourselves and him because we couldn't weigh reasoning about the consequences in the same way, within the same contexts.
Just to illustrate a specific conversation. He thought he came up with an idea to improve our product experience in one very specific way. We told him that we'd considered it and it could not be done (without us paying or finding means to offset a considerable cost for changing the in-data at the data source company), and then gave him the entire documented logical analysis of what was missing (peer reviewed by three developers five to fifteen years senior to his at the time one year professional experience). Explaining exactly why it can not be done. He still thought it could be done. I personally walked him through it. He acknowledged every step as if he understood it, and then he surprisingly still thought it could be done. Then I explained to him that I never bet my money on something I am not 100% certain of. Not 99.999%. 100%. There is no more than absolute certainty. Then I told him (probably mistakenly so) that I am so certain of it that I'd personally give him (about) $1000 off my own next paycheck if he could actually do this thing which was absolutely and obviously, and beyond any shadow of a doubt proven to be impossible to achieve - the data has a damn missing link between the damn entities, and there is no way to invent it out of order. And I wouldn't even take money from him for being wrong. Even failing to grasp the logics, he still didn't seem to react on me explaining at length that I never, absolutely never bet money without being absolutely certain I will win, nor did he seem to acknowledge the fact that during his tenure I never did bet money without winning. He then went on to spend 6 hours of his work time trying to break this, in spite of being explicitly asked to drop it by two of us senior developers. And only so he would come to the same conclusion in the end. I seriously cringed when he surprisedly exclaimed his a-ha moment - "Hey, but this can't be done. You are right. This can't be done".
The other guy who'd asked him to drop it simply went a little red in the face and just refocused on the screen in front of him, probably because he'd had a similar (albeit shouting) conversation with the guy a week or two before, explaining how a contractual obligations of maintaining and upgrading a product we don't like weighs more than a personal opinion, and the product can not be dumped out of existence without first renegotiating the contract with the customer, which is more costly than maintaining it, while maintaining the said product is cheaper than even discussing about maintaining it.
So, we (including him) were all quite happy to see him find job somewhere else. We have a fine reputation as a company, so it was not a problem for him to change elsewhere, which kind of circles back to where I started off this topic - I don't get a hard on if you work or have worked at a large or famous or well-reputed company. Also, the value of increased throughput per developer made it easier to ask a raise, especially in the light of him getting job in US, Silicon Valley solely based on our reputation. For their sake I just hope they test his logical skills, or that he is an exact match for what they want.
Given the experience, I'd rather quit my current job (which I quite enjoy), than have to work with a person with a reasoning ability inadequate to the task, and I don't care if that person is below me, above me, or by my side. As for maths vs logics vs programming... we have a marketing guy with a fantastic logical ability. I wouldn't attach it to any branch of education. I think its just something that gets awakened in some people and not in others, through personal experience or through formal education.
Interestingly, the guy who then came after him (same age when starting with us, same school, same education, same work experience) was spot-on the first week, and his entry level was at where the previous that guy was 3 months in, and within the first month the new guy passed the peak level of the previous guy (I spent only an hour a week correcting his code, discussing properties of constructing code this way or the other, and he gave input towards some new ideas worth exploring), quickly improving his output and throughput to the team without any hand-holding at all. We've been able to speak on equal terms since, which is central to our organizational approach. He simply doesn't make more mistakes then anyone else here, and carries his own increment in the throughput value, and thus increments our team value. He adds to us.