7 answers
Asked Viewed 249 times Translate

Computer Science vs. Software Engineering major. What's the difference ? Would I be able to pursue another field of engineering after software engineering ? Ex : Electrical engineering

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 8 Pros
100% of 1 Students

7 answers

Updated Translate

Dhairya’s Answer

Hi Raphael,

Great question. For most college undergraduate programs there really isn't a difference between software engineering and computer science at the undergraduate level. In theory, there is a distinction between software engineering and computer science. But that distinction is irrelevant until you start pursuing a masters degree or phd.

There is a significant overlap in concepts and both also do involve computer programming. Most computer science programs are designed to teach students to think about computational problems and how to solve them. The solutions involve understanding algorithms, developing mathematical proofs to show why a given algorithmic solution is optimal, and thinking about how to solve computational problems at different scales. A fundamental part of computer science is understanding classes of problems, that is problems that can grouped together based on common features and solutions, trying to derive more efficient solutions, which in the real world can save computational resources, memory limitations, and money. If you continue into a masters or Phd program, you'll dive into more complex computational theory and applications.

On the flip side, software engineering is actually writing code as an implementation of solution. Say you want to make a mobile app that is say the next Uber. As a software engineer you want to use existing software tools and libraries to build the application. Software engineers can conceptualize the application design and work with other engineers to build it out. Depending on what the application is they are building, they'll often implement solutions from computer science to solve real world problems. In the Uber example, a software engineer may implement the latest matching algorithm that can match drivers to riders more efficiently.

Computer science graduates will often become software engineers and developers. The ones that have strong algorithm and data structures backgrounds are often sought out by Google, Amazon, and other tech companies because they have experience solving hard computational problems.

If you have a choice, follow the computer science path if you can. A solid computer scientist can pick up new languages and tools to solve problems by relying on their fundamental computer science knowledge.

Lastly software engineering is significantly different from more traditional engineering paths like mechanical engineering. It's always possible to transition into another engineering path, but it may require you to do additional course work and gain the relevant experience.

Excellent answer Sushma Samudrala

100% of 1 Pros
Updated Translate

Keith’s Answer

There are differences between Computer Science and Software Engineering and depending on your interests, you need to do some research before you commit to a college degree in either one. Computer Science takes a very broad approach to the principles and structures of computer software with many more software projects, coding standards, and actual learning of several popular languages like java, python, c++, and possible scripting languages like javascript. Software Engineering is the study of engineering processes, creation, maintenance, and design. Included are the mechanics of good software development, building, and delivery of software to lower and upper environments.

I personally started my career with Electrical Engineering with a computer design emphasis. I got a job and dove into Computer & Software Engineering dealing with Software Configuration Management and have stayed in this area for over 30 yrs. You will find that it does not matter what you study in college as long as you have a technical degree. Once this degree opens the door to a company within Information Technology, there will always be on the job opportunities to pursue your interests depending on the opportunities presented. For me I stayed in Software Engineering since it connected me to the whole IT staff and opened the door to the next new buzz word in the industry which is DevOps. While I am not an expert in writing software, I know how to find all the answers I need from my technical co-workers.

I hope you found some answers in my personal experience. Do some research, dive in, and get started.

100% of 1 Students
Updated Translate

Dennis’s Answer

Raphael, curiously enough, the computer industry got its start - mostly in Electrical Engineering departments at major universities. Why? The earliest computers were based on electrical switches - and electromagnetic devices (core) to save the results of computations. So, both fields - computer science and software engineering had their genesis in Electrical Engineering departments all over the world. So, the question of "which one should I study?" boils down to 1) what are you most interested in, and; 2) what courses of study are available to you.
At many engineering schools, the first year or so may offer "core" courses in physics, chemistry and math that you will need regardless of which discipline you follow. If that is the case at the school(s) you would like to attend, all the better. You won't have to commit to a specific course of study until you know more and have a better understanding of the opportunities awaiting you. As a side note - I selected "Physics" as my major. In the second year, my Physics courses did not seem like a good fit for me. I transferred to Mechanical Engineering before my 3rd year. That meant I had to overload a few courses to catch up with my peers in the junior class. I managed to do that and actually improve my GPA. And, I got some credit for the physics courses as electives. Good luck to you which ever road you take!

Dennis recommends the following next steps:

Check curricula at schools you are interested in attending.
Check what degree options these schools offer.
Check whether a "double major" is a possibility for you. I might take an extra semester or more. Or pursue one of your options as a graduate student.

Hi Dennis thank you for your advise ! Thanks for sharing about your experience in college too. Raphael F.

100% of 1 Pros
Updated Translate

Julian (Yuliang)’s Answer


I would say (in a nutshell) that the main difference between Computer Science and Software Engineering is CS is more focused on programming while Software Engineering covers a wider degree of skills, programming as well as project management, report writing skills and working with people of different degrees (I personally took Software Engineering). They both do have a lot of overlapping courses, and you'll certainly learn about algorithms and datastructures in both degrees, as these are the fundamentals. Usually CS is a 3 year degree and you start programming in your first semester. With Software Engineering however, usually the first year is a mixture of general engineering courses, stuff like Materials Engineering, Mechanics, report writing, team projects etc. This may feel like a waste of time if you are already set on a career in software/computer science. However if you are unsure, its a nice way to have a bit of experience with a wide variety and see what you like, you may even end up choosing something else! (I went into first year engineering wanting to do Biomedical Engineering, but after doing a programming course i completely changed and went with Software Engineering)

There are certain courses in an engineering degree which you MUST take, that may not seem useful in a career working as a Software Developer or similar. Such as team projects on general engineering problems, report writing, etc. Also with engineering usually you would do a Honours project in your final (4th) year. This is usually a very research heavy kind of project, but depending on the University you attend, it may vary.

I've had a few friends who started with Software Engineering, then in their 3rd year they switched degrees to a Computer Science degree. Also had a friend switch from CS to Software Engineering. Its definitely harder to go from CS to Software Engineering and you would have to do more catchup on required courses. However its still possible, and you don't lose too much since theres many common/shared courses between the two!

Go for CS if you know you be a Software Developer and want to get more technical skills during uni
Go for Software Engineering if you are unsure. You can also become a Project Manager or Analyst or something else entirely. Soft eng is more flexible i would say

Do note that you will ALWAYS learn more on the job, so your degree of choice is not so much of a deal after you have some experience in the industry.

Best of luck!

Updated Translate

Deon’s Answer

I recommend pursuing Computer Science as a major rather than Software Engineering. This is because the Computer Science major will give you a broader foundation in the field, and while doing the major in Computer Science you can specialize in the Software Engineering track (within the Computer Science major).

Also, I should point out that Computer Science and Electrical Engineering majors are like foundational majors that covers a broader knowledge scope for most technology fields. You can then add custom specializations (e.g. Software Engineering) on top of these two foundations.

Updated Translate

Charles’s Answer

That depends what you focus on in each degree. I'm an Engineering manager and I've run multiple software engineering departments. I'm speaking in generalities - in most cases, when reviewing a resume Software Engineering implies a deeper understanding of the principals behind development and an ability to architect a solution - Computer Science implied "Programmer". The world and US in particular - needs BOTH types of developers.

Practically if you are a Software Engineer and you specialize in designing the architecture and developing code for Embedded Systems (determining how all the smart electronics devices will operate and communicate) you will be compensated more than traditional programmers - who help write application and apps.

Again I am speaking in generalities - if you are excellent and creative and produce quality work you will be valued anywhere.

Charles recommends the following next steps:

Look into Embedded Systems and Embedded Design
Look into software lifecycle development

Updated Translate

Bradley’s Answer

Hi, I worked on both EE and CS because I loved both. I like how computers work, in the old days I fixed computers at the chip level, 1000s of individual chips called discrete logic to make a cpu. So you have some "super" processor these days with all the parts in one chip that rarely fails. The mechanism for computers at the chip level thru programming languages could be called Computer Science;

But Software Engineering may be the application of a computer system to process data and do real world things. In the SE role, you dont care at all how the computer works. Here you may use SQL commands on the data for something, 3D gaming I think would be in the SE realm, its all about the usage of the data and not about the underlying computer parts/operation.

If you wanted to debug an operating system and put a special OS build into a pc where you could run/stop and put breakpoints when it hit certain internal things, that I think is CS.

If you build a website using WordPress or Wix i think thats SE because you use the data; you dont have to know how the computer works, just using the tools to accomplish something with the data itself? its SE, using software to accomplish something. Same I think for using tools like MatLab or Excel, the use of software to do some task.

Decades ago each company made their own computer from scratch. Impossible to share code from one system to another. IBM caught on to this fact and use their power to try and set the standard. Companies would build their system to interface to IBM equipment and run IBM software, then they'd change the standard, everything from before? totally obsolete. Companies would go bankrupt, perhaps the LAST time they tried to do this was in 1981-1982. They built the IBM-PC-xt, secret at first but the design was leaked, anyone could build a board to add in, and the OS? was dos, so simple. Clones came out and Microsoft made their own kind of DOS, ms-dos that I assumed would be put out of business like others. IBM came out with their NEW kind of pc, the Microchannel, just a bit faster than the pc but totally different, I think it was the PS/2 they built up alot of software, the govt bought up zillions of them and it soon flopped. the original PC design has stayed and never gone away. By 1999 there was an industry agenda to forever delete the original PC core design, the 8-bit logic that runs dos? It failed. I think the layout of the processor, bus, memory/interface are computer science.

That paragraph may be called CS history? Now the only time youre designing like this (usually) is for embedded systems