Computer science, software engineering, same thing, right?
Computer science is the underlying science that acts as the foundation for software engineering, just like physics and math for mechanical engineering.
A scientist runs experiments, postulates, and proves theories, while engineers build and scale systems.
Software engineering is still a relatively nascent discipline, explaining why many universities have not fully split out computer science from software engineering.
Many schools gear their CS programs towards software engineering, though, since that’s now the typical path graduates are taking.
That said, there are many aspects of computer science a software engineer likely won’t ever need to handle — the inverse is also true.
I enjoyed my theoretical computer science course at UCLA, proving various things about state machines and learning about NP-hard problems.
That said, I have not been able to leverage that knowledge in my day to day software engineering work yet.
I appreciate and think the breadth of knowledge is valuable for everyone, but there is much more to learn after earning a CS degree to become a top software engineer.
For some, a software engineering degree (where available) is the best path.
Benjamin is a passionate software engineer with a strong technical background, with ambitions to deliver a delightful experience to as many users as possible. He previously interned at Google, Apple and LinkedIn. He built his first PC at 15, and has recently upgraded to iOS/crypto-currency experiments. Benjamin holds a bachelor's degree in computer science from UCLA and is completing a master’s degree in Software Engineering at Harvard University.