Whats the difference between software engineering and computer science

The computer science vs software engineering debate has been going on for years now. Here we’ll find out which major is the best, whose salary is the biggest, and you’ll find out: what's the difference between the two?

First, we need to define what computer science and software engineering are. 

“Computer science is the study of processes that interact with data and can be represented in the form of programs.” (That’s Wikipedia talking, not me). 

What does that mean in human speak? Essentially a computer scientist is someone who specializes in computers. Like an anesthesiologist knows everything there is to know about his or her field and their expertise and skill become an element that a surgeon can use for a surgery, a computer scientist knows the inner-workings of computer systems and how to get the best performance out of them.

Some examples of this kind of specialization are: quantum computing, security, data structure algorithms, and machine learning. Most of these are more concerned with math, theory and how computers work on a fundamental level.

Software engineering, on the other hand, is “the systematic application of engineering approaches to the development of software.”(...also Wikipedia talking).

This means that a software engineer is someone who uses the tools that a computer scientist developed to create real-world applications. This is more on the side of developing and testing apps, scaling applications, planning a software’s life-cycle. We make a lot more practical things that the everyday consumer can touch and feel.

Let me give you an example of how these two fields work together.

Imagine a programmer developing a machine learning algorithm that can identify when a customer in a store grabs an item off the shelf. This person is a computer scientist. He or she needs extensive knowledge of machine learning and computing algorithms to come up with something like that. 

Now that we have this algorithm, a software engineer can come along and turn that into a usable application that Amazon can use in one of their no-cashier stores.

This is just one real-world application. There are so many more. Most of the libraries that software engineers use like lists and security are developed by computer scientists. Software engineers then take the libraries and combine them into applications for consumers to use. 

OK, so we know what the difference between a computer scientist and a software engineer is, but how do the universities see that difference? For this I’m going to use my university, Kennesaw State, as an example.

The core classes are almost identical. Each major needs to take math up to Calculus II as well as taking programming and problem solving classes level I & II. Software engineers have to take an additional technical writing class as well as discrete math, but later in the upper level courses these are also required for computer science majors.

Major requirements have a lot of overlap. You’ll start to notice that software engineers are required to take a large amount of computer science courses, while computer science majors don’t have to reciprocate. Why is this?

The big reveal is when we get into the upper-level electives. This is where the largest difference lies. Look at the computer science electives. All of these are extremely math intensive as well as deep into the computer’s inner workings.

A software engineer’s electives on the other hand might seem more practical for someone who would want to develop applications from start to finish, like mobile and casual game development and electronic commerce.

The biggest difference in these two majors is that computer scientists are more math heavy and software engineers are more about systems. Both will be a great launching pad into a career.

I’m finishing up my software engineering major at Kennesaw State and actually found out that I can get a computer science minor without taking any more classes! That's how much they overlap.

The whole reason you’re going to college is so you can have a successful career, right? Otherwise, there’d be no reason for you to invest all that time and money! (psst...look into code camps). So let's see how each major differs when attempting to get a job.

The difference in jobs is much like the difference in education (obviously). The computer scientist will do more research and development and the software engineers will be creating more applications, but here’s the secret... They’re interchangeable in the job market. If you have a computer science degree, you can apply for and get any job offer that is advertising for a software engineer and vise versa. The skills you learn are so similar between each major.

Also, right out of school, the company who hires you is not going to expect you to have any real world experience. They’ll teach you the necessary things and fill in the gaps that your university left in your education, so don’t worry about going in unprepared (because you DEFINITELY will be unprepared). As long as you work hard and learn fast, you’ll be fine.

So what do these careers pay? Here’s a breakdown from Glassdoor.com. Keep in mind that these are averages for all of the United States and definitely differ by state and even city.

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. The average for a software engineer is actually less than a computer scientist though at $92k/yr and if you work super hard, you can get up to over $102k/yr as a software engineer.

Another thing to note about compensation is that this isn’t everything you get. You also have benefits as well as stock options in most companies and also bonuses if you perform well.

This brings us back to the original question. Which major should you choose?

Here’s my opinion. If you’re very technical, you like working alone, and on complex problems then pick a computer science major. If you like working in small teams and you’re a good leader and manager choose a software engineering major.

And what if you’re good at both or still can’t decide? Well, remember how I told you that I got a computer science minor with no extra classes? My advice is to use that to your advantage and if your university offers a software engineering major, do that. But don’t worry if you go the computer science major route because all the jobs overlap.

I hope this helped! Let me know If you enjoyed this content. I’ll see you in the next one!

Which is better software engineering or computer science?

You should choose Software Engineering if you want to learn the overall life cycle of how specific software is built and maintained. You should choose Computer Science if you want to get into a specialized field in CS like artificial intelligence, machine learning, security, or graphics.

Which is harder software engineering or computer science?

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.

Can you be a software engineer with computer science degree?

Software Engineering Career Paths In many cases, a bachelor's degree in computer science is sufficient to work in software engineering jobs. With that said, a specialized software engineering major or graduate degree will likely give you a leg up when pursuing any software engineering job.