To the lay person, the job title “computer scientist” and “computer engineer” may seem like synonyms, but they’re not. If you are entering university and deciding what career you want, it is important to know the distinction between a scientist and an engineer. The main role of a scientist is to study/explore the theoretical possibilities of the world. The main role of an engineer is to apply the theoretical possibilities (found by a scientist) to everyday life by designing and creating new products.
This means that a computer scientist studies/explores the theories of computation, while a computer engineer applies the theories of computation to design new software and hardware platforms for people to use. Of course, in the real world the distinction is not as clear cut. A computer scientist may also perform some of the roles of a computer engineer, and vice versa. For the computer scientist to choose useful theories to study and explore, they need to know what theories computer engineers find useful. For a computer engineer to choose what theories are best for their application, they need to know a bit about various computer theories. it’s even possible for a computer scientist to come up with a theory that they will then use to engineer a new product.
At the end of the day, computer science and computer engineering are two extremes of a continuum. You’ll find yourself swinging between the two extremes during your career whenever you face challenges that require you to understand the theory or application of computation.