Computer engineering (CompEng or CompE) and computer science (CompSci) are, in some senses, closely related disciplines. Both fields deal with the inner workings of computers, and there can be significant coursework overlap between degree programs in these areas. However, as computer systems are so complex, the two disciplines ultimately diverge in significant ways that can play a part in how suited you are for one path or the other.
What Does "Engineer" Mean in a Computing Context?
There are many tech industry professionals with job titles that include the word "engineer," and some people might argue that the term is overused in the industry. For example, job titles like "software developer" may have identical or very similar job descriptions to those that use the term "software engineer." Given that computer engineers do a different job altogether, this can be seen as unnecessarily confusing. The difference between terms like "engineer" and "developer" is an ongoing discussion with industry insiders and may play out differently in different organizations. Regardless, if you take a look at job postings for tech companies, you'll see a lot of different jobs with "engineer" in the title, like Machine Learning Engineer or Robotics Software Engineer.
The important takeaway is that, on a high level, engineers in the tech industry are responsible for designing and building things, which is the essence of what almost any engineer does in any field. However, the things tech engineers design and build may be virtual, like an operating system.
What You'll Learn in a Degree Program
As described above, terminology can be a bit subjective in the tech industry, and the exact content of a computer engineering or computer science degree program may vary based on the school offering the credential. In general, though, computer engineering is a better field for those who want to get into the nitty-gritty of how the actual machine works. Many computer engineering programs include electrical engineering components that make it possible for computer engineers to work on teams that actually design the chips and other hardware that make computers, smartphones, and other devices work.
Computer science programs, on the other hand, can be a bit more general and usually focus much more on software development than actual hardware engineering. Students in these programs learn foundational theory and practical things like programming languages that computer engineering students are also likely to learn. Computer science tends to go more in depth with these elements as computer engineering students take electrical engineering coursework.
Which Is Right for You?
It can be hard to decide what the right education option is for you, especially if you aren't in the market for a four-year or graduate degree. Sidestepping that route and going for a career-focused training program may be a better option if you already know there's a specific topic that appeals to you, like self-driving cars. You can take a look at the Udacity Catalog to see whether there are computer science or engineering courses that seem of particular interest and pursue the nanodegrees associated with those classes. Many nanodegree programs touch on both computer science and engineering topics. When it comes to computer systems engineering vs. computer science, you don't necessarily have to go all in on one or the other.