We've had 30 (40?) years of educators looking down on blue collar jobs and gearing everything towards pushing everyone to university because it's a golden ticket to a successful life. What most people didn't realize is that university was an attribute of successful people, not a prerequisite to be successful.*
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.
This. The idea that college somehow intrinsically causes you to earn more money is completely wrong and absurd. It completely conflates causation and correlation. Yet it's frequently trotted out as a justification for taking on student loan debt (as it was in this article).
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 Ferrari point is especially apt because many of the commenters here are stating that no, their college professors and lecture experiences weren't better than YouTube offers, but look at all the great people I met and interacted with!
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!"
This is obviously true in the abstract, but there literally are lots of well-paid jobs that simply will not consider applicants without degrees from 4-year accredited institutions. Given that reality: yes, having a degree will increase your probability of earning more over your lifetime.
I don't think that's true, at least in STEM degrees. I learned a tremendous amount in university. I took classes to a 100 or 200 level in a bunch of subjects, which vastly increased my ability to reason about what I know and what I don't. My computer science degree required me to study topics like statistics, computational and applied mathematics (CAAM), and electrical/computer engineering (ELEC), and many more, alongside my CS curriculum.
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.
The question is, how much of what you've learned in college actually contributes to your ability to work in the industry? They may all be useful skills in theory, but do you actually use them much? And those that you do use, did they have to be acquired in college, or could you have acquired them in the industry?
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?
I think it depends on the kind of work that one does or wishes to do.
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.