What is the difference between computer science and software engineering?
Computers, software engineering, the same thing, right?
Computer science is the underlying science that serves as the foundation for software engineering, just like physics and mathematics for mechanical engineering.
A scientist conducts experiments, postulates and proves theories, while engineers build and scale systems.
Software engineering is still a relatively nascent discipline, which is why many universities have not completely separated computer science from software engineering.
However, many schools are orienting their computer science programs towards software engineering, as this is now the typical path that graduates take.
That said, there are many aspects of IT that a software engineer will likely never need to handle – the reverse is also true.
I enjoyed my theory course in computer science at UCLA, proving various things about state machines and learning NP-hard problems.
Having said that, I have yet to be able to harness this knowledge in my day-to-day software engineering work.
I appreciate and think the breadth of knowledge is valuable for everyone, but there is a lot more to learn after graduating with a computer science degree to become a top software engineer.
For some, a software engineering degree (if applicable) is the best route.