
The declining value of the MS in Computer Science - moyix
http://blog.regehr.org/archives/953
======
mdasen
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
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
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?

~~~
ataggart
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?

~~~
foobarbazqux
The point is that practical experience in a Master's that offers research work
is more valuable than a coursework-only Master's. Graduate courses are usually
easier to complete than undergraduate courses, and they are excellent for
complementing a research program.

If you want to do machine learning, go and do a Master's with a thesis option
where your advisor does research in machine learning project and where you
will be encouraged to publish your work at conferences.

~~~
ataggart
To my mind research is fundamentally different from (and antecedent to)
application. I assume (perhaps mistakenly) that there are areas of knowledge
that are both potentially useful to solve problems and difficult to
access/learn on ones own. Why is it not reasonable for that advanced knowledge
to be collected, distilled, and taught?

Further, from my brief exposure to a CS grad lab, research occurs in very
narrow areas, often on things with no discernable utility, where all work is
essentially throw-away, and where the only goal is to publish a paper. In
contrast, I want to build stuff, possibly hard stuff, stuff that someone would
use; and that may mean learning things (not discovering things).

~~~
foobarbazqux
From the perspective of industry, practical experience building research toys
is generally more valuable than either book learning or course projects,
because you are forced to come up with and implement novel solutions and
because you ultimately have to make something work in order to get the degree.
This is the value of a Master's with a practical thesis.

It's not that the advanced knowledge isn't taught in a graduate program, it's
that a formal research project where some or all of the advanced knowledge is
applied is seen as a great way to integrate everything, and it's completion is
a better marker of autonomy than course project completion. Of course there
are professors doing useless research, so find someone at a school doing
something that interests you. Or get hired by a company and learn on the job.
Or start a side project. Yes, academia can be a waste of time if you don't
actually like the work, but depending on what you want to build it might be
the easiest way to get there. Grad school is generally an opportunity to
become an expert in the field that interests you, and the production pressures
of industry might preclude this.

------
ultimoo
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.

~~~
rajanikanthr
I second that.. It's a way for students from overseas to get settled in the
Land of Opportunities

~~~
ecopoesis
And, if the dozens I've interviewed are representative, not learn to code well
enough to solve FizzBuzz.

~~~
taejo
Interviewees are never representative of the people working in the field:
you're selecting for the people who don't have a job (that they're satisfied
with).

People with CS degrees who can't code are more likely to be out of work, or to
be in low-paying jobs, and therefore more likely to be applying for jobs.

------
mwfunk
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
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
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
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...](http://www.forbes.com/sites/quora/2013/05/09/how-different-is-
a-b-s-in-computer-science-from-an-m-s-when-it-comes-to-recruiting/)

------
dwc86
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
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
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
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).

~~~
saffer
Same in South Africa. BSc honours is required if you want to do a masters or
anything further. In the sciences, a BSc on its own only qualifies you to be a
lab tech.

~~~
jacques_chester
Here you can go to Masters with a straight Bachelor's degree; but to get into
a PhD program you need to take Honours. (I was encouraged to take a PhD and
decided that I am tired of poverty).

------
wmil
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
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
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
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
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?

~~~
205guy
As someone who has studied in the US and France, informatics and computer
science are the same thing. Informatics is generally a European term and
computer science is used predominently in the US--not sure about UK. There
could be slight nuance of definition (infomratics not being hardware based,
and CS starting with transistors), but my experience, both covered hardware
and software.

So I think you're the perfect candidate for an MS in CS.

What worries me more are the options mentioned in the article and the comments
for non-CS/informatics degrees to do an MS in CS. Maybe there is some thinking
that someone with a BS degree in any science shouldn't have to do undergrad CS
work, but it seems to me they should earn a BS in CS not an MS. I also get
that some cross-pollination between similar fields (say robotics and CS,
applied math and CS, etc.) can be beneficial to the students and the program
in general, but make those students take extra undergad courses to catch up.
Dumbing down MS coursework for non-CS people really defeats the purpose of the
MS for everyone. That would be my main issue with the topics in the article
(having a research-oriented and a non-research MS seems fine to me).

~~~
enraged_camel
I studied at University of Washington in Seattle.

That said, it was different than Computer Science. Besides one introductory
programming course, there was no programming required. Even for our capstone
projects, wireframes were sufficient. We didn't actually need to code
anything.

To give you an idea, here's the curriculum:
<http://ischool.uw.edu/academics/informatics/curriculum>

My main concern with doing an MS in CS is that I wasn't exposed to a lot of
traditional computer science concepts, such as operating systems, hardware,
compilers, algorithms, etc. And the highest level of math I've taken is
Calculus I (and a 300-level statistics course which was frankly a joke).

~~~
205guy
Thanks for the link to the curriculum, I haven't looked into CS education in a
long time. My observation is that CS is getting to be a huge field. There was
a time when it wasn't much more than OS and compilers (I exaggerate). Now they
try to cover the more recent (web apps) and more practical (database
retrieval) topics that are directly applicable to new hires. I think that's
fine, and your curriculum certainly looks robust (and has some very relevant
new topics such as "information ethics and policies"). However, I would still
expect you to be able to program after your 2 programming and web technologies
classes. And those intro to programming classes are pretty light if they did
not cover algorithms.

To take a recent example here on HN: did you cover big-O notation? To me that
is fundamental, and the BS programs are cutting corners if they're leaving
that out.

~~~
enraged_camel
The programming courses I took were Intro to Programming I & II. I don't
remember many details (has been almost 10 years), but the first one covered
basic object oriented programming concepts in Java, and the second one talked
about more advanced topics like data abstraction and encapsulation - stacks,
queues, linked lists, binary trees, recursion, etc.

I'm generally worried about two points I'm deficient in: subjects that require
formal education (I don't know if I can learn about compilers on my own, for
example), and subjects that require advanced math.

------
raphman
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
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.

------
doobius
For me, getting an MS after working for a couple years has helped open up
incredible new opportunities and deepened my knowledge.

~~~
forkbomb
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...

~~~
samfisher83
How many credible MS programs will even allow this? They don't teach you how
to program during a MS degree. They give you a project and you are expected to
know how to program in c++/java, scheme, or whatever random language the
professor feels like using.

~~~
forkbomb
Most of the Bio students were doing degrees in Bioinformatics, which is an
offshoot of data mining, which is run by CS department. Most were good with
SQL, but that's about it. It worked out for me since I always had a place in
group work. I wrote the software, they did the biology. So to be more clear,
there were no Bio students in my OS class, just the data mining classes.

------
IvyMike
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
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
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
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
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...

~~~
Chronic24
Shh. Don't tell everyone this.

------
fatman
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
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
What CS programs require undergrads to become fluent in "chemistry, biology,
and economics"?

~~~
scarmig
Ostensibly most--universities aren't trade schools, remember, and you're
supposed to walk away with a general knowledge of everything. Every student,
from CS to literature to biology, should walk away from university knowing how
to do simple programming, read Shakespeare, and describe in broad strokes how
DNA replication works.

The fact that most don't is a sign that most USA universities, even those
supposedly at the top, are giving a watered down curriculum that's taken as a
cover for credentialing and partying and not real education.

~~~
forkbomb
I'm going to have to disagree. While it would be nice to leave a university as
a renaissance man, this simply cannot be done with the pressures of modern job
markets. Having huge breath of knowledge and no depth might make you
interesting to talk to at cocktail parties, it won't help you land or keep a
technical position (since we are talking about a technical degree). Not once
was I ever questioned on Shakespeare at a technical interview. I agree that
the average person SHOULD know these things, but I believe that is the job of
high schools, not college.

College in my opinion should be used to increase your depth of knowledge about
one specific area of study. If it were meant to make you well rounded then why
have any majors? One of my biggest gripes about college was having to take
classes (aka pay for classes) that had no impact on my major (Literature,
Tennis, etc...). I can only analyse the epic of Gilgamesh so many times before
no additional value is added. While knowing the story arguably makes me a more
interesting person, it does not make me a better developer.

------
luckydude
I've got an MS from the UW Madison. It has served me well. I got to teach
cs240b at Stanford with that MS (cs240b is the papers course in OS). Fun
times. I taught it on roller blades because I wasn't good enough to have
parking so I had to park at the mall and skate in.

If you are going to a good school where they actually work you (UW worked us
well into the wee hours and they were a hacking school when I was there, I
watched Joe Moran do a Unix port in 36 hours there - Joe is the guy who
implemented the Sun VM system which is something Bill Joy imagined but
couldn't do), if you are going to a school like that, go for it.

For me the MS was just a chance to hang out with people who were doing real
work. And learn from them.

------
cmadan
I was a "coursework" MSCS student at a school which had both. I was earlier on
the research track but then decided not to do a thesis after losing interest
in research oriented CS (which btw, why all schools should offer both - I'd
have had to either drop out or more likely spend a really unhappy year or two
doing something I didn't want to do).

Here is where a MSCS ("Coursework") works really great for all parties
involved -

1\. (And the biggest reason) Provides actual, high skilled nonresidents an
easy route to working in USA. MSCS ("Coursework") are doable in 15 months with
some schools such as Cornell offering a 9 month program (MEngg not MSCS but
same difference). This works great for the student (since CS grads are paid
well, they don't have any issues repaying student loans), for the university
(they're struggling for cash and this is a welcome inflow of cash) and BigCos
such as Microsoft, Amazon, Google etc who recruit most of these and basically
pay for these degrees (they're bleeding top talent to the Facebooks, Twitters
and startups etc and are always hiring)

2\. Students who don't have a BS in CS. Its a great route for them to add some
formal education to their resumes and improve the core CS skills. Startups
don't really care about your resumes, but it can be hard to get calls from the
BigCos without a formal degree in CS or EE. Nothing wrong with that and I
can't see why anyone would disparage them.

Finally, I'd disagree with the blog author's two observations. First, his
recommendation to the undergrad. If you don't fit into either of the two
scenarios mentioned above (nonresident, didn't do a BSCS) there is only one
scenario where it makes sense for the undergrad to do a MSCS - if he/she is
interested in research and doesn't have a good enough profile to get into a
PhD program directly (it'll give you an additional year to try and get some
more publications + give you an opportunity to convince a prof at the school
you're at to do a PhD).

However, if you're going to reject all the schools which don't give you any
financial aid or give only a TA, you'll left with schools which will give you
a RA which basically means you are good enough for their PhD program and they
accepted you to the MS program only because thats what you applied for.

The second scenario - of Udacity/Gatech's $7000 MSCS eating other schools
lunches, unless this $7000 MSCS comes with an CPT, OPT and its own category of
H1B visas, I find it really doubtful it'll make much headway with the first
group, nonresidents. Although it is definitely quite attractive towards the
second group, those who didn't do a BSCS.

~~~
valm-
I believe that admission to the Udacity-GA Tech degree program has been
limited to students with a BSCS. I agree that the degree will be attractive to
people in the second group, however it doesn't appear that it will be
accessible to them.

------
kleinsch
If you have a BS in CS already, the only reason I'd recommend taking a
coursework-only MS program is if both:

1) Someone else (probably your employer) will pay for it

2) You _know_ it will get you a raise

For example, when I was at Lockheed Martin a long time ago, they would pay for
a MS and give you a $N raise when you finished it. 100% worth it.

I know a bunch of people who worked their ass off getting a MS while working a
full-time job only to keep working the same job for the same salary after they
got their degree, except now they were saddled with $30K in debt.

If you don't have a BS in CS or you're looking to get a masters as a precursor
to a PHD, that's probably a different story.

------
JOnAgain
In my experience interviewing candidates, an MS counts for less than a good
undergrad. I find that software engineers with foreign undergrad and US MS are
often missing some fundamentals.

~~~
potatolicious
That hasn't been my experience. The MS's I've interviewed in the past have in
general been just as competent - the problem is that in general they haven't
been _more competent_.

So we're talking about spending ~2 extra years in school for basically a nil
result when applying to development jobs. My personal anecdotal experience
observing those around me is that getting a MS in CS is leaving a _lot_ of
money on the table - you will give up 2 years' salary and your salary upon
graduation will be the same as, if not lower than, an undergrad with 2 years
industry experience. Do it if you love it, but know that it's a financially
negative move (and substantially so).

The big gap I see is Ph.D's. When interviewing Ph.D's for development jobs
(i.e., you're writing code a lot of the time) they consistently do poorly. I
see a lot of poor code discipline, bad architecture, and all in all _poor
engineering_. They know algorithms and data structure inside and out, but when
it comes to writing solid, maintainable code, a PhD in the room is in my
experience a disappointment.

~~~
Chronic24
The good PhDs have already been sweeped up by other companies.

------
mortdeus
I wrote a blog awhile back that kinda relates to this. I argued that employers
should be focusing on developers with great portfolios of innovative and
USEFUL software, rather than focus only on candidates who have earned a
degree.

If a hacker decides to get a degree, it shouldnt be because the job he wants
requires it. Rather college should be a personal pursuit to accomplish a life
goal. Something for them to look in the mirror and say, "Your pretty damn
bitchin at this thing called life."

------
joyeuse6701
In my experience talking with colleagues (I'm a B.S. CS guy) I've scene both
ends of the spectrum. One friend was effectively obligated to earn a MS in CS
at Columbia (not sure if that entailed research) but seemed like a stat grab.
Then at Bay2Breakers I met two foreign MS CSers also from Columbia who were
doing research in semi-supervised machine learning applied to traffic systems.
Seemed legit. It was early and I was drunk in the latter experience, but I
stand by it!

------
tropicalmug
As an undergrad making the choice of a coursework-based MS and simply
graduating with my BS in the next few months, this could not be more timely.

What makes me want to do get the MS is that my undergrad performance was not
stellar. I struggled in the middle of my time in college, and while my grades
have rebounded and I have been doing well for myself since, my GPA is pretty
dismal. I can't see myself getting into any of the good MS programs around the
country, and the easy remedy to this is to staying at my university for
another year and getting my MS with the goal of having a much better GPA in
order to demonstrate my ability.

That said, if the value of such a degree is declining at the moment, maybe
it's a lost cause to redeem my academic credentials.

~~~
rkuykendall-com
For just an extra year, I would go for it. At another school, your program
would be twice as long because they don't know your background. Also, even if
the value of an MS is dropping, so is the value of an BS, but that only makes
it more important to have.

------
RandallBrown
Here's my anecdote about the value of a Masters.

One of my good friends and I started at the same company around the same time.
He had just finished his masters and I hadn't. He had 5 or 6 years of real
world experience, while I had 3.

I got hired in making considerably more money than him because he was
considered a "university" hire.

While this could just be the result of the fact he went through university
recruiters and I didn't, it still seems like his Master's didn't help him
much.

In my (admittedly short) career, I haven't seen a difference in quality
between what people with a BS and an MS produce that would make it worthwhile
for me to go back to school. It just wouldn't be worth it for me unless I was
really interested in the research.

------
JOnAgain
Google Cached version:
[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://blog.regehr.org/archives/953)

~~~
regehr
Fucking Dreamhost...

~~~
rubikscube
This isn't Reddit. Please keep it classy.

------
klt0825
This hits home as I just finished a very well known part-time course-work only
(with a pseudo-thesis option) program.

I actually have a little different opinion - what's killing the value of an MS
in CS is the fact that CS curriculum is becoming Software Engineering under a
different name. Let me be clear - there is NOTHING wrong with Software
Engineering but as someone who is more interested in NP completeness,
computability, static analysis, machine learning, etc - much of what passes
for CS cirriculum in course-work only programs simply isn't.

------
areeve
This is very timely as I'm currently studying to sit the GRE in August, with
the hope of applying MS CS programs at the end of the year (Stanford, CMU,
Princeton, etc). Perhaps I should reconsider this?

I'm a non U.S. citizen/resident and I'd like to work in Product Management in
the U.S.; I had hoped that an MS CS from a top university would help bridge
the gap between my design undergraduate from an unknown international
university – helping me land a job at a top tech company as an Associate
Product Manager or the like.

Thoughts from the savvy HN crowd?

~~~
akurilin
A MS in CS doesn't give you much useful hands-on knowledge that'd be
immediately applicable at your day to day job in the corporate world. I'd look
into a MS in Software Engineering, like the one CMU offers, if you're more
interested in pragmatic skills.

------
bcbrown
Has anyone done the UW Professional Master's Program? It's a coursework-only
MSCS, two years, designed for working engineers. I've been looking at it for a
little while, and would love to get some feedback from someone who's done it.
I'd only apply if I could get my work to pay for the majority of the tuition.

My BS is in Physics, not CS, I have five years experience in industry, and my
goal would be to cement my foundational knowledge and complement the self-
study I've done over the years.

------
archanas1234
What would you suggest to a non-CS undergrad doing a Masters in one such cash-
cow program where there are hundreds of similar students? How does one get the
maximum out of it?

------
steven777400
I earned a MS in computer science in 2006, so things have obviously changed
since then. However, I found it was hugely beneficial for me because my
undergrad (also in CS) was very, very weak. As a result, I had the opportunity
to realize my deficiencies in an environment where I could learn from them.

I spent four years in the MS program and, looking back, I could have done more
with the time I had there. Even so, it was well worth it and opened a lot of
doors for me.

------
kenster07
Companies should be intelligent enough to hire for what they really need.
Hiring an MS just for the sake of the MS is not always the best strategy.

In a research-driven job, someone with a strong research background in CS
makes sense.

For a job where you want a top craftsmen and producer of code, it would seem
to be much more tangential.

For the latter situation, companies that hire purely based on academic
credentials will likely be making suboptimal, if not outright negative EV
hiring decisions.

------
Tycho
An interesting question is what are the chances of landing programming jobs
which nurture a coder's talent more than studying for a year or two more to
get an MSc.

------
yekko
We hired so many people with MS degree, we treat them no differently than
people with no MS degree.

Actually, they are paid less as they are considered to have less experience...

~~~
tensor
There's always a post like this about articles like these. Market rate for
people with master's degrees is still significantly higher on average.

If you don't match the average, you are much more likely to get lower quality
candidates apply to your job. If you, as you claim, pay them _less_ than
people with 1-2 years less education, you are pretty much guaranteed to get
the worst candidates.

This latter point usually ends up leading to "I've worked with so many people
with masters and they are all bad!"

~~~
yekko
Really? Those people with MS degree are nothing special, they interviewed
pretty poorly.

~~~
itsybitsycoder
That's what tensor said...

------
the_french
As a current CS undergrad, is it worth it to pursue an MS after I finish my
BS? I understand it that in many ways it is a highly personal choice yet, I
don't want to end up wasting time I could be spending doing something more
productive/beneficial/interesting. I've really enjoyed most of the courses I
have had to take so far (OS,DS&A,Lang. Design,...) but I still wonder how much
an MS would bring to the table.

------
cjg
I first realised that an MS in CS was a red flag back in 2000.

I was doing a whole ton of interviews and the candidates who had cross-trained
to CS from some unrelated discipline by getting an MS were almost universally
unable to cut it in interviews.

So, hardly "declining" value.

Of course, I'd be happy to accept the distinction between the two types of MS
that the article discusses.

------
jacques_chester
In Australia, the Masters of Computer Science is generally coursework. The
reason is that we have Honours years in Australia, which is the usual gateway
to PhD studies. And we don't hand out consolation Masters degrees for people
who drop out.

------
dsugarman
It is definitely true that universities are using MS degrees as a way to fund
the programs. It is a shame though because it seems to deteriorate the quality
of the program when they load up as many MS students as possible.

------
jmenn
The non-research/terminal MS may also be useful for those wishing to teach
computer science at the junior/community-college level.

------
sometechworker
At Google a BS in CS will start out the same as a MS in CS. If you have a PhD
you'll start out one level higher.

------
jpeg_hero
Indian Bachelors -> US Masters CS is a well worn path.

------
wilfra
I have read extensively on this topic over the last few months as I'm about to
start an MS CS program. Without fail, everything I've read has a subtle
undercurrent of disdain for people who don't have a BS CS who want to get an
MS CS.

While I understand, respect and even agree with the reason why - the fact
remains that I studied Communication, Beer and Skirts for my undergrad degree,
didn't start programming until two years ago when I was 30 and now more than
anything in the World want to be a software engineer.

So for somebody like me - the absolute lowest form of life in software
engineering - is spending two years doing a coursework only MS CS (first year
is a fast paced BS CS) a waste of my time and money?

~~~
205guy
As I replied to enraged_camel's thread (linked in his/her comment), what you
want is essentially a BS in CS. What's wrong with having multiple BS degrees?
How does a BS in one field prepare you for an MS in another?

The real issue is that the BS degree covers (roughly) 2 years of general study
and 2 years in a major. Anyone that has already done the general study part
just wants to do the 2 years part in another field. I think it is a failure of
the academic system (in the US) to not break down the degrees correctly and to
call those 2 years in another field an MS--should be a 2nd BS.

I will note that in Europe, a lot of the general study that US universities do
in the first 2 years of a BS are done in the last two years of high school,
for example the French baccalaureat (bac).

~~~
glesica
Many schools, at least in the US, frown upon students earning a second BS/BA.
I tried and was basically told by an admissions counselor that I probably
wouldn't be accepted. I was welcome to apply for a master's degree and take
any undergraduate courses I needed once I had been provisionally accepted into
that program, however. But I wouldn't have earned a BS. I suspect that this
might have to do with financial aid rules, but I'm really not sure.

I ended up taking some post-bac courses at the university I'd gone to for my
BA then going directly into an MS program.

~~~
terenceong
as i said in another reply, this "anti-second BS" thing might have been true
years ago but as i've personally discovered, it's not true at all. yes, some
schools don't have a clear-cut program for readmission for second degrees, but
it seems many schools now do. i'm personally returning for a second degree in
CSC, and i didn't even have to go through any kind of admissions procedure -
just fill in a one-page form to my alma mater and 3 weeks later they informed
me it's approved and so i'm returning for my second BS in fall this year. it's
definitely very possible today and if you want more details, please feel free
to PM me.

~~~
doktrin
A few points :

1\. Getting re-admitted to ones alma mater is simpler than a new school (given
that these are adults going back to school who may well have moved and
established families, their alma mater quite possibly is no longer an option)

2\. How many credits were waived? This is a pretty serious sticking point, as
anything > 2 year full time equivalent becomes a _major_ time commitment &
investment. I would also point out here that this can vary significantly by
institution, unfortunately.

3\. Many undergrad classes don't support a fully flex part time schedule (or,
severely limit their evening & part time options). This becomes increasingly
important in this scenario.

While there may or may not be an admission-department policy or stigma against
second undergrad degrees, the system is by and large certainly not geared to
encourage it as of present.

------
bengrunfeld
I was married when I started my computer science degree. My wife let me get
through my first year and then told me I had to get a job. So I did all of my
studies on Lynda, focussing only on practical subjects like PHP and AJAX. Even
though I started in 2010 and dropped out at the beginning of 2011, I just got
offered my first $100k job. Tell me, if I was able to accomplish all of that
at home, then why would I pay tens of thousands of dollars to attend a
University where I am considered a Junior when I leave and join the industry?
It just doesn't make sense.

~~~
agilebyte
By doing formal studies someone else tells you you did a good job which grows
your self confidence which leads to those $100k jobs down the line. For some
people, me included, internal validation is just not enough.

It is all in the head.

~~~
bengrunfeld
Seriously? Validation has no meaning for me at all. If I can program
something, then that is all the validation I need. Why don't you pay me the
$40k a year for private education, and I'll buy you an account on Lynda for
$25/month and tell you'll be a team leader at Apple some day. Sound fair? ;)

~~~
agilebyte
Well, if you are around for a couple hundred years in a red brick building I
will take you up on your offer :).

