On the other hand, we had classes like Operating Systems, Computer Networks and more where we had to write things in C and assembly.
They're not necessarily wrong but the issue I have is that, in science what should be taught is to question everything and see if it's actually correct and verifiably so. With a lot of these concepts this is seemingly never done. It also comes from a specific period where everything happens to be quite tightly bound to Java (UML, Clean Code etc. especially). That doesn't mean that I can't learn something from it. But it is almost a little hypocritical when you are taught the importance of abstracting and generalizing but then the tools given themselves are not even general enough to apply to anything besides enterprise Java.
Though.. in software engineering, being able to write well is perhaps the single most important skill. Communication, documentation, very important.
Are we going to then say English majors are the best programmers? If they later become dev managers or director - then perhaps. Does a person learn English really well by also learning Latin and the origins of english and it's great works? I believe yes, and that is why I think knowing the theory and underpinnings of CS are very useful foundational knowledge. Required? No, but nor is touch typing or anything else that makes a person extremely competent.
> Computer Engineering or any of the other legitimately useful CS degree paths instead of CS itself.
> At least at the school I went to, CS was kind of a joke for undergrad.
> The students that cared about CPU design, low level software (firmware, drivers, kernel, embedded), or robotics (including computer vision, etc) all went computer engineering.
> The students that cared about cryptography or the formal maths side of computing all went to the mathematics dept in their applied discrete maths or applied computational mathematics degree paths.
> The students that cared primarily about high performance computing or applied computing in general (but didn't go one of the aforementioned routes) went through the computational modelling and data analytics program.
> And the students that wanted to learn CS for the purpose of game design or creative arts had their own program within the school of arts (can't remember the name).
> So out of the students who were interested in computing that went to my uni for undergrad, the ones that were left in the CS department were those who were told "get a CS degree for lots of money", those that didn't bother researching any other programs, and those who wanted to be web devs or enterprise java/c# devs.
CS is an infant of a field. Not too surprising perhaps the degrees would specialize.
Graduates of a computer science program don't know specific commands around versioning software that they can learn in 10 minutes on the job. Gasp.
Algorithms, mathematics and logic are timeless, tooling is not, and it baffles me that people can't distinguish between the two.
EDIT: Furthermore, where did they pull this statistic from? I didn't realize that the census also included questions around git knowledge.
It's very painful though.