8

Let me preface by saying I'm studying Computer Science, so I don't know how well this applies to every field but this is what I have heard from. many Computer Science and Engineering majors.

I have heard that, when applying for jobs, a masters degree can be a sign of poor performance. That is, those with a masters in Computer Science are thought to be significantly poorer programmers than those with an undergraduate.

I am interested in getting a masters degree because I hope to one day transition into more analytical and research based positions, but if I get an MSc. could it hold me back? Would it be better to get some work experience, and then get my masters mid-career? I know that some employers may even pay for your graduate studies, but is this significantly better than the alternative in any sense?

9
  • 2
    Presumably many companies who hire programmers actually look for real evidence of programming skill, rather than merely taking into account things which are rumored to correlate positively or negatively with programming skill. Thus if you have a master's degree and can demonstrate good programming skills, it would be silly for potential employeers to ignore that evidence in favor of some rumor that an advanced degree in subject X erodes certain X-related skills. Oct 14, 2014 at 2:57
  • I would doubt it in general, but for a specific entry-level position, yes, possibly. Oct 14, 2014 at 2:57
  • 4
    Everyone I've ever heard tell me that a higher degree makes you less employable or that it didn't matter...had a lower degree. For some reasons I believed such things for years before I noticed this suspicious commonality. Yet I never have met a person that told me, "jee, I sure wish I didn't have an advanced degree" - though I've met many, many people with them in many walks of life. No one seemed to think it made them worse off, though. Not proof of anything, but curious.
    – BrianH
    Oct 14, 2014 at 15:14
  • I wouldn't be surprised. High quality CS students can usually get a good job or PhD acceptance straight out of undergrad. The corollary is that often people get a master's in CS either because (1) they weren't strong enough to get a good job, (2) they weren't strong enough to get into a PhD program, (3) their school had a 5 year BS/MS program and they just got the extra MS for the hell of it. The third option doesn't show weakness but the other two do. Dec 24, 2014 at 22:55

2 Answers 2

9

I would actually think it is precisely the opposite: generally, a computer science Masters requires a thesis, and that thesis usually involves writing a big chunk of functioning code of some sort. Accomplishing that indicates that person is capable of a accomplishing a large and complex task with minimal supervision. With an undergraduate degree, you don't necessarily know whether they've ever built a real program that wasn't handed to them as a pre-digested problem as part of their curriculum.

Now, if somebody was a giant company looking for "cannon fodder" programmers to grind out massive repetitive projects, maybe that could be a minus. Likewise, you have to pay people better when they've got a Masters, commensurate with their increase in skill, so if somebody is looking for low-quality coding work, a Masters could make a candidate overqualified. However, if you're thinking about eventually moving toward more research in your career, do you really want those sort of jobs?

I know for a fact, however, that the company group I'm in rarely even considers hiring people without at least a Masters. A number of others I know are similar: the more cutting-edge or research-oriented a company is, the more that they are likely to value that extra education.

4

No, the Master's will not hold you back. I received an MSc last year in Computer Science, and I no longer eat ramen unless I want to.

I'm not sure where the rumor began that Master's in CS makes you overqualified. In April, when I switched jobs, I was interviewed by four large companies looking specifically for people with Master's. In fact, I was one of only two candidates at one of the jobs, and the recruiter made it apparent to me that they were having difficulty finding people who had Master's degrees to fill these higher-education positions. Plenty of BS programmers, but not enough people with team capabilities.

A fact of life is that we may not learn everything in school. I didn't. That's okay! It's also true that some of the things you use at work will be covered in classes. For example, I learned how to use servlets in class. Six months down the road, I looked at some software we were using at my old job, and lo and behold, same technology. I ended up making some improvements to that software and even presented that information at a conference.

It's ultimately up to you whether you want to work a bit for experience before or after your Master's. I would say, looking back, the Master's prepared me much more for the real world than just the Bachelor's.

Master's Degrees, like most investments, are investments. Time and money are placed in, and a commodity is produced. In this case, the commodity may not be apparent, as you haven't received your MSc. You don't just learn programming++ at a Master's level. You learn how to apply programming to research, or the real world, depending on your ultimate career path.

Here's a rough rundown of what each level is. Note that this is for COMPUTER SCIENCE. Other fields may differ drastically from this in what type of content is taught. For example, Physiology Masters are probably not going to be taught project management.

Bachelor's Level

At the Bachelor's level, students traditionally start by learning the basic concepts of software development and theory. For example, machine language and compilers. Eventually, students get mastery of perhaps a single language. In my case, this was Java, so I'll use that as an example.

For Java, we learn a pretty decent amount of practical use for grunt work programming. Your bread and butter skills, for example. In the working world, we would probably label this Software Developer I. Entry-level. You can fill in, but so can a lot of other people. You'll have a hard time getting to show you're out of the pack at this level, because there's only so many ways to create a for-loop and "good enough" will usually do.

One of the things that's not focused at the Bachelor's level is working as part of a development team.

Master's Level

At the Master's level, students have the opportunity to learn much more focused topics of study. Off the top of my head, here are some examples that would be reasonable continuing from a BS with little prior background.

  • enterprise web and application development (building large self-supporting frameworks, industry)
  • cryptography (cracking or developing encryption, practical both for industry and research)
  • neural networks (pattern finding and analysis, mostly research at the moment)
  • artificial intelligence (it's really tough to describe what this field is, even for me, but it's both industry and research at this point)

In addition, there are several parallel fields that you also have associated topics of study you can migrate to, for example Information Systems Engineering, or Bioinformatics.

Additionally, concepts are provided in preparation for a management role. The software development cycle, for example, is taught as one of our core courses, and shows us how we enter the design phase and work through to the development and testing phase. Whereas in college, classes were expected to complete one or two-week assignments, most of my graduate classes focused on delivering an entire product at the end of the semester.

Regardless of what you study, there is likely an industry or research institution that will be interested in what you learn. A fresh graduate would very easily qualify for a Software Developer II role, a mid-level developer.

Another major benefit of graduate level courses is the establishment of a development team as an entity. Whereas in undergrad most of our tasks are solo endeavors, by Master's we may have to collaborate with other people, or use other people's code. Code reuse is nice at this level, and so is working with people with different backgrounds. No longer are we in the universe where we can't copy people's code (we still have rules about that, like attribution, but now we can use APIs and libraries to simplify our lives!)

Doctorate Level

As I am not a PhD, nor do I plan to get one, most of this is from familiarity rather than experience. Doctorates will, similar to a Master's dedicate most of their time to study a specific subset of computer science. My adviser in college studied neural networks, for example. Most doctorates gear towards research and/or teaching at this level. Much of it is based on theory and concept rather than software development at this point. Similar to how basic college calculus versus PhD math are on completely different levels.

Possible Caveat to the PhD

I have heard of these rumors of higher education being a disadvantage. In my opinion, a PhD with no hands-on software development lead in the software development cycle is probably going to be a hard buy in industry that needs a software developer lead. That's hearsay for me as I haven't met any PhDs in CS outside of university, so take with a grain of salt.

Software Developer Roles in the Industry

I mentioned software developer roles above, but only up to Level II. Traditionally, I have only seen levels go up to III, but at a recent interview for work, I met an SDIV. These roles can be roughly defined as brackets for years of experience.

  • SD I: 0 to 2 years experience, likely to have a Bachelor's. Entry-level and most likely the bottom rung of programming and testing. May be tasked to work with an SD II for most work. (This used to be me.)
  • SD II: 2 to 5 years experience, or equivalent, may have a Master's. Likely to work independently as part of an overall project (i.e. you get assigned a task, usually broad, such as "Implement a user interface to handle XYZ." This is me at the moment).
  • SD III: 5 to 15 years experience, most likely have a Master's. Significant experience with the software development cycle. Likely to be a project manager or be assigned to a high-level development or testing team (i.e. in framework management). This would be someone like my Project Manager boss.
  • SD IV: 15+ years experience. This person is well-qualified to be a project lead, or may lead multiple projects. This would be someone who is probably could teach a graduate class on the subject and not need to consult a book. You'll rarely encounter these people, since coding languages go out of phase or are brand new. Someone really has to have been an early adopter of the language to get this amount of experience.
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .