

Ask HN: Value of a master's degree in CS? - navait

I'm a CS major who's about to graduate. I love programming, and do projects in my spare time. I've completed internships at multiple startup companies. However, I've found web development work boring, and want to do something different. I applied into some master's programs, and was accepted. I have some scholarships for the masters program and no debt, so money is not a problem for me.<p>But I also feel a little burned out about school. I can do the two years, but I don't know if I'll be happy doing it. I know I'm never going to want to go for a phd.<p>Those who got a master's degree: what value did you get from it? Did you get it straight out of undergrad? What did you focus on? What jobs has it opened up for you?
======
amit_m
I didn't go straight from undergrad, took a few years off to work in various
places, then started a master's degree in CS/math. The first year was mostly
coursework (some were good, most were meh) and a bit of probing to find
interesting fields for research. Unlike undergrad, some courses you take in
graduate school are incredibly specific and cover whatever material the
professor has been researching lately. The second year is typically more
focused on doing research - you find an advisor and start diving deep into
some specific problem. Though, the exact schedule can change from place to
place.

I'm really enjoying myself and continued to a direct PhD track. It's the best
job I've ever had. The work is interesting and the freedom is amazing. Your
milage may vary.

I'm not sure what is the "value" of a master's degree is. It certainly looks
good on a CV and might help you get a higher rank at some megacorp. Google for
example is known to be very fond of advanced degrees. If you want to make
software for a living I don't think it matters an awful lot. Particularly in
the smaller companies and startups. Taking advanced courses will teach you
some new tricks and acquaint you with fields you've never even heard of.
You'll probably relearn some things from undergrad and understand the better.
But the main point in a master's degree is to get a taste of academic research
and see if you like it or not. There are a lot of interesting fields in CS and
doing research in most of them is entirely different than being a professional
programmer.

My recommendations to you, if you think you might be interested in research:
1\. Try to get into a very good university (e.g.
[http://en.wikipedia.org/wiki/List_of_Turing_Award_laureates_...](http://en.wikipedia.org/wiki/List_of_Turing_Award_laureates_by_university_affiliation)).
No point in doing an advanced degree at a mediocre school. Some of those
places only offer PhD programs, but you can leave in the middle and get a
master's degree.

2\. If you have a specific field that interests you, try finding a school with
several professors working in that field. You'll have more options that way.

3\. Don't do it if you're burned out! You can get a job instead. If you like
learning and solving difficult problems, after 1-2 years you'll probably get
that itch again.

4\. In my experience 2-3 months of travel is enough to completely recuperate
from any feelings of burnout and to start getting excited about "regular" life
again. This shouldn't cost more than a few thousand dollars if you fly to
somewhere far and cheap.

------
jtk
Anecdotal:

Programmer P1 got a BA in English, worked a few years in sales, doing
programming as a hobby. P1 then got a tech support job, and got serious about
learning programming on the side. P1 landed an entry level web developer job,
and gradually worked from that to more and more serious programming, changing
companies a few times. At the current time P1 is a senior level
programmer/architect after about 15 years in the business.

Programmer P2 got a BSCS, and a job as a programmer for a few years. P2 then
went to back to school for that MS in CS, and then got a new job, and then
another, and so on. Eventually, P2 is working at the same company as P1, same
job title and responsibilities, also after about 15 years in the business.

P1 and P2 are doing the same job at approximately the same level of
proficiency, with about the same amount of experience, and similar knowledge
and ability. What's the difference?

P2 is 6 years younger and makes $15K more per year.

In my experience, knowledge gives you ability, but diplomas give you
marketability. If you know now that programming is what you want to do, having
both is better than just one.

For a corporate programmer, whether you go straight to the MS or get some work
experience first, doesn't much matter in the long run. If a PhD and research
and teaching are your future, don't wait, get degrees ASAP.

------
qingu
Since I got my degree in Germany, things are slightly different, but it seems
to me like the premises of the situation are very similar. During and after
high-school I worked as a web dev for a small compnay and did some projects on
the side. At the time the only college degree you could go for was a "Diplom",
which is a 5 year program and qualifies you for PhD studies - or just keep
working and making very good money at the time.

After having done web development - I'm talking front-end stuff here: HTML,
JavaScript, CSS and simple business logic stuff with ColdFusion/Perl/PHP and
MySQL - I wanted to move on to more interesting things. And that's what the
degree allowed me to do. I qualified the kind of web development I did,
because there are some very interesting fields on the server side when it
comes to scaling things, but I can see how the front-end technologies get
boring.

It certainly depends on what courses you are going to take. But if your aim is
to get a deeper understanding of more complex problems, I suggest you go for
it and apply that rule to the courses you are going to take. Personally I did
mainly machine learning and compilers and worked at the chair for distributed
systems.

So what has this gotten me? Well, that depends on the way you look at it, but
together with my co-founder I'm working on a startup that analyzes location
information and motion detection to track user behavior. It's interesting,
technically challenging, not a lot of other folks work in this area and we
might even make money with it ;)

------
EnderMB
In itself, there isn't that much direct value to an employer unless your work
in a Masters degree is directly relevant to their product/service.

However, the most valuable part of an advanced degree is building your own
knowledge and experiencing new things that you won't necessarily get to
experience in a job. You may meet some new friends, you may discover a love
for a certain subject and want to position your career towards that field or
you might be able to boost your own understanding of the theoretical side of
CS to a point where it aids your understanding of programming. That is worth
far more than anything an employer can offer you.

------
davidrupp
I got my MS about twenty years after my BS. The primary value I got was a
fresh appreciation of the "science" in Computer Science. I went in planning to
focus on software engineering and bioinformatics; two very practical offshoots
from my professional career. What happened instead was I fell in love with
theory -- automata, theory of computation, and graph theory in particular. I
don't know if my MS has been particularly influential in causing companies to
consider or hire me, but it has certainly deepened my appreciation for what I
do professionally, and it also influences the topics I pursue personally.

------
kadder
I would say join the industry, start your company, work on some cool stuff.
Figure out if you would like to try your hand at research. If yes, apply to a
masters program.

If you have the patience, time and the skill needed to comprehend advanced
research papers or the time to learn more about machine learning / advanced
graphics / distributed systems / compiler optimization and other cool stuff,
don't join a Masters Program. If no, may be consider joining a Masters
program, you'll not regret <\-- but do this only after you have worked for a
few years.

------
rayiner
Lots of companies will give you a leg-up for the masters, but it's going to be
most valuable if it adds a dimension to your profile that isn't reflected in
your BS. E.g. if you're at a school with a combined EE/CS department, try to
get your MS in EE or Comp. Eng. This will give you the credentials to work in
areas like embedded devices or wireless, which you might find interesting if
you find web development boring.

------
sonabinu
I am doing it, and it is a good question. I think the biggest value you are
going to derive from it will depend on what classes you take. I have a lot of
students in my class who have undergraduate degrees in CS and are working, so
I guess they find it adds values to their jobs which is a good sign.

~~~
navait
What are you studying?

~~~
sonabinu
Masters in Software Systems

------
mneumegen
I know a few companies where having a master's degree would count against you
over a graduate. It really depends on the job but I'd say it most situations
1/2 years experience is better than a masters degree.

------
suyash
IMO if it is not one of the top 5 CS schools in the nation (if you're in US),
it's not worth it, as the opportunity cost is too high these days.

