Skip to main content
19 answers
22
Updated 4195 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

22

19 answers


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

Doc’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 Doc 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.” Doc 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 Doc 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 Doc 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 Doc 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. Doc Frick
6
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
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
0
Updated
Share a link to this answer
Share a link to this answer

Estelle’s Answer

Choose computer science if you are more hands-on for hardware and software such as servers and IT hubs and communications for end user equipment.
Choose software engineering if programming is your passion along with software development/coding.
0
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

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

Chung’s Answer

To answer this question, we first need to define what computer science is and what software engineering is.

There are textbook definitions like these from Wikipedia.

"Computer science is the study of computation, information, and automation. Computer science spans theoretical disciplines (such as algorithms, theory of computation, and information theory) to applied disciplines (including the design and implementation of hardware and software)."

"Software engineering is an engineering-based approach to software development."

Another way to look at computer science is to think of it as the study of everything that goes into building computers and information systems, such as the smart phone that you have in your hand. There are many things in a computer: hardware (chips, the circuit boards, screen, etc...), software (operating systems, networking, database, user interface, artificial intelligence based virtual assistant, etc...) and we have to worry about securing the devices and data. These are all sub-disciplines of computer science. Furthermore, we have to figure out how to systematically build all these components and put them together. That's engineering, and the software portion of the effort is software engineering. Software Engineering is also a sub-discipline within computer science.

In other words, software engineering is a subset of computer science. It is a specialization within computer science.

Should you study software engineering or computer science? It depends on whether you want to have a broad education that enables you to explore all the aspects of building computers and information systems, or you want a more narrow focus within computer science to study software constructions. Also, there are so many things in computer science that you can study that it is not possible to study everything in depth in 4 years. Students tend to pick areas within computer science to specialize.

In terms of jobs, you can pretty much get the same types of jobs with either degree. However, some jobs do have more specific requirements. For example, if you want to work for Oracle and build databases, you probably need to have completed specific course work in database/data management, which is another sub-discipline within computer science.
0
0
Updated
Share a link to this answer
Share a link to this answer

Sunaina’s Answer

Computer science gives you a holistic understanding of hardware and software fundamentals. You can think of an analogy where you will need a few Mathematical fundamentals to solve a Physics problem. With the knowledge in Computer science you can solve problems in software engineering.
0
0
Updated
Share a link to this answer
Share a link to this answer

Arjun’s Answer

Here's an uplifting take on your text:

My advice to you is to center your attention on the things that truly bring you joy. Do you have acquaintances in the professions you're interested in? Reaching out to them could be a great first step. Observe their career paths and envision if that's where you see yourself down the line. I urge you to uncover your passion, then delve into careers that align with it. Remember, when you love what you do, it's not work anymore - it's a journey of fulfillment.