by YK Sugi Hey everyone! My name
is YK, and I’m currently running CS Dojo, a programming education YouTube channel with 200,000+ subscribers. I was also formerly a software developer at Google. Two of the most common questions my audience asks me are: And… In this article, I’ll answer this and give you my own quick analysis on these majors. To understand the difference between Computer Science and Software Engineering majors, let’s take a look at their respective curriculum at University of Waterloo in Canada. I chose University of Waterloo for this because it has one of the best
computer science programs in North America. Job prospectsLet’s first compare the kinds of jobs and internships you can get through each program. Thankfully, University of Waterloo’s website provides several examples. For each major, here are some of the titles alumni hold, and where they work: Computer Science
Software Engineering
As you can see, there isn’t a huge difference between the types of jobs you can get. The most common job graduates get after earning their Computer Science or Software Engineering degree is Software Developer or Software Engineer. There are other related options as well, such as Product Manager, QA Analyst, and Technology Consultant. Your options will depend on your specific skill set. First-year courses:Now, let’s take a look at each program’s required courses. Let’s first compare some of the courses you’d need to take in your first year. Computer Science
Software Engineering
As you can see, the first year courses are fairly similar as well. They both cover a few fundamental computer science courses, and a few math courses in linear algebra and calculus. The only major difference is that Software Engineering has additional physics and electrical engineering components, while Computer Science has a few more electives. Courses after the first year:How about the required and elective courses after the first year? Let’s take a look at several examples here: Computer Science:
Software Engineering:
I’ve given you a LOT of information to digest here. But here’s my summary:When it comes to the requirements in math and statistics, Computer Science and Software Engineering are almost identical. They cover combinatorics, probability and statistics. The core computer science requirements are similar as well, ranging over algorithms, data structures, and operating systems. The key difference are that:
So, which major should you choose?I think it mostly depends on your preferences. In short:
But wait — which is it then? Which major is better if you want to be a software engineer?Here is my opinion. At this particular university (University of Waterloo), with this particular set of program requirements, Computer Science is a better major if you want to be a software engineer. Just for simplicity, let’s suppose that you are hoping to get one the highest paying jobs (~$100,000 USD / year) as a software engineer in North America. These jobs are typically at large software companies (think Microsoft, Google, Amazon, etc.) or at medium-sized, high-growth companies (think Dropbox, Lyft, Snapchat, Pinterest, etc.). Typically, what they look for in a software engineer candidate is the ability to write solid code and build interesting projects, as well as computer science fundamentals including data structures and algorithms. I think the best way to cultivate this skill set is by quickly learning computer science fundamentals, and spending your own time practicing solving problems and writing code. Based on the curriculum for Software Engineering and based on how busy engineering students tend to be in general, I think it would be harder to do this with Software Engineering than with Computer Science. Another benefit of this particular Computer Science program is that it allows more computer science electives. This is great as well because depending on what’s in demand in the job market, you’ll be able to adjust your courses. For example, if mobile app development is in demand, you can learn that. And if parallel computing is in demand, you can focus on that instead. I’m sure there are some benefits to learning software engineering fundamentals (project management, design, testing, etc.). But I would personally rather take flexibility over a predefined set of skills. That’s why I think Computer Science is a better major to become a software engineer with this particular curriculum. Of course, that’s just my opinion, and this is just one particular university. I’d love to hear about your opinion and what your experience was like if you majored in either Computer Science or Software Engineering. Please let me know in a comment below. A few notesNote 1: Different universities have different requirements for these two majors. This article should be a good starting point, but you should still take a look at the program requirements at the university you’re interested in attending. Note 2: Some universities don’t even have a Software Engineering major. For example, the University of British Columbia in Vancouver has Computer Science and Computer Engineering degrees, but not Software Engineering. But they do have a software engineering concentration within their Computer Science program, as well as in Computer Engineering. If the university you’re interested in going to doesn’t have a Software Engineering major, I would go with Computer Science if you want to become a software developer. Computer Engineering is more focused on hardware than Computer Science or Software Engineering, so it’s less directly related to a typical software developer’s job. And here are the main sources I used:
Thanks for reading, and good luck choosing a university and your major! ? Learn to code for free. freeCodeCamp's open source curriculum has helped more than 40,000 people get jobs as developers. Get started Is computer science or software engineering better?Computer science is better because you can earn a higher salary, work in a wider range of industries, and find a greater variety of jobs. Deciding if you should study software engineering or computer science will depend on your career goals and if your core skills are practical learning or theoretical learning.
Which pays more computer science or software engineering?Computer scientists start out making about $68k/yr and the average is about $99k. Once you're in the field for a while, you can work your pay up to over $126k. Software engineers start out at a higher average by over $10k, coming in at around $81k/yr.
Is software engineering considered computer science?They both cover a few fundamental computer science courses, and a few math courses in linear algebra and calculus. The only major difference is that Software Engineering has additional physics and electrical engineering components, while Computer Science has a few more electives.
Is computer science harder than software engineering?Computer Science (CS) and Software Engineering (SE) curricula are very similar and therefore about equally difficult. At any given college or university, they should both be fairly challenging STEM degrees.
|