Comment by ramses0
6 days ago
I graduated with a degree in CS. Checking back with my university they'd added a degree in Software Engineering.
CS (traditionally) is more about algorithms, limits, growth. There's a bunch of complexity in even just understanding and calculating what a computer can do.
The Software Engineering degree makes so much sense if you're studying about how libraries can be tied together, upgraded, unit/integration testing, container and source code management, etc.
They are truly different disciplines at this point.
sorry if this sounds dumb I don't have any formal education why is there a distinction?
when i hear computer science i hear the study of computers that in my head means software, hardware, and theory it's like having doctors that study humans theoretically and others that do surgery
Computer science is step one towards getting a phd and doing research and design of actual tools like compilers, understanding how the CPU sees and asks for data stored in memory, efficient algorithms to do XYZ, it's highly relevant for stuff like embedded computing where you're often working with severe hardware constraints and possibly with a real-time os.
Software Engineering is the study of how to efficiently build software, typically on a medium to large team.
Computer Science as a field predates computers. Computer Science is the subsection of maths that answers "what is computable".
Dijkstra line sums it up well "Computer science is no more about computers than astronomy is about telescopes."
Analysis is the key. You write a program to multiply matrices. That is software engineering. You analyze the program to figure out how much slower it becomes as the matrices becomes larger, how many times it must access ddr, how well-utilized the caches are, etc. That is computer science.
Computer science is designing a new video compression algorithm to be more efficient. Software engineering is taking that video compression algorithm and putting into an application users actually use.
I think the analogy
Software Engineers : Doctors :: Computer Scientists : Biologists/Biomedical Scientists
is perhaps reasonable.