2 ms·
While I would agree that a Computer Science degree doesn't necessarily teach you a whole lot about Software Engineering (i.e. little-to-no time spent on version
by cableshaft 5y ago
While I would agree that a Computer Science degree doesn't necessarily teach you a whole lot about Software Engineering (i.e. little-to-no time spent on version control, continuous integration, unit testing, microservice architecture, deployment, requirements gathering, data security, etc), it did give me a broad exposure to the different types of work that could be out there for programming, which would be a lot harder to do in the job market (i.e. no one is going to look at my web/game development history and go 'Yeah, this guy would be a good person to hire to work on our operating system!')
I learned about making Operating Systems, Compilers, 3D Graphics, Artificial Intelligence, Machine Learning, TCP/IP Networking, Databases, low-level Assembly programming, and how computers work at a hardware logic gate level, to name a few. And they offered other courses as well, these are just what I picked from the offerings.
Yeah, there was the standard Data Structures and Algorithms class (which in the business world is now not much more than a 'you better know/refresh this if you want to get through our interviews' class) and one class that was about Automata theory, which my teacher would claim 'is the only real computer science class at this school' which was all mathematical proofs, but it still helps you understand regular expressions better, at least it did for me.
But most of the classes I took would have had practical applications in the workforce, for different types of jobs. But really isn't that pretty much any undergraduate major? The classes you take aren't all going to be directly relevant to your particular path through the field, it's more about exposure to different possibilities and providing a broad base of knowledge to build from.