It’s often argued here that the purpose of a CS degree is “not to get you a job” but to “become a better citizen of the world” and if you just wanted to learn something to get a job “you should go to a trade school”.
> It’s often argued here that the purpose of a CS degree is “not to get you a job” but to “become a better citizen of the world”.
I can't recall ever hearing that argument advanced for CS degrees on HN (and I read a _lot_ of HN postings). Perhaps you're thinking of liberal arts degrees?
The usual rationale for CS degrees is that one learns the underlying theory behind the systems and tech stacks that they use, making them a more capable developer.
What's the point of a chemical engineering degree? It's to learn to be a chemical engineer, but it's not a trade school degree. Far from it.
And there's degrees in chemistry, for those whose goal is to study the way atoms interact with each other. That's different from chemical engineering, where the goal is to efficiently produce the desired molecules at scale, without blowing up the factory. Two different degrees, with two different focuses, in the same general area.
In the same way, I think that computer science needs to be a separate, different degree from software engineering. At the moment, CS is trying to be just one area, but I suspect that it's often inadequately preparing those who are going to go on to be software engineers - who are in fact the large majority of CS grads. (They may also be inadequately preparing those who intend to stay in theoretical computer science, but I have even less information about that.)
Getting a CS degree to get vocational training to be a developer is a pretty terrible idea in my view (and I have a CS degree) - having a physics or mechanical engineering degree is particularly relevant to being a plumber so would you expect a CS degree to help being a developer?