Skip to main content
17 answers
19
Updated 1313 views

How do you choose whether to major in computer science or software engineering?

I am applying for college soon, but I do not know how to pick between computer science and software engineering. I have not always been the best at math, and didn't do very well in math early on in my highschool career, but I managed to work my math grade up over the years. I am not naturally amazing at math, but I do find it interesting. #computer-science #computer #engineering #math #software

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you

19

17 answers


6
Updated
Share a link to this answer
Share a link to this answer

John’s Answer

It seems that everybody has a different take on just when to declare a college major Rachel.

Choosing a major should be a well-thought-out process with plenty of research involved. You shouldn’t jump into a major just to get your declaration out of the way. While it does vary from college to college, generally speaking, most ask students to declare their chosen major by the end of their sophomore year. This gives you time to explore various electives and get some general education courses out of the way. This way, your junior and senior years can really focus on your major. Of course, your interests are an important part of picking a major. If you really dislike what you are studying, you will be miserable. Additionally, you won't be particularly motivated to complete your coursework. So it is essential that you are actually interested in what you are studying.

COMPUTER SCIENCE VS. SOFTWARE DESIGN ENGINEER, WHICH MAJOR IS BEST FOR YOU RACHEL?

COMPUTER SCIENCE – Computer science professionals take part in the design, upgrade and improvement of computer systems in a wide array of industries. From artificial intelligence and security to computer games and graphics, a computer science graduate can choose from a variety of career paths. Students who wish to enter a computer science degree program should have strong mathematical, analytical and problem-solving skills.

Bachelor's degree programs in computer science include classes in mathematics and algorithms including courses that focus on both the theoretical and practical aspects of computer programming and computer software design. Students spend a great deal of time working in computer labs and demonstrating their abilities in software development, computational analysis, program designing and implementation, program testing, and problem-solving. The average Computer Science salary in the United States is $98,200 as of May 28, 2020. The range for our most popular Computer Science positions typically falls between $68,000 and $196,500. Keep in mind that salary ranges can vary widely depending on many important factors, including position, education, certifications, additional skills, and the number of years you have spent in your profession.

SOFTWARE DESIGN ENGINEER – Every business that generates its own computer programs or needs to personalize third-party software needs software engineers to write, edit, and test programs. There are many layers of computer software, and each requires a specialist in languages specific to that layer. Software engineering is a rapidly changing field: training in software is available at nearly all learning institutions, and most software engineers continue to learn on the job, as languages and development environments evolve. Strong analytical skills and the ability to pay careful attention to detail are key to a successful career in software engineering.

A career as a software design engineer generally entails a Bachelor of Science in Software Engineering. Alternatively, some enter this career by earning bachelor's degrees in related fields, such as computer science or computer information systems. Software engineering degree programs include such courses as software design, computer architecture, programming languages, networks and operating systems. They typically also require the completion of senior design projects. The average salary for a Software Engineer in the United States is between $61,500 and $165,500 as of May 28, 2020. Salary ranges can vary widely depending on the actual Software Engineer position you are looking for.

Rachel According to the Bureau of Labor Statistics, the projected job growth from 2020-2030 for a Computer Science Professional is 6%, for Software Engineering that number is 21%.
Thank you comment icon Thank You Derek. “The broadest, and maybe the most meaningful definition of volunteering: Doing more than you have to because you want to, in a cause you consider good. ” – Ivan Scheier John Frick
Thank you comment icon Thank you! These explanations really helped me understand the difference! Rachel
Thank you comment icon Your Welcome Rachel. Nothing is impossible, the word itself says “I’m possible.” John Frick
Thank you comment icon Than You Storme. “At the end of the day it’s not about what you have or even what you’ve accomplished… it’s about who you’ve lifted up, who you’ve made better. It’s about what you’ve given back.” – Denzel Washington John Frick
Thank you comment icon Thank You Alex. “What we have done for ourselves alone dies with us; what we have done for others and the world remains and is immortal.” – Albert Pike John Frick
Thank you comment icon Thank You Stephanie. “Our generation has the ability and the responsibility to make our ever-more connected world a more hopeful, stable and peaceful place.” — Natalie Portman John Frick
Thank you comment icon Thank You Gautam. If you talk about it, it’s a dream. If you envision it, it’s possible. If you schedule it, it’s real. John Frick
6
2
Updated
Share a link to this answer
Share a link to this answer

Derek’s Answer

Hi Rachel,

As a working engineer, I'd just add that a conceptual understanding of math is more important than being able to work problems by hand. I wouldn't let grades get in the way of your confidence, if you're engaged in the subject there will always be someone willing work with you until it makes sense.

As far as the computer science/software engineering split...John gave a great, detailed response, so I'll just add a bit of color from my experience. My impression is generally that software engineering (or CSE at some institutions) probably sets one up for more of a product focus (be it an application or physical product), while computer science can have a bit more of a research/applied math feel. But that is dependent on the individual and institution, and there's a lot of crossing over my poorly drawn line between the two. I spend most of my time working with embedded software and algorithms, if you have any specific questions to that end I'll stop monologuing about fields I don't work in.

FWIW, I found looking at job postings helpful in selecting a degree. The education requirements are right there, and it's easier to be going towards something than to pick a direction entirely from past experience.
Thank you comment icon Thank you! Looking at job posting seems really helpful, I had not thought of that. Rachel
2
2
Updated
Share a link to this answer
Share a link to this answer

Jeremiah’s Answer

Hello, that’s a very good question asked at the right time. A good way to approach your decisions making process is to critically think and ask yourself “which of the 2 fields do you find yourself the most drawn to?”
And your long term career goals?

While it is true that a foundational understanding of Mathematics enhances your chances of surviving a computer science degree, with patience and hard work, I am confident that you can make it through.

Computer Science is broad field which goes deeper into teaching you to understand the underlying principles of how everything (computers and software) works and how to create computer softwares, some school curriculum covers how they are used as well; Software Engineering is a streamlined field which focuses on the Software Development Cycle (SDLC) and how to create Software for Client use. Some schools touch on aspects of Computer science as well in their Software Engineering Curriculum.

Finally, Computer Scientists are more flexible to become Software Engineers rather than vice versa.
Here is a helpful link for further details :

https://uwaterloo.ca/software-engineering/future-undergraduate-students/frequently-asked-questions
2
1
Updated
Share a link to this answer
Share a link to this answer

Stephanie’s Answer

Hi Rachel,

To give you some context I am a Software Engineering major. So one example with a semester of 4 classes could be: operating systems, web development, linear algebra, and databases. All these classes differ from each other so, at times, you may need to bounce around different types of logic. Other semesters could align perfectly: software enterprise, design and analysis, design and process, and data structures. Where these classes flow with one another, so what you are being lectured about in one class, you could very much have that same lecture, with different context, which makes learning the material easier since it's being reiterated throughout your classes for that semester.

Being a Software Engineering major, my responsibility as a student was to learn every and any types of software and how they are being implemented in all areas. As challenging as it was trying to grasp the different concepts and methodologies, it was very rewarding succeeding at these different topics and finding my true area of passion. Since there are many scopes I am learning about and implementing, I was able to find out what worked for me and what didn't, which led me to my career role now.

As for math, when I first started out, I wasn't a strong programmer when it came to the math and logic either. But using these practices trained me to better understand the logic behind the math, which helped my thought process in coming up with my own logic to create my own algorithms.

If interested, a nice way to practice this to better your skill in that area you feel that you lack, is understanding data structures and algorithms. With using object oriented programming, like languages like Python and Java, there are concepts already set in place so you don't have to use too much logic to reinvent the wheel twice. You can use the practices and see how they tailor to your goal(s) then manipulate them accordingly. Like how to make code optimal with an array vs a linked list.
1
0
Updated
Share a link to this answer
Share a link to this answer

Rohit’s Answer

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.
0
0
Updated
Share a link to this answer
Share a link to this answer

Khanh C.Q.’s Answer

Go for the one that takes the least amount of time to complete and try to get internships along the way for both hands on experience and interview practice.

Also try not slack off in the algorithms, data structure, and database design classes since they will be the foundations of the every single technical and coding interview you do if you want to go into software engineering as a career.
0
0
Updated
Share a link to this answer
Share a link to this answer

Maha’s Answer

Computer Science is super-set of Software Engineering. Hence I would recommend students to opt for Computer Science over SE alone. Computer Science equips students better with algorithm and problem solving in general. Also industry recognition across geography is more for CS degree. CS degree also great for doing masters and then research(PhD) as well. So CS path is better than SE. All the best. Thanks.
0
0
Updated
Share a link to this answer
Share a link to this answer

Kaan’s Answer

I think it would be good to give some history about these two majors. Software Engineering was not a major or program 10-15 years ago. There was computer science though. (There is also a course in computer science programs called Software Engineering. But do not confuse it with the major. )

I think over the years, computer science educators thought computer science curriculum is just too much for an average programmer or for example a web developer. Then they came up with software engineering program which is a stripped down version of computer science. It focuses on programming/development. So, you may not see courses like discrete math, computer networks, numerical analysis, theory of computation, computer organization, maybe even not an advanced operating systems class. Instead, there may be programming classes like C# to begin with.

I know students who do not want to go too deep into computing concepts but rather become a good developer like doing web application programming choose software engineering.

One last word on software engineering course in computer science programs. It focuses on how relatively large computer software are developed. It is still about development but not coding. There is not much practical work instead it is more theory, like comparison of software development paradigms, requirement analysis, maybe a little bit of software testing and code verification. This course should also be in software engineering programs.
0
0
Updated
Share a link to this answer
Share a link to this answer

Siva’s Answer

I hold Masters Degree in Software Engineering so I could be able to answer it

Computer Science VS Software Engineering

Before we deep dive into the conclusion, let's understand what is computer Science and Software Engineering

Computer Science
Computer Science is a field of study which involves how the computer system works and the supporting technologies which orchestrate the whole system. Computer Science includes the following fields of study like hardware structures, logical associations, compiler designs, mathematical calculations, the evolution of computers starting with breadboards to supercomputers. Computer Science explains the backbone network structures which enables different heterogeneous systems to interact and pass a message between them and protocols associated with each of the messages that are passed.
Computer Science explains to you the whole architecture of modern communication between different systems and how the underlying infrastructure supports it.

Software Engineering
Software Engineering explains the principles of developing software that encompasses the best practices, best methodologies, best architecture for building beautiful Softwares/Applications. Software Engineering is set of study which is made from past experiences from industry-leading approaches how they have developed products and the issues for each of the methodologies they take in hand.
SE(Software Engineering) explains the budgets and the resources needed for creating a whole bulk of the product. How to allocate budget and resources is explained in the SE. SE shows the best design prototypes for each of the types of projects you undertake starting from modeling software to drill down up to to the grass-root level business case. SE mainly explains the Modeling of software rather than the supporting infrastructure. Modeling involves creating Object Diagrams, Collaboration Diagrams, Sequence Diagrams, Business Model Diagrams. Tools used for modeling are Rational Rose, Object Modeling(UML), and some open-source tools.

Conclusion
In simple words, computer science tells you how it actually working and Software Engineering tells you how to make it work.
0
0
Updated
Share a link to this answer
Share a link to this answer

Kshitij’s Answer

Hi Rachel,

That is a good question and a great one to have before joining a college. I am a Data Science Masters student and have worked as a software developer. My personal suggestion and the distinguish between the two is that Computer Science is the super set of Software Engineering so obviously that is more flexible and allows space for all. Although it might be a little math heavy sometimes.

But there are few things that are common to both.. like

1. A coursework on Algorithms and Data Structures.
2. Basic Logical programming course.

So these two are the building blocks for any person entering the field of tech and computer sciences. I am very positive that you can shape your CS degree by choosing any good electives in any field of your choice and steer it as your knowledge and interests develops through the major. This might not be very possible with the Software Engineering course.

However, you have all my best wishes and I heartily suggest you to take up a major of your choice and will because in the end you should enjoy it and always feel enthusiastic to learn more and not just pass through it. If Software Engineering is something you like and are eager to know about go for it and rest assured all the courses are shaped to give you a good knowledge to start in the industry. My suggestion is to go through the college's websites look around on the coursework for both of them and have a look which better suits your comfort and what would be best for you. I know this is a very crucial time and things might seem tough but rest assured that whatever you chose there are a lot of opportunities out there for you. All the best.


Best,
Kshitij
0
0
Updated
Share a link to this answer
Share a link to this answer

Rachel’s Answer

Hello Rachel,

That's an excellent question to ask and very similar to one I asked myself quite recently. This answer is given largely based on my experiences, and not to be taken as what the majors might entail everywhere. For reference, I am a software developer currently working in industry.

I am a recent college graduate with a degree in software engineering and mathematics, however I began as a double major in mathematics and computer science. I chose my majors because I loved both fields and wanted to get to know more about them. I have always enjoyed the problem-solving nature of math, and thoroughly enjoyed being able to use my programming skills to solve problems.

Halfway through school, I took my first software engineering course, as it was required for the computer science major at my university. In that class, I had to build a large piece of software from the ground up with a team of classmates. The class was a semester-long simulation of how a real Agile team might function in industry. And I loved every bit of it. Even more so that the theory-oriented nature of my mathematics and computer science courses. The idea of being more hands on, developing solutions that people can use everyday, getting to interact with a team of coworkers, and still being able to develop solutions for problems people have made me switch from computer science to software engineering.

Either major is excellent, and if you choose to go to a school that doesn't offer both, that's okay! Largely, most of the material you will learn in college will be given in either major. The largest difference is whether or not you will see more theory or application during your studies, especially as you begin to complete the major.

Best of luck in whatever you choose!

(Another) Rachel
0
0
Updated
Share a link to this answer
Share a link to this answer

Abhijeet’s Answer

Computer science encompasses the study of computers and computational systems. Computer scientists may generally theorize and calculate aspects of software and software systems in the design and development phases.

Software engineering applies the standards and principles of engineering to design, develop, maintain, test, and evaluate computer software. A software engineer may also be referred to as a computer programmer, software designer, or software developer as the nature of software engineering can require knowledge of programming languages, principles of software design, and building.

If you view them, Computer science is similar to a medical student pursuing a Ph.D. to work on researching a vaccine for instance, in this pandemic-fueled world. This is different from your primary healthcare physician whose job is more hands-on. He/She gets to interact with you, diagnose you, and offer the required treatment. So, if you ask yourself whether hands-on learning experience and interaction feels more fulfilling than studying theoretical applications of technology - that will guide you narrowing down to a path. And, you can pursue this path - software engineering or computer science to be great
0
0
Updated
Share a link to this answer
Share a link to this answer

aditi’s Answer

Both degree programs prepare students for careers in computer programming and software engineering. A computer science degree, however, can equip students to pursue a broader range of careers and leadership roles in fields such as cybersecurity, cloud computing, computer architecture, and project management.
0
0
Updated
Share a link to this answer
Share a link to this answer

Mitchell’s Answer

Hi Rachel,

Just for reference, I am a computer science major in a software engineering role at the moment. This answer is based on my experience, and may not be wholly representative of both degrees.

First, understand that while you may have struggled with math in the past, you have already demonstrated that you can get better at math. Math is a skill that does take practice to improve in. There will be required math classes that will continue to develop those math skills in your college career. I wouldn't be scared of taking more math classes if you do have an interest in it.

Computer science and software engineering are very similar degrees, and they will share many classes between them. For example, both degrees will have an intro to programming course, courses on data structures, and courses on algorithms. As you get further into your studies, the curriculum will start to diverge a bit.

As others have mentioned, the large difference is that software engineering is more on creating software products. For example, someone in a software engineering role might build webpages, phone apps, etc. Computer science is a bit more abstract and more focused on theory. Computer science also tends to involve more math than software engineering. A computer science role might be focused on building developing new AI. Additionally, I believe that it is easier for computer science majors to enter into software engineering roles than vice versa.
0
0
Updated
Share a link to this answer
Share a link to this answer

Shiraz’s Answer

good question :) In my experience, it is about the same thing. some colleges call it computer science while others software engineering. These are not two different streams in the same college. so i would choose the college over choosing between these two.
0
0
Updated
Share a link to this answer
Share a link to this answer