top | item 5786720

The declining value of the MS in Computer Science

161 points| moyix | 13 years ago |blog.regehr.org | reply

124 comments

order
[+] mdasen|13 years ago|reply
I think there are a few issues here. The author points out that there are masters programs springing up whose purpose is to generate revenue. One of my professors calls these mercenary-masters. Often times, these programs segregate their masters students from their undergrads and PhD students - giving them special courses meant for that median mercinary-masters student. That makes it easy to weed out the worst offenders and these programs can be seen as less valuable than a undergraduate degree in CS.

But to put a counterpoint on it, undergraduate education in CS can also be highly variable. My university used to require 20 courses, but because so many other schools required so many fewer, they adjusted down. Heck, most schools don't require students to take operating systems (something that stuck at my school). So, even within undergraduates, I'd say there's a decent difference between someone who took 12 courses, avoiding harder ones and someone who has taken a harder program. In some ways, the same thing that is driving these mercinary-masters programs is driving departments to encourage and keep lower-quality undergraduates within the department.

One of the big problems is that there are a lot of people that want to retrain for software engineering jobs. Yes, they could learn on their own (and many do), but some like the classroom and some like the perceived safety of a piece of paper from a university. We could call these programs post-bac, but that's a lot harder for someone to market on their CV/resumé. So, what is someone that wants to retrain supposed to do? There are undergraduates coming out of top schools with 10-course majors in computer science (including required math courses). As long as the courses are taught at the same level, there's no reason that someone should be able to retrain with those same 10 courses and be seen as having gotten the same education.

So, getting back to the issue at hand, I think there's an issue of whether any CS credential carries the same weight. We only demarcate a few options (BS, MS, PhD), but within a BS, there's huge variation that isn't captured by GPA given that so many schools allow students the option of skipping the hard courses and going with electives like "Web Engineering with Rails" and "Mobile Apps for Android". But part of it is that those course titles offer something that is of value to a lot of companies. For both of those jobs, you don't need to know how a TLB works or why a B-tree is better when doing disk IO. It can be helpful, but there are a lot of jobs that don't need high CS skill.

Maybe the issue is that we don't generally have Software Engineering degrees. There's overlap between software engineering and CS, but I think there's a decent difference worthy of demarcation. Technology is seen as a good path today and I think some of the harder pieces of CS get some people discouraged out of the departments. That usually gives departments two options: water down the major or have fewer achieving the major. Maybe a balance could be struck, maybe a software engineering degree would be the way to go. Maybe universities in America need to start offering MPhil degrees (a research masters) to make the distinction.

But, even if that distinction were made, some schools would be offering software engineering under the CS name and students looking for a fancier piece of paper would send their money that way. We don't have anyone like the AMA dictating standards as they do in medicine. But maybe this is better. Maybe this means that we need to actually look into candidates rather than relying on one piece of paper.

[+] itcmcgrath|13 years ago|reply
I agree. As a hiring manager, credentials like BS/MS (and GPA) can be helpful, but truly are low value compared to what you have learnt.

Their knowledge, problem solving skills, 'soft skills' and ability to quickly learn areas they have gaps in are what make them effective. How they acquired them and 'prove' them are all I care about. Part of the onus on me is to tease that out in my short-listing process and interviews and part of the onus is on them making it easier for me to see it so they jump out for me as quickly as possible.

[+] tom_b|13 years ago|reply
As MS in CS degree holder, I strongly agree with the article re: the idea that coursework-only MS in CS programs are less worthy that programs that include a thesis. I say this as a MS holder who did not complete a thesis and regret it (much more than leaving grad school, which was the right decision for me).

I did (thankfully) participate in research, so I can always talk about the research work even without a publication track record. I have published since in different formats, so that worked out.

But, and this is a crucial issue, a MS in CS of any type helps get you past the HR filter at big companies. When I completed mine, it meant a significant boost in starting salary right out of the gate. If you're looking to join IBM or Microsoft, you probably need to think hard about that signaling credential . . .

Ignoring the disconnect between the academic CS experience and the reality of what most CS programmers work on in the day job, the biggest challenge I see for new practitioners is building a portfolio of software work that a hiring org can understand well enough to make a hiring or interview decision on. How do you communicate that ability and drive to hiring managers outside of your personal network? Do these combined BS/MS programs (e.g., a year of additional coursework to finish off a coursework-only MS) or simply hitting grad school still work better than saying, hey, here is my open-source implementation of path expressions for concurrency control in Common Lisp?

[+] laughfactory|13 years ago|reply
Your comment about the HR "filter" is precisely the reason I'm pursuing a MS in CS after getting my BS in Economics. Many job posts specify either a BS or MS in Computer Science as a requirement. So even though I have a very solid BS in Economics (lots of statistics and math and an excellent GPA), I wouldn't necessarily get through HR to the hiring manager without the all-important CS diploma. Plus, even if the MS in CS isn't as rigorous as some Bachelor's in CS are, if it covers the fundamentals, I don't think it'll hurt me. And yes, I'm also developing my own projects in addition to doing the MS in CS. I know that it takes a combination of education and demonstrated capacity (i.e., developed projects and code) to really do well in finding a decent job.
[+] pnathan|13 years ago|reply
As a MS in CS degree holder (did research, wrote thesis ish report), I also concur. Coursework only MS holders have a fundamentally different degree from the research/thesis degree.

As part of my MS, I did build a portfolio of work - well - a project ! - that I've used in my interviewing process.

And, oddly enough, serendipity is that it had to do with concurrency and was written in Common Lisp.

[+] ataggart|13 years ago|reply
The consensus here seems to be that, unless you want to do research and publish papers, a Bachelors in CS is a terminal degree. Is there really no room for formal exposure to advanced application of what the researchers are researching?

If I think machine learning sounds like an interesting approach to solving problems, are my choices really limited either to seven years of academic research or to teaching myself this stuff from whatever materials I can cobble together in my spare time?

[+] ultimoo|13 years ago|reply
There is a third kind of meaning to an MS-CS degree.

For international students, it becomes significantly easier to get work authorization and permanent residency in the US if they obtain a higher education degree (basically an MS or a PhD) from an American university. This is one of the main reasons that students from India and China in my university who have a BS and already have very employable skills still go for an MS.

[+] theatraine|13 years ago|reply
Even if you don't have an American degree, it helps for immigration purposes. For example, I have a Canadian MS, allowing me to apply for a green card under the EB2 category. The EB2 category has an expected wait time of about a year as opposed to the EB3 category (if I only had an undergraduate degree), which would have a wait time of around 5 years.
[+] rajanikanthr|13 years ago|reply
I second that.. It's a way for students from overseas to get settled in the Land of Opportunities
[+] mwfunk|13 years ago|reply
The article isn't so much about the perceived value of an MS/CS in the job market as it is about the author's unhappiness with what an MS/CS means these days- less often as researchy prep for a PhD, more often as a BS/CS++. He also complains about the fact that there are students getting their MS/CS that don't have a BS/CS, therefore sometimes have fewer CS fundamentals than their undergraduate counterparts. I have a feeling that most of the comments are going to be about whether or not someone with a BS/CS should go for an MS, but that's not what the article is about.

EDIT: typo

[+] jcurbo|13 years ago|reply
As a BS & MS in CS degree holder, who did not have a thesis option, I agree wholeheartedly. The article mentions that the coursework programs are basically extensions of undergrad, and that certainly applied to my program. I was a bit non-traditional, as I did my MS later in life and as a working professional (8 yrs after finishing my BS), so I wasn't expecting the full-time deep dive experience anyway. I tried to take advantage of the time I did have though and both refresh my knowledge of CS and extend it in a few areas (mainly, learning functional programming and knowledge of language and type theory) Unfortunately, I didn't get to do any research, but I am trying to make up for that by applying to a post-masters advanced study certificate program.

I also had some folks in my program who were, in my opinion, definitely not graduate-level material (a point made in the article as well). I feel like I have a strong CS background and can take things to a higher level, but because of the weaker folks, some of my classes were (to me) watered down and ineffective and thus not challenging to me.

[+] kenster07|13 years ago|reply
Their lack of understanding of CS fundamentals is probably why they are taking the MS in the first place. I would assume they would have improved by graduation.
[+] thirdstation|13 years ago|reply
The post, and the one it comments on [1], bothers me for a few of reasons.

One: As an MS in CS holder I certainly worry that my degree is perceived as worth less, if not outright worthless. I worked very hard for it and am proud of my accomplishment. It represents a great deal of sacrifice. It also represents the 30 credits of undergraduate coursework and six credits of graduate coursework I completed before entering a graduate program. Of course, Ms. Lerner would see the MS on my résumé and throw it in the rubbish pile.

Two: According to Prof. Regehr's second point, training in public speaking and writing is an important aspect of a research-oriented master's program. I already had a B.A. in Journalism so I was pretty well covered on both of those points. And, since I was working full-time, with a child on the way, I was plenty mature. A coursework-oriented degree is what I wanted.

Three: I violently object to the denigration of MSCS holders based on the limited experience of a recruiter. Maybe Ms. Lerner is unable to attract more qualified candidates, and so she's extrapolated too liberally. Her arrogance is what I find most offensive.

[1] http://www.forbes.com/sites/quora/2013/05/09/how-different-i...

[+] dwc86|13 years ago|reply
I did a coursework-only MS in CS, and I think it was a good move for me. In particular, because:

1) I was able to work full-time while completing the degree, and my employer paid for the tuition.

2) I don't have a BS in CS, but I do have a semi-related BS in engineering, so getting a second BS was not a very attractive option in terms of time or money.

3) I came away with a formal CS credential that will allow me to get past HR screens. I've already had a few recruiters from well-known tech companies contact me since adding the CS degree to my LinkedIn profile that I don't think would have noticed me before.

Does having the MS alone put me on the same level in terms of overall knowledge as the average BS in CS holder? Probably not. I definitely noticed that some of the graduate-level courses I was taking seemed to be easier overall than what I was used to from some of the undergrad courses I had taken in CS. But at the end of the day I did learn a bunch of new stuff, and I know that I can fill in any gaps remaining through self-study or resources like Coursera, so I'm not too concerned.

Getting the degree for free made all the difference though. I wouldn't recommend paying full tuition for one of these programs, which the author agrees with.

[+] saffer|13 years ago|reply
As a non-CS grad, I may be biased, but I think fields like math/CS/physics/engineering are closely enough related that good skills in one make it much easier to learn another. The idea that you have to have a bachelors in CS to get good use out of a masters doesn't apply to everyone.
[+] milliams|13 years ago|reply
At my University in the UK (Warwick) we have three Physics courses:

- BSc: A 3 year taught course with some of the final year devoted to research.

- MPhys[1]: A 4 year taught course that is essentially a longer version of the BSc with good chunk of the final year being a research project (some UK universities have an even larger portion of time in the 4th year for research)

- MSc: A 1 year master's course focussing entirely on research (no exams) designed as a follow-on to a BSc.

In the UK, an MPhys is understood to be different to a MSc in the level of research achieved and teaching received.

[1] https://en.wikipedia.org/wiki/Master_of_Physics

[+] jacques_chester|13 years ago|reply
In Australia, a follow-on year with a research component is called "Honours". You "only" get a Bachelor's degree, but you can attach the honours statement to it, including the classification (first class, upper second class, lower second class, third class).
[+] wmil|13 years ago|reply
I don't see what he's complaining about...

Many people only go for an MS because employers increasingly have a credential fetish.

The quality of the actual education isn't generally that important to students because it typically has little overlap with their future jobs.

[+] mwfunk|13 years ago|reply
In a lot of ways, what you just said IS what he's complaining about. There is a money to be made selling watered-down MS degrees to people who don't really care about the knowledge, and universities that succumb to this temptation end up devaluing those degrees by doing so.

If someone is getting a degree just to pad their resume and fake out a potential employer, they're doing life wrong.

[+] dariopy|13 years ago|reply
MS in CS here. We all know we did it for the diploma: employers value that MS degree, so it gives you a better negotiating position in pretty much every hiring/selling scenario.
[+] zedpm|13 years ago|reply
As someone with a BS and MS in CS (having written a thesis for the latter), it was amazing to see how weak some of the other grad students were. At my school, many of the foreign grad students didn't have an undergrad CS degree and it showed. This isn't a knock on foreign students, just an observation that they comprised the bulk of the grad students who took the path that omitted the undergraduate work and consequently exhibited shocking failures to understand CS basics.

I'd certainly think very hard about hiring a MS-only candidate, particularly if he/she didn't have publications.

[+] enraged_camel|13 years ago|reply
I'm thinking about doing an MS in CS within the next five years, and I don't have a BS in CS. I studied Informatics in undergrad. http://en.wikipedia.org/wiki/Informatics_(academic_field)

You talked about "shocking failures to understand CS basics." What would you recommend learning for someone like me before they start an MS in BS?

[+] raphman|13 years ago|reply
I'm aware that the blog post and the discussion on HN focus on the situation in the USA. Nevertheless, I'd like to add that the situation is quite different in Germany and probably many other European countries. As hinted at by 205guy in this discussion, a BS in CS at a German (or French) university focuses on providing each student with a basic understanding of all important topics in CS. It contains only very few non-CS courses. In order to do an MS in CS, one usually has to have completed a BS in CS. The MS allows students to deepen their knowledge in selected areas - research topics that the professors/assistants work on. Students also work on larger practical and scientific projects and have a lot of freedom to choose their own focus. There is a consensus (at least in Germany) that a BS is not enough for most jobs, therefore a majority of students do an MS. (Generally, universities also require PhD students to have completed a MS in this field.)
[+] 205guy|13 years ago|reply
In my case, it was a "Master's" of Software Engineering that I got in France. I did my BS in the US where I learned all about algorithms, networking, databases, processors, bytecode, assembler, functional languages, and object-oriented languages. I considered it a good solid base in CS. Essentially, over 4 years, I had 2 years of general study (math, physics, chemistry, labs, literature, history, etc.) and 2 years in my CS major.

With that I got into a French school where the students had done 2 years of cramming for exams (mostly math, physics, and chemistry) and one year of intro CS, then I joined them for the last 2 years. I did repeat some processor and compilers work, but then took the software engineering option that focused on process, tools, UI, QA, along with a mandatory industry intership with final report (not as big as a research thesis, but still quite hefty).

To me it was a very practical and useful course of study, and I really think that masters programs can provide valuable non-research skills. There are many domains where I think that 1-2 years of additional study on top of 2 years of BS coursework can be very valuable. I think these domains can and should be industry-focused fields: software engineering, imagery, maps, geo-location, big data, web-apps, testing, processor design, etc. These would be advanced courses where the students look at industry practices and the latest research and do (minor) original work in the field, either on their own or as an internship with a company solving real problems.

My interpretation of the OP and the various other threads in these comments is that:

1) CS is highly in demand and HR doesn't know how to evaluate skills other than to ask for degrees.

2) Some schools are responding to the need for degrees by offering MS in CS that are really a BS for people who already have a BS in another field.

3) These people are doing mostly intro CS, not the advanced topics or research that "real" MS programs are doing.

So I think it really is a problem with these schools and the accreditation of their MS degrees in CS. I was surprised to read other responses above that most colleges do not allow multiple BS degrees. This is some sort of artificial limitation that is skewing the meaning of the MS degree.

[+] agilebyte|13 years ago|reply
Similar in Czech Republic. Add to that the fact that Bachelors did not exist in the past (and thus people "just" have a Masters) and it is hard to not continue on to do a Masters degree.

(it also helps that tuition is free)

[+] doobius|13 years ago|reply
For me, getting an MS after working for a couple years has helped open up incredible new opportunities and deepened my knowledge.
[+] forkbomb|13 years ago|reply
Agreed, same here. Undergraduate in computer engineering, when to work in software development right away. Went back to school and got MSCS. One of the best choices I ever made. I can honestly say it made me a better developer and computer scientist. Although I did notice a good number of students who had never programmed a day in their lives taking the MS program with me. A lot of Biology majors...
[+] IvyMike|13 years ago|reply
I had a much longer comment written, but the only point worth making is this: The research MS is no silver bullet, and I saw a lot of people spend a lot of time working on a rather thin gruel.

Maybe the coursework-only MS is diluting the value of an MS, but there are a lot of research MS holders I wouldn't particularly want to hire, either.

[+] k_kelly|13 years ago|reply
I think these MScs are bullshit and I did one.

However equally bullshit is the idea that you can't write software without a Bachelors in CS. As far as I'm concerned my MSc is a halfway house. It gets you passed HR and let's you talk to people who know these MSc aren't worth anything but only really care if you can make things.

[+] davidrupp|13 years ago|reply
I did an MS/CS (coursework-only) nearly twenty years after completing my BS/CS. After twenty years in industry, I expected to concentrate my coursework on design, software engineering, and "practical" topics like bioinformatics. Instead, I found myself drawn to more theoretical topics, like theory of automata, and especially graph theory, and fell in love with the science of computer science. I don't claim this is causal, but my salary since completing my MS took a 25% bump and has stayed there and above since. YMMV.
[+] bwang29|13 years ago|reply
I'd argue that for many student from a undergraduate CS background, taking a course-based MSCS program from a top school with a specific direction can be tremendously helpful to the student both professionally and personally. I did not have a specific focus in my undergraduate study in CS and I'm doing HCI+AI for my Master's, which has been min-blowing so far as I'm taking more graduate level courses and exposed to content of much greater depth than my undergraduate study. These courses are usually structured with small research projects/paper readings and I've seen many students come up with research quality work out of the project portion of the classes.

For a student like me, there is also a tradeoff between during research vs doing your own side project vs taking more courses in school. Doing research can be extremely time consuming and potentially affect other course selection density and even performance. I've also seen may CS graduate students who take undergraduate level courses out of MSCS and they max-out the amount of course they can take. These are usually great courses that their previous school does not offer. Doing research in a specific area is probably the most counterintuitive for those who're taking lots of diverse courses. You can argue that these type of students are still figuring out what they want to do and that's what they should have done in their ugrads. But the truth is when you realize you can do much more, the curiosity to discover more is not that easy to stop.Doing research in summer usually is the ideal choice if the students take too many courses in other quarters and they do not want to do an intern.

[+] lettergram|13 years ago|reply
I agree with the advise to throw away all MS programs that don't waive/pay tuition.

Also I am currently a CS Undergrad in my senior year at University of Illinois Urbana-Champaign and from what it looks like (at least from where I am standing) I would benefit more getting a MS in something such as finance or (what I am doing) chemical or bio molecular engineering. This gives me both the appropriate background to take jobs in CS as well as the ability to work in the field of medicine or both.

Just thought i'd share...

[+] fatman|13 years ago|reply
As a non-engineering graduate student at a top-25 CS university, I took 2 classes in the CS dept for fun (my undergraduate degree is CS). The first was a subject on the phD qualification exams and populated by phD students. It was the hardest class I've ever taken, both conceptually and workload-wise. I am prouder of that B+ than any A I've ever received. The second was full of Master's students, there on their employers' dimes. For less than half the effort (including re-writing a teammate's entire final project contribution on the due day because his MBA ass was too busy trying to schmooze the professor into doing it for him), easy A. It was my own personal introduction into the difference between a phD and a Masters - at a fairly decent university.
[+] drallison|13 years ago|reply
There are not enough course hours in the undergraduate program for students to become fluent in mathematics, physics, chemistry, biology, economics, the liberal arts (very important), and computer science. A fifth year (that is, a Masters degree) allows for a more complete program. And, somewhere along the line, there needs to be some time for a research project where the student works closely with an expert since research remains an apprenticeship program.

The post suggests that course-only Masters degrees are inadequate and dilutive because, while the survey a body of knowledge, the human contact is missing and that the human contact with a real live researcher is how computer science it best taught. I agree.

[+] learc83|13 years ago|reply
What CS programs require undergrads to become fluent in "chemistry, biology, and economics"?