Is it worth it to get a M.S. or a Ph.D in Computer Science?
July 23, 2010 7:02 PM   Subscribe

Is it worth it to get a M.S. or a Ph.D in Computer Science? What kinds of doors would they open?

I graduated with a B.S. in Computer Science several years ago from a small state university, and I have been working full time as a software engineer ever since. Lately I've been reassessing my career: I'm wondering if an advanced degree would free me from the land of boring business software, FTEs, and methodology and allow me to travel to the world of interesting work (R&D?, something else?, would becoming a professor be a long shot?).

If I want to find something better, would a master's be sufficient, or would a I really need a Ph.D?
posted by cosmic.osmo to Education (23 answers total) 7 users marked this as a favorite
To become a professor it's almost a requirement that you have a Ph.D. There can be a lot of advantages to working at a university: flexible schedules, creative freedom, lots of travel. But there are a number of downsides, such as pressure to publish, the need to secure grants, and the burden of teaching classes, as well as departmental politics. Getting a Ph.D. in any field is a difficult undertaking and you should really be able to justify it before diving into a program.
posted by Aanidaani at 7:07 PM on July 23, 2010 [1 favorite]

Academia is a different kind of bullshit, but it might not be bad for you. If you get into a good program, you could potentially relay that into an internship and job at a more interesting place (say, a national lab or big software firm), without necessarily getting a phd. Or, if you really love it, get that phd, and try to make a go of it as a professor or professional researcher somewhere.
My only advise to you is this: don't do it if you have to pay for it. If they don't offer you at least a TAship to support yourself, it is probably not a good idea.
posted by ch1x0r at 7:16 PM on July 23, 2010 [1 favorite]

There is better out there without the need for a M.S. or a Ph.D. Software comes in all shapes and sizes. Look for positions out there that interest you.
posted by aloysius on the mixing boards at 7:18 PM on July 23, 2010

I know a couple of Ph.D. computer scientists who work on the corporate R&D side of things. They seem to find the work interesting and challenging, and they have a good amount of flexibility to pursue their interests. The remuneration isn't enough to make up for the salary lost while earning your degree, though.

Becoming a professor is always kind of a long shot: there are usually many more qualified applicants than there are jobs. But from what I've seen, CS Ph.D.s have lots of options beyond academia.

My only advise to you is this: don't do it if you have to pay for it.

Never, never pay for a Ph.D. in science or engineering. No reputable program should even give you the option of paying for yourself.
posted by mr_roboto at 7:21 PM on July 23, 2010 [1 favorite]

I was in a Ph.D. program for CS but left with my master's after I discovered that I hated research. C'est la vie. My feeling is that you can certainly find something better with a master's; a doctorate is only really helpful if you plan to go into academia or research. I'd even argue that it might cause some potential employers (outside of the aforementioned two areas) to balk at you for being overqualified.

It all depends on what you want out of an advanced degree. You've been working as a software engineer in what capacity? Are you just a programmer, or have you moved a few rungs up the proverbial ladder? You aren't too clear on what you mean by "better" (more money?) or "interesting work." Graduate courses tend to be about reading a lot of papers and developing a deeper understanding of a subfield such as databases or operating systems. For example, while you might be familiar with database normalization, a graduate level course will have you reading the original E.F. Codd paper. You'll discuss the principles that govern how a DBMS query optimizer does its job.

If you want to be a professor or do R&D, yes, Ph.D. If you want to get more in-depth knowledge about CS and make more money, get a Master's.
posted by axiom at 7:27 PM on July 23, 2010

If you have a specific field in mind to do your research, and want to do things that no one has done yet, go for it.
posted by demiurge at 7:36 PM on July 23, 2010

... the burden of teaching classes ...

Hah! Some fools get a PhD because they want that burden.

But Aanidaani is exactly right, especially about the need to have a strong justification for working towards a PhD. You will need to have a strong desire to do research and/or to teach. "Might be nice" probably won't cut it. "This is definitely what I want to do with my life" will. And these days, becoming a professor is a bit of a long shot, as the job market is tough and there are a lot of PhDs competing for the jobs.

A master's is sufficient for finding a higher-level, higher-paying job. Enrolling in a strong program will open up many avenues into the sorts of companies and organizations that recruit from such programs. If working for Google, Microsoft, Apple, Amazon, Yahoo, etc. sounds interesting, go enroll in an MS program where they recruit (check company lists from past career fairs at a school if you're not sure). If working for a startup sounds interesting, go to a school pushing entrepreneurship (many are these days) and get to talking to people (classmates and professors both).

Basically, if you want a change, going back to school is a decent way to catalyze it. An MS is fine for many things, while a PhD is usually required for research and teaching. You will probably pay to get an MS, but you'll be paid to get (work on) a PhD. The PhD sounds like a better deal, but again, it usually doesn't work without serious motivation and knowing that's what you want. You might be able to get a TA position that covers your tuition and pays a stipend in an MS program, but that is not guaranteed.
posted by whatnotever at 7:46 PM on July 23, 2010

I have worked in industry for 10 years. I have a BS and an MS in Computer Science. I have worked at a corporation with 50,000+ employees, a small business with 3 developers, and a 40 person startup. Other then my BS which gets me to the interview stage, not a single employer has cared about my advanced degree at all.

If you want to stay in industry, there are only a few doors that require an advanced CS degree to open. A PhD will open the doors to Microsoft Research. An MS will improve your chances of a job at Google (they really like people with degrees). But that's all I can think of right now.

I have done a ton of interviews and hiring, and I can say this:

Neither degree in and of itself is sufficient to get a job. I no-hire PhDs all the time if they can't code. All that matters to me is you know a lot about programming. And that can only come from practice. The kind of programming you do in academia is not at all like the kind of programming you need to do to ship real software. Most masters programs will give you a survey of advanced topics in data mining, databases, AI, graphics, and such, but it won't make you an expert in any of them. A PhD might make you an expert in one thing, but you will have spent three to five years not shipping any software. I will trade two PhDs with no experience shipping software for one high school drop-out who knows how to use a kernel debugger most days of the week.

If you want to learn about something, go learn about it. Getting an advanced degree is a lot of fun if you find the right program. But you should decide what your goals are first. If you don't know what your goals are, try to find a big company like Google, or Microsoft, or Apple, or IBM, or HP, or Anderson, or whatever, that has a lot of different stuff going on and see where you end up, and don't be afraid to move around.

If you want to be a prof, enroll in a PhD program, but know that your odds aren't great. If you want to do pure research, in academia or industry, enroll in a PhD program, but know that your odds aren't good at all.

If you want to get a more interesting job, go interview for one; move to silicon valley and find a startup, or start your own. Getting an advanced degree is not at all required to be an expert at something. Find what you want to do–do you want to be a graphics guy? Write a graphics engine. Buy a text book, read some papers, go to SIGGRAPH. Find other people who are doing what you want to do and talk to them, learn from them. That's all a University is anyway.

Ultimately, what matters is you. Are you a bad-ass? Are you passionate about technology? Do you spend your free time writing code? Rank yourself on a scale of 1 to 10 relative to your peers. Are you a 9 or a 4? Can I give you an interface outline and tell you what to build, and have you go off and learn a new technology, build it in a self-directed way and come back a week later with something that works and doesn't make me want to vomit when I look at the code? Want to work at a start-up in California? Send me your resume. Talk to some recruiters. Talk to your undergrad alumni and see what's available.

And if you do decide to get an advanced degree, focus on what is interesting to you and don't worry about if it will make you money. If you're good, you'll find a way to use it.
posted by jeffamaphone at 8:24 PM on July 23, 2010 [8 favorites]

Response by poster:
You aren't too clear on what you mean by "better" (more money?) or "interesting work."
I'm looking for more interesting and engaging work, basically I'd like to have a good chunk of autonomy in a job where I'm expected to figure things out and solve problems. I guess I'm hoping that the deeper understanding from an advanced degree could lead to that. In my current job (especially since we've adopted "agile"), I feel like an FTE who must work on the-dumber-the-better tasks when I'm not stuck in a meeting. I have advanced a fair bit (next stop, a long way off, is direct reports-ville), but that hasn't made things any different. While more money would be nice, it's not near the top of my list right now.
posted by cosmic.osmo at 8:28 PM on July 23, 2010

I feel very strongly that everyone who's serious about software development should get an MS. Undergrad will pretty much leave off all the new developments in CS since 1995, and there have been quite a few. Plus, you can do it in 1.5-2 years, and there are tons of fantastic programs all over the country.

A PhD is not particularly great in terms of getting a job. More of a do-it-because-you-love-it kind of thing. And FYI less than 10% of CS PhDs go into academia, the vast majority end up back in software development. The salary is higher, but not enough to justify getting a PhD.

(I'm working on my PhD though....)
posted by miyabo at 8:35 PM on July 23, 2010

Response by poster: Actually, to phrase my characterization of my current job a little better: I feel like I'm not expected or required to use my brain and that I'm treading water intellectually.
posted by cosmic.osmo at 8:42 PM on July 23, 2010

I work at a corporate research shop that requires PhDs for real positions. Since I don't have one, my employment is limited to one year, no benefits, etc. It's pretty high-level stuff, though.
posted by fake at 9:18 PM on July 23, 2010

I have a PhD. A few notable perks are that I have complete intellectual freedom, the ability to choose long-term projects that I am passionate about, and the fact that I get to travel to pretty impressive places for fieldwork.

All of what I do would not be possible without my advanced degrees. It's also very important to be fully aware that academia pays very little and that competition (for grants and positions) is very intense.
posted by special-k at 9:34 PM on July 23, 2010

I'm working on a master's in CS part-time while working at a reasonably prestigious company in our field. I started my MS because as an undergrad, I never really found a passion in computer science until the middle of my senior year. By that point, it was too late to apply to grad school and I had already decided I wasn't PhD material, but I resolved that if I didn't find a way to follow my passion I would go back to school. It became increasingly clear over the few years since I finished my BS that I needed more credentials to be a credible candidate for the jobs I wanted.

One quarter into my master's, I managed to parlay the fact that I was working on the degree into a much higher-paying, much awesomer job (I did not work at this prestigious employer before January). Granted, my degree is at a top 3 CS school...still, I think it's already been worth the work, and I'm only halfway to actually getting a diploma. And my employers have paid for most of it, no strings attached.

Memail me for more details. Starting this master's changed the course of my life and I would absolutely recommend it, even though it is a time sink and a money sink.
posted by little light-giver at 12:04 AM on July 24, 2010

I don't have an MS or PhD but I develop software for many people who do, and it's been a challenging and rewarding career where I've programmed a lot of things outside the realm of business applications. So instead of going straight back to school, maybe do some research on potential new employers who have a record of hiring people with advance degrees in math, science and engineering and who do R&D type work. That'll gain you an immediate advantage of working with people who, in my experience, are happy to share their knowledge as long as you do the legwork to keep up. Also, the employer may have programs in place to help you earn a master's or PhD should you decide to take that path.
posted by hoppytoad at 5:59 AM on July 24, 2010

A PhD in CS can open the door to many jobs in finance that an MS will not. Many quant shops are effectively "PhD only" in their entry-level recruiting policies, and for those that are not, the PhD is still a big help. Quant shops do some fabulously interesting things, and the salary and bonus opportunities are tremendous if you can add value.

It's not just the credential -- the more open time frame and scholarly orientation of a PhD program versus an MS program can give you more opportunities for collaboration with researches in the business and economics faculty that can help your network (and buff up your resume) for that application process, which is intensely competitive.
posted by MattD at 6:05 AM on July 24, 2010

I don't have any advanced degrees and I've worked several jobs where at least some of the work was interesting and rewarding. I've done bits of project management (while still in a job titled "software engineer"), lots of R&D, bits of training, bits of UI design, bits of library design, all kinds of things. Not to mention the stuff I didn't get involved with because it wasn't my cup of tea - but it could be yours.

I suggest getting a better job.
posted by emilyw at 7:16 AM on July 24, 2010

I'm sure a degree will help.

However, I know many people (myself included) who do interesting and engaging work without a Masters or Phd.

It may not exist at your current company - but plenty of places are looking for strong programmers who are interested in using their brain.

It really depends /what/ you want. If you're hunting for cutting edge research works with big time funding, yeah, you'll likely need a big degree. But, plenty of software companies are doing pretty cool stuff and don't really care if you have Doctor in front of your name.
posted by ChrisManley at 7:21 AM on July 24, 2010

A secondary degree in a different field can also open up your career path, especially if it is in a science or engineering area.
posted by annsunny at 9:14 AM on July 24, 2010

I work as a legal assistant in a law firm that specializes in intellectual property (IP). All of our technical specialists, and some of our patent agents have Phds.
posted by invisible ink at 12:48 PM on July 24, 2010

I have a Ph.D. in computer science and am an academic leading a research group. If an applicant wants to do their Ph.D. with me, they will need a far better reason than wanting to "open doors". As has already been said, the primary attributes required are passion and commitment, not a desire to escape an unsatisfactory situation.
posted by gene_machine at 3:37 PM on July 24, 2010

I just finished my PhD in CS in May. Having gone through the experience, I'm not exactly a cheerleader for it - it took cost me six years of my life where I was making crap money and not gaining a reputation in the industry. And yet: my PhD has opened doors for me, although not necessarily because of the degree itself. I just started a great job that I almost certainly never would have landed without the connections and research experience I got in grad school. So YMMV.

Anyway, my advice:
1. Think long and hard about what you actually want. If it's just escaping tedium, then academia is no panacea; there's plenty of tedium to be found there as well. If you just want a better job, go try to get a better job. As others have said, there's plenty of interesting work out there. However, if you find that the better jobs that you want require a postgrad degree, or you really do want to be a professor, then sure, consider grad school.
2. Realize that you're in for years (potentially a lot of years) of hard work for very little pay. If money is your primary motivation, a masters degree may be worth it but a PhD almost certainly won't.
3. Contrary to some of the above advice, I'd say that escaping a bad situation is not a bad reason to go to grad school. If that's the incentive that gets you going, great. It probably won't be enough to get you through, though.
4. If you're not sure you want a PhD (for research or a professorship), don't try to get one. Instead, go for an MS and do what you have to to get some research experience. At my university, a good masters student usually had little trouble entering the PhD program.
5. While you're there, do a lot of networking. Worked for me. :-)

So in the end: will a grad degree open doors for you? If you do it well and make the most of your time there, absolutely. Whether it's worth the time is a question nobody here can answer for you.
posted by captainawesome at 9:43 PM on July 24, 2010

After seeing your feedback, it seems to me that getting an MS or Ph.D. is not necessarily the fix for your problem (though neither would stand in your way). It sounds more like you are stuck in a relatively low-level cog-in-the-system programming job. You need to find a better job. Look for positions with smaller companies, where you can be a big fish in a small pond, and positions labeled things like "Senior Software Developer" where more autonomy (and responsibility) are part of the bargain.
posted by axiom at 1:54 PM on July 25, 2010

« Older Grab your spatula and sing along!   |   Where did my fellow passengers (and luggage) go? Newer »
This thread is closed to new comments.