Placeholder Image

字幕表 動画を再生する

  • Hey guys. So recently, I've been getting a lot of questions like, what's the difference between computer science and software engineering majors?

  • And if I want to become a software engineer, which majors should I choose?

  • I'm going to answer these questions in this video.

  • So a quick summary would be that computer science is the study of how computers work from mostly the theoretical and mathematical perspective, while software engineering is the study of how software systems are built from more of a practical perspective.

  • So it includes topics like software design, testing, and quality assurance.

  • And actually, you could study either want to become a software engineer.

  • But let's see what the difference is exactly in more detail.

  • And to do that, I've got to take a look at the difference between these two measures at one particular University, at the University of Waterloo in Canada.

  • And I chose University of Waterloo for this purpose because they have one of the best computer science programs in North America.

  • So I'm going to take a look at a few different things, first of all job prospects, and then I'm going to take a look at the first year course requirements, and then the courses required after the first year.

  • And based on all of that, I'm going to draw my own conclusion as to which measure is actually better to become a software engineer.

  • Okay, let's first compare the types of jobs and internships you can get through each program.

  • Luckily, University of Waterloo's website provides a bunch of examples for this for cope or for internships, and for full-time positions.

  • And to compare the ones for computer science and software engineering.

  • I pulled a bunch of examples here.

  • And for computer science, we have a bunch of developer and engineer positions.

  • For example, web developer, programmer, mobile and cloud developer, software engineering, and some, they're called by different names, but they're basically all software developer and software engineer.

  • And after that, we have business analyst, developer advocate, and product manager.

  • For software engineering, we also have a bunch of software developer and software engineer positions here, and then technical product manager, consultant, and implementation consultants.

  • So what I took away from this list is that there isn't a huge difference between the types of jobs you can get through either computer science or software engineering.

  • And the most common job you can get through each program is software developer or software engineer.

  • And these two things are basically the same thing called by slightly different names.

  • And there are other related options too, for example, Product Manager, technology consultant, and QA analyst depending on your skillset.

  • Okay, so to get a better idea about what you would actually study in each program, let's take a look at the first year of course requirements.

  • So I pulled these requirements from, again, the University of Waterloo website, and they're actually pretty similar.

  • In computer science, we have a few computer science fundamental courses.

  • And it's same thing in software engineering.

  • It's designing functional programs and algorithm design and computer science.

  • And for math requirements.

  • We have some linear algebra and calculus courses.

  • And that's the same in software engineering.

  • The only difference is that after these math and computer science requirements, you can take a few electives in computer science.

  • While in software engineering, you actually need to take a bunch of electrical engineering required courses, and then one software engineering course.

  • Okay, and what about the courses you need to take after the first year, obviously, after the first year, you need to take a lot more courses.

  • So I grouped them by category, so that it's easier to compare.

  • The first category we have here is the common computer science and software engineering courses that you need to take in both computer science and software engineering.

  • And when I saw this list, I was actually pretty surprised because there's a lot of commonality between computer science and software engineering.

  • So we have data structures and data management, foundations of sequence are programming,

  • logic and computation, algorithms, and then operating systems and computer organization and design.

  • And the second category I have here is the required computer science or software engineering courses that are required for only one measure, but not the other one.

  • For Computer Science, we only have one, which is object-oriented software development, which is actually really important for any type of modern software development.

  • And for software engineering, we have a lot.

  • We have software engineering principles, user interfaces, concurrent and parallel programming, software testing, design requirements, discussion, and analysis. And on top of that, a design project.

  • So to me, it actually seems like a lot of work for software engineering here.

  • Okay, let's finish this up by comparing a few more requirements.

  • In computer science, you only have a few more science electives, and then several more computer science electives, you can actually choose them from a wide range of topics including security software engineering fundamental Those computer vision, machine learning, and so on.

  • And in software engineering, you have a few more requirements for engineers.

  • So that's chemistry for engineers, computer networks, and then engineering economics, apparently, plus a few more Computer Science and Electrical Engineering electives.

  • So I think a consistent pattern that we see here is that there are a lot more requirements in software engineering, while you can take more electives in computer science.

  • So at this point, you might say something like, wait, why can't I get what I would study in each measure?

  • But which measure should I really choose?

  • I think it actually depends on your preferences.

  • So you should choose computer science, if you like math or logic, or if you want to get into a specialized field in computer science, whether it's security graphics, machine learning, or artificial intelligence.

  • And you should choose software engineering, if you're more interested in the hands-on approach, or if you're interested in learning the overall lifecycle of how software systems are built and maintained.

  • But wait, you might say which one is actually a better measure, then to become a software engineer.

  • Okay, so here's my opinion about that.

  • At this particular University, with this particular set of program requirements, it seems like computer science is a better measure to become a software engineer.

  • To explain why I say that, just for simplicity, for now, let's just say you're hoping to get one of the highest paying jobs as a software engineer in North America.

  • And these jobs typically pay, you know, about $100,000, or even more.

  • And these jobs are typically at a large software company, for example, Microsoft, Amazon, or Google or at a medium sized high growth company.

  • So think Dropbox, Pinterest, Snapchat, and so on.

  • And of course, not everyone wants to get this kind of job.

  • But let's just say for simplicity, for now, let's, you know, at least one of the options.

  • So typically, what these companies look for in a software engineering candidate, is the ability to write solid code, and build interesting projects, as well as you know, your computer science fundamentals, including data structures and algorithms.

  • And I think the best way to cultivate these skills is by quickly learning computer science fundamentals.

  • And then spending your own time after that, practicing solving problems, writing code, and building interesting projects.

  • And I think, based on the curriculum for software engineering, and based on how busy you know, engineering students tend to be in general, I think it would be much, much harder to do that with software engineering than with computer science.

  • Because with software engineering, you'd be just so much busier with the required courses.

  • And another benefit of this particular computer science program is that it allows much more computer science electives.

  • And that's great, because based on what's in demand in the job market, you know, right at the time you graduate, you can adjust your courses.

  • So for example, if mobile app development is in demand right now, you can learn that.

  • And if machine learning happens to be in demand in a job market right now, then you can focus on that instead.

  • So I'm sure there are some benefits to learning software engineering fundamentals, for example, software testing, and design and so on.

  • But I would personally rather take flexibility over a predefined set of skills.

  • And that's why I think computer science is a better measure to become a software engineer with this particular set of program requirements at least.

  • Okay, once again, that's just my opinion based on one particular University.

  • So there are a few more things to keep in mind. First of all, obviously, different universities have different program requirements for these two measures.

  • So this video should be a good starting point.

  • But before you decide, you should definitely take a look at the program requirements at the particular University you're interested in attending.

  • And the second thing to keep in mind is that some universities don't even have a software engineering major, for example, the university I went to the University of British Columbia in Vancouver, it doesn't have a software engineering major, even though it has computer science and computer engineering.

  • So if the university you want to go to doesn't have a software engineering major, I would just go with computer science if you want to become a software engineer.

  • So Computer Engineering is more focused on hardware than software engineering or computer science major.

  • So it's less directly related to a typical software developers job.

  • Okay, I'm kind of curious, what's your opinion on this?

  • Do you agree with me or disagree with me?

  • And also, what was your experience?

  • Like, if you majored in computer science or software engineering?

  • Let me know in the comment.

  • Oh, and by the way, when I published this article on medium, I got a comment saying, you don't need either want to become a software engineer.

  • And that's true.

  • You know, I became a software engineer without either degree too.

  • And I actually have a video about that.

  • Right there. Just in case you haven't watched it, yet.

  • And I also have sort of a guide video about how you can learn to code right there.

  • Okay, as always, I'm like a from CS dojo you guys are apparently called dojogang now.

  • And I'll see you guys in the next video.

Hey guys. So recently, I've been getting a lot of questions like, what's the difference between computer science and software engineering majors?

字幕と単語

A1 初級

Computer Science vs Software Engineering - Which One Is A Better Major?

  • 21 2
    Jason   に公開 2020 年 10 月 13 日
動画の中の単語

前のバージョンに戻す