Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I am a college student and I am majoring in Computer Science and Applied Mathematics. As I get closer to my senior year, I have noticed that continuing my studies is the best choice right for me now. I see that several universities offer an Computer Science Master's Degree and a Software Engineering Master's degree. What are their pros and cons?

share|improve this question

closed as off-topic by Ixrec, Snowman, MichaelT, durron597, GlenH7 May 10 at 12:19

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, Snowman, MichaelT, durron597, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

Which areas has the most growth? I assume that are a lot more high paying jobs for software engineering than for research. – Everton Jan 29 '11 at 2:15

5 Answers 5

up vote 8 down vote accepted

If you love solving design issues, go for Software Engineering. If you love to theoretically investigate computational problems, go for Computer Sciences.

Using the word love twice makes this sound sophomoric, but please listen to jzd on this one and drop the friggin' pros and cons. Your finishing your Master's track, you should know your preferences and aptitudes by now. You don't pick a profession and then find yourself in it, you find yourself first and then pick the most suitable profession. If you think anyone can reasonably deduce someones vocation based on comparison, then I suggest you give yourself a good smack and shape up before you do something with your life you'll likely regret later on!

share|improve this answer
Although just because one place calls their program Computer Science and another calls it Software Engineering doesn't mean one is CS and one is SE. What a course is called if often historical accident more than content – Martin Beckett Oct 30 '11 at 17:39

Don't worry about "better pay, hours, etc,", there are research jobs and software engineering jobs that stink in those categories and ones that are good.

Instead focus on what you enjoy doing. Choose one but as you get further along if it makes sense switch. If you choose what you like it will be more satisfying and more than likely you will be better at it, which typically will lead to better pay in the long run anyway.

share|improve this answer

If you look at the number of software engineers and the number of researchers in the industry, academia and all places put together, you can safely say that the number of researchers is very small when seen against the number of software engineers.

This has many reasons. To begin with, entry barrier to research is considered to be higher than that of software engineering. Other reasons could be, there are that many software engineering jobs whereas fewer research jobs are available. Plus, to be a software engineer, there is no hard and fast rule to hold a degree in computer science or such, though having one really helps. But to be a computer science researcher, computer science degree with distinctions and other achievements is desired.

The researchers, from what I understand, can not purely be publishing papers on and on. They have to design, develop and execute experiments. This is software engineering too.

IMO, since this question is about what to study at postgrad level, if you can pass the entry barrier for research studies, go for them, else go for software engineering studies.

share|improve this answer
Do you believe research has better perks than than just going into Software Engineering? ( meaning pay, hours, time spend programming, leading a team..etc.) – Everton Jan 29 '11 at 2:17
I would look it up on careers sites. They carry yearly survey results of jobs and the pay and such things. The way I see, you got to enjoy what you do. That makes you good at it. At the end of their careers, I have only seen people talking about their passions and people, not pay and such. – vpit3833 Jan 29 '11 at 6:00

Because of the options you're listing, I would go with a computer science program and specialize in software engineering. Without knowing the specific programs involved--i.e., the school(s)--it's hard to give any specific advice. For example, my MS CS was (by my own design) very focused on software engineering.

share|improve this answer

I can only comment on the school that I went to (RIT), but here is my take. Software engineering degrees focus a lot on the project management side of software engineering. CS focuses more on solving problems or coding. It may have changed since I have been there, but that was what I witnessed. Take that with a grain of salt as I majored in computer engineering and therefore didn't not actually go through either program. Based on what I witnessed, a SE degree will set you up with the opportunity to start "farther up the command chain"...project lead...whatever. A CS degree may give you a stronger technical back ground and expose you to a wider variety of programing related problems, but you may or may not be exposed to important software engineering concepts like design patterns, or different types of development processes. Looking back with 20/20 vision I think a computer engineering degree trumps both of them ;)...I mean a CS degree is probably more transferable. You can learn all the other stuff once you enter industry. If you are more interested in the project management side of things then by all means go with SE.

share|improve this answer
As an RIT SE graduate from May 2011, I agree for the most part. SE does focus more on requirements, architecture, design, good implementation techniques, and project management. CS is more mathematical and theoretical, focusing on creative and innovative solutions to problems. As an SE graduate, I might not be able to quickly devise and implement a brand new algorithm or data structure, but I can tell you the tradeoffs of various ones, and make a decision that lets me design and build you your software on time, on budget, and with a high level of quality. – Thomas Owens Oct 30 '11 at 14:32
@ThomasOwens I have to disagree with your assessment of the two degrees. In reality I have found that a SE graduate can only do what they've been told or learned. I find a fundamental lacking of creative thinking, problem solving and deductive reasoning in SE graduates. A graduate in CS is the one that typically can enumerate all the trade-offs between various algorithms as they understand the fundamental theory behind them. The only issue I have found with CS graduates is the need to over analyze all problems which results in a lack of productivity. I'd still rather the CS student though. – Andrew Finnell Oct 30 '11 at 16:12
@AndrewFinnell I don't see any of that from myself or my colleagues who graduated before or with me. Problem solving and deductive reasoning are essential to success in the program that I went through, although I can't speak about other SE programs at other universities. A problem that has come up time and time again is that some people can breeze through the team-oriented courses with minimal effort since the rest of the team carries their weight and they only come out with book knowledge needed to pass exams. Those people, from my experiences at RIT, are only a small minority of graduates. – Thomas Owens Oct 30 '11 at 16:32

Not the answer you're looking for? Browse other questions tagged or ask your own question.