People who might have been totally successful in vocational school or a variety of other things have been directed towards college they can't afford, they struggle in, and come out with exactly zero new opportunities open to them but now $100k+ in the hole.
* In most fields.. some fields absolutely require a college education.. for now.
It's exactly the same as saying that people who own Ferraris make more money, so therefore the key to reducing poverty is increasing Ferrari ownership. And of course it's reasonable to take on hundreds of thousands of dollars in debt to buy that Ferrari because owning one will help you make more money.
As absurd as the Ferrari ownership push is, at a certain point, once enough people own them it does start to make sense for any given individual. I mean, who's going to hire the one weirdo who doesn't own a Ferrari?
Education arguably has a lot more intrinsic value than a luxury sports car. But a degree from an accredited institution is not the same as education.
This perfectly fits your Ferrari fallacy: When you own a Ferrari, you're part of a highly-exclusive social club. "Well... No, my Ferrari didn't actually earn me more money, per se, but it let me hobnob with so-and-so, and look at me now! Totally worth the crippling debt!"
CAAM courses taught me about numerical stability, and how careful one must be to design an algorithm correctly if you care about the accuracy of your results. Statistics was tough and taught me how much I don't know about that field, while giving me the tools to understand probability and statistical distributions. These are extremely relevant in business, where we use statistics to model and predict customer behavior, or to fight abuse.
One of the most memorable courses of my university education was ELEC 220, which teaches you how CPUs work from the transistor level up. That and related courses culminated with having you design your own general-purpose computer, from scratch, in a simulator, using nothing but basic logic gates and buses. This included designing the RAM, the instruction set, the ALU, and a number of other components from first principles. I learned that, when you understand those first principles, it's actually not that hard!
Another course, COMP 421: Operating Systems and Concurrent Programming, required me to build my own implementation of Unix processes and multithreading, my own virtual memory system, implementation of locks and mutexes, a malloc-style allocator based on `brk` (a system call that I built previously for my implementation of processes, implemented on top of my virtual memory system), and so on. I built my own simple OS kernel. I think we made a file system too. These are very difficult to build correctly and the experience of putting that effort in, and getting it right, taught me about the limits of my ability, and what I can achieve if I apply myself.
These projects were incredibly challenging, and I learned a tremendous amount during these courses and more. I gained the confidence that, if I needed to, I can design and build most of a modern computer and OS from first principles. This in turn provides a strong foundation for understanding and reasoning about actual, real systems. It gave me the ability to understand how things work at all layers, from transistors to the CPU, to the OS, to an interpreted programming language, to an algorithm running in the language; to dive deep into any layer, and design solutions for any problem. I think this kind of comfort and competence is difficult for non-CS graduates to achieve.
It also gives me an understanding of just how much I don't know in fields like mathematics, statistics, and numerical stability, so that I have a healthy respect for them and know when to investigate and apply rigorous solutions in these spaces to business challenges. A passing familiarity makes it possible for me to research and apply known solutions quickly.
I studied other fields like psychology and human factors, which have been relevant to understanding people (like users of software), and modeling various failures in systems, e.g. operator error.
After graduating college, I also learned a tremendous amount about software engineering in industry. The amount that I learned in industry easily equals or exceeds what I learned in college. However, the topics that you can effectively learn in college are difficult to effectively learn in other ways.
I think I'd only be a shell of the engineer I am today if I hadn't had this education to build on. While I think you can get a job in the industry without this kind of education, if you want to be top in your field some day, then a rigorous theoretical/applied education is a real advantage.
Anecdotally, I am a software developer without a degree (I did some college, never finished it - but I can't say that I took anything useful away from it, certainly not anything related to my day-to-day job). I've learned some of the things that you list on my own, and I haven't learned others (like electric engineering) - but that didn't prevent me from finding a good starting job, and working my way up through the ranks.
So, while not disputing that STEM degrees are useful and offer something that industry experience does not - do we actually need STEM degrees for everyone in the industry? or even for the majority?
A person can probably build back office web applications to meet simple business requirements with a coding bootcamp or by being self taught. If you're trying to scale a global website or web service for hundreds of millions of users with high availability and performance, then a CS education will help. A person doesn't need a CS degree to make iOS apps, but if one is inventing new technology, like self-driving cars or autonomous delivery drones, then a CS degree will help.
I don't apply every individual thing that I learned in my CS degree; a broad education helped me understand what my strengths are, so I can focus on my strengths. Many of the fields of study have been applicable to the kinds of business problems that I tackle. The computational mathematics and statistics have been highly relevant to modeling behavior for business optimization purposes, and to the application of machine learning. I have applied many of the lessons I learned about concurrency, distributed systems, operating systems, etc., in the design of high-performance, high-availability, low latency systems. My study of cryptography and computer security has been relevant.
What's right for a student depends on them, their goals, and their financial situation. I was fortunate to have financial support in the form of scholarships and aid from my parents, and the passion to want to devour all the knowledge I could about CS. An ambitious person who desires to make the most of themselves, to work on the hardest problems, to strive to reach the top of their field, will benefit from a CS education I think. But, I agree that a degree is not required to get a job as a programmer.
I would agree with the advice that one should only pursue a degree (if it's financially taxing) if one has a life plan to enter an industry based on that degree afterward, where that industry has adequately high paying jobs. There are also other forms of success than the ones I'm describing -- one does not need to be a technologist to succeed in business.
Except that the top marginal tax rates also used to be much, much higher, so it was subsidized by the rich.
But then, there are also many more people going to college now, and there aren't any new Ivy League schools being minted.
If it gets bad enough, the pressure to find alternative ways to educate will build up until we find a good alternative route.
I suppose in the end that is the point. It's the piece of paper that has the value/door opening ability, not the actual knowledge imparted.
Part of the problem with that route is that a big part of university education is the signaling and brand value, and that's hard to replace via tutoring. Maybe that won't always be such a big factor, though.
The mandate is that the UC system is required to offer spots for the top 12.5% of the current year's in-state graduating high school seniors, so this mandate obviously expands if university-age population increases. Which to be fair is sensible: it makes sense for the state university system's size to be roughly proportional to the size of the state's university-aged population. But then you should fund it proportionally too.
Here are some numbers I put together a few years ago (not updated since 2012): http://www.kmjn.org/misc/uc_funding.txt
Which is not to say overpaid administrators aren't also sucking out more money than they should be. The UC Office of the President (UCOP) is currently being deservedly raked over the coals by the state auditor, and I would not shed a tear if UCOP's budget specifically were cut. But in terms of big-picture trends, the state's per-student funding declining from $30k/student in the '70s and '80s to less than half of that in 2012 is a pretty good first-order explanation.
You'd think they would consolidate administrative services like payroll under UCOP, but UCOP doesn't even do their own (they outsource it to UCLA).
This is a problem caused by government, not a lack of funding.
But the decreased funding for research on the backend, and decreased direct funding for public schools, have made it so that schools need to seek out funding in other ways.
For example, they actively recruit full-fare foreign students now for the tuition. It has also caused tuition to rise, relegating the ability for students to pay their own way via a part time job or two to the past.
EDIT: And yeah, the increased demand for a fixed supply increasing the price is what I meant by "they're not minting new Ivys". I wouldn't agree that it's a bad thing that we're educating more people to a high level, though.
From an outsiders (AU) perspective, it sounds very depressing for youngsters - massive student loans and then you need to jump on the mortgage treadmill (unless you're lucky).
It almost sounds to the point where individual students could pay for personal tutors with the amount of cash they're spending* (or borrowing then spending). Someone over there must be making bank on this... I guess the banks.
Edit: As in, if you took 100 ComSci students each paying $30k a year (or whatever it is), $3,000,000 should get you some pretty good educators for the year i.e. can the game be taken back from the uni's, and education started afresh with a new organisation?