Maybe in the US or SV but in Europe nobody outside research, academia and archaic engineering companies where a degree is a form of signaling, care about your degrees.
In tech here, unless you have x years experience in the latest tech(.net, typescript, Node, etc.) you ain't getting any job regardless of your CS degree.
Edit: not sure why I'm being downvoted, I'm only expressing my experience on the market here in Europe as a engineer with 6 years of C&C++ experience, with BS in CS and a MS in Embedded systems, and web shops have declined to interview me citing I don't have enough experience with the latest web languages and frameworks. Perhaps people feel that ageism and obsolescence won't happen to them.
Outside a couple of startups with dubious prognostic of success, I never saw a CV going through HR for IT department without having higher education degree, with the exception of technical students.
And in most European countries one doesn't get to sign Engineer on formal documents (from law point of view) without the proper tile certification.
I regularly hire people into a commercial software company in Europe, and I don't inherently care about your degree, but I do care about you understanding a broad range of the fundamentals, and in the absence of a CS degree (which does happen) I have to spend extra time assessing an applicant's understanding of the fundamentals. Recently hired a fresh grad without a CS degree for a C++ programming position, and his interview was a bit longer than usual while we ran over those basics.
The degree IS a form of signalling; it signals "I probably have a grasp of the basics".
It's easy for senior engineers on the team to address gaps in CS knowledge, but much harder to address a lack of soft skills, writing, or over-designing/too much abstraction (because you were taught the patterns, but not when to use them). I could go on, but IMO, this is why interviews are still so broken, and why the field of software development still faces the same issues it always has. Granted, I'm not building a DB, but compared to maintenance and over-engineering, performance is rarely an issue, and easily solved via profiling.
Basically, can you write simple software? Everything you mentioned is also needed, but I really, first and foremost, need them to be able to write some simple software. If they can't do that, I really can't afford to teach them. A CS degree often makes this check simpler than for the candidates with other educations, such as the history degree holder we have.
If you don't need that then sure, it's a different hiring game for you.
My view has been that the experience is good but not enough, you must show a willingness to learn other things and work in other languages and any experience in the languages actually used trumps a lot of other things.
That’s also true in the US outside of the HN/Silicon Valley bubble...
That was exactly the notion of modern labor, in Y Combinator last year. It lasted six months until it learned that teaching yourself CS is much more difficult than it sounds, almost everyone had given up, then they pivoted.
Modern Labor in April 2019: "We Grow Tech Talent. Modern Labor is a revolutionary platform that grows talent for technical roles at your company." http://web.archive.org/web/20190412130518/https://modernlabo...
Modern Labor in May 2019: "Hire Tech Talent On-Demand. Modern Labor is a highly-selective talent network of US-based tech professionals to help you build tech teams when you need them." http://web.archive.org/web/20190501133947/https://modernlabo...
Modern Labor in August 2019: "Hire technical talent fast. Modern Labor partners with companies to help them find and hire technical talent quickly and easily." http://web.archive.org/web/20190831055322/https://modernlabo...
Fascinating to watch their transition from revolutionary platform to ordinary recruiting agency.
I thought self-learning CS can be a good way to democratize wealth. You only need a laptop (even Chromebook is fine), internet connection, self-determination, raw intelligence and living cost covered to be able to master CS. But apparently most people are not able to do that. Maybe less than 1% of population can do this kind of thing. Or maybe not.
Edit: Typo
I strongly disagree. You need real professors TAs and project work, deadlines,exams etc.
But I disagree with your other statement: "Learn CS (and math) with a formal education".
You can learn CS from internet.
https://github.com/ossu/computer-science https://teachyourselfcs.com/
In the first link, it is said you need roughly 2 years to master core CS.
Actually, I have a wild fantasy. I build a startup like Lambda School but it is not supervised. So I give money to motivated students. This money cover their living cost for 2 or 3 years, internet, and a decent laptop. They have to spend 10 hours per day, 6 days per week to learn CS. After finishing the study, they can repay back my money with some interest (capped to a number) only if they find a proper job. If they can not find a proper job for 5 years, the debt is forgiven. But this is just my wild fantasy. :)