Ask HN: Is a Ph.D. in CS worth it?
So, I'm a senior CS major at CMU, and up til now I have taken care to keep both options (Industry and Grad School) open to me. Unfortunately (or, perhaps, fortunately), it's about time to make a real decision, so I figured I would just gather as much (hopefully unbiased) information as possible.
So, given the choice between a top tier Grad School and a top tier company (whether it's a cool new startup or an established player), which is the better choice?
For the sake of eliminating the easy answers, you can assume that I'm not sure that I want to teach and that the opportunity cost doesn't bother me.
Edited to add: Whatever I work on, I want it to be cool and new. Research affords a good opportunity to do that, but I believe a job could as well.
41 comments
[ 3.0 ms ] story [ 96.8 ms ] threadIf you told me that the only way I was likely to find new and interesting problems was to go to Grad school, I would choose grad school.
Also consider the increased difficulty of re-entering the commercial workplace after spending a long time working in an uber-specialized field while getting the PhD. If you're more of a generalist by nature, don't do the PhD (this is advice I wish someone stressed to me before I did mine).
There have been several other similar threads to this on HN from memory which also contained some solid advice.
I think part of wanting to do a PhD is wanting to complete the ultimate intellectual marathon. To get that seal of approval. Its a really stupid reason and I strongly suggest you do some soul searching as to which parts of your ego feel they need that validation.
Cool and new. Yeah I think that might have been how I described my motivation as well. I don't think research is about cool and new. I think successful research is about learning a difficult and advanced area and then carefully contributing a very small uncool piece of the puzzle. I think trying to be creative gets you shallow and unuseful work.
It's probably better to think about the PhD as learning about a really specialized subfield and a small amount of contribution. I'd also say only certain subfields are worth getting a PhD in. In some fields like machine learning a PhD can be an entry into all sorts of useful jobs and roles, in other fields its only an entry to academic roles, and finally in some fields it won't be a good entry to academia and industry will be left scratching their heads as to why you wasted your time.
"While amazing, groundbreaking research is possible in academic computer science - the general lifecycle of research is some irrelevant poorly made prototype that ignores any number of real world concerns and leads to a couple of uninspired papers that noone reads."
http://news.ycombinator.com/item?id=1376259
I think there are probably some deeper factors at play in this. I think in most fields of computer science its hard to articulate the importance of the research in itself. That is I think my vague outsider view of Maths and Physics research is that its easier to quantify the significance research on its own. In CS I feel their is a stronger need for outside justification - that is this research will do x faster or better - but that research tends to be divorced from industry to the extent that it rarely contributes directly. Fundamentally there just isn't as much need for academia in lots of fields of CS - it doesn't take expensive equipment and its not so abstract that it can't be undertaken by a profit seeking concern. Add to that most universities want to take good research patent it and spin it off anyway, and you might as well just start a company and keep your equity.
Getting into a 'top tier grad school' is a crap shoot, much like a getting into a 'top tier' company. You should probably figure out whether you want to spend a lot of time doing research or not, and look into whether you like the sort of jobs CS PhDs wind up doing after a PhD, not phrase your queries narrowly in terms of which top tier option is better.
I understand what you mean by the crapshoot part, but, given the choice between a top tier company and a middle tier grad school, I'd go with the top tier company every time. Between top tier grad school and middle tier company, I'd choose the grad school. Maybe this is a little shallow of me, but it seems like a reasonable heuristic, all other things being equal.
A friend of mine graduated with a CS PhD last year, and he just took an interesting job working on the key algorithms behind one of the "big names" in tech today. But other opportunities he was offered were the same as he would have gotten with 10 years of software development experience.
I'll also say this - if you don't get your PhD now, it's a lot harder to go back and do it when you have a mortgage and other commitments.
If you want to work on the more researchy problems while in industry, also consider the Ph.D. Even the Master's is just a "quick pay grade upgrade" but won't get you into the research labs at MSFT, etc. You'll be just another hacker, albeit one with one additional line on their cv. Most of the graduate students I meet (in Computer Science) have no interest in being professors -- they mostly want to work in research labs or use the Ph.D. as a leg-up towards a CTO job.
If you don't care about either of those, go into industry.
For example, ask yourself - would you enjoy doing a PhD? If you wouldn't have fun, then don't do it. A second question is - what careers would make you happiest later on? If those careers don't require a PhD, then consider not doing one.
Also: Are there multiple CS research topics that would interest you? Are you self-motivated and good at working on long-term projects? Are you happier implementing things or thinking about how to implement things?
http://www.woan.org/Presentations/Crossing.pdf
I think that others mentioned that you really want the PhD if you want to go into research and especially if you are interested in the search for truth rather than good enough to work in the real world. Kind of like the difference between science and engineering.
Coming out with a PhD from a top school means that you will more than likely be the world's expert in something (whether that something is important is another question) which is pretty cool.
I felt like I had to make the decision early on in grad school, but that's not the case.
Do a master's (thesis option) degree and in doing so you'll discover whether you want to do research or not. If you decide you absolutely love research (and all that goes along with research - publishing, perhaps teaching, etc.), then go for the Ph.D., otherwise, finish with the master's degree and go into industry.
There may be jobs in industry that allow for similar growth, but they are certainly not the norm. It is easy to stay within one's comfort zone once one gets paid to do so.
In my (completely biased) opinion, doing a PhD is worth it for great and curious students that like to be challenged and that can afford 5 years, no matter what you plan to do afterwards (in fact, especially if you don't know what to do afterwards). You can always be a code monkey for 50 years after the PhD; it's hard to go the other way.
But lots of what you'll have to do won't be cool or new, it will be tedious and time-consuming drudgery. Of course, it still might be worth it, but don't expect it to be all sunshine and light.
More important than that though: Is there a particular subject within CS that you are INCREDIBLY passionate about?
There is plenty of work involving math, if you like, but there is a lot more to computer science than linked lists and finding strings inside strings.
(Some would say that means it's not academic enough... but you get the "Dr." title, so...)
I'm going to steal from myself and just repeat this: I consider computer science to be everything concerned with computation in both the abstract and in implementation. See http://news.ycombinator.com/item?id=968013 and http://news.ycombinator.com/item?id=1131606
It was also a great way to figure out that I did basically enjoy CS research, but I'd need to feel a real burning sensation to spend the time on the PhD and get hired at the Google lab. Tenure-track seems to be for masochists only.
After the MS I took a fairly good job, then 18 months later moved on to a top tier company. You can probably go right to a top-tier after CMU and a master's.
Also, a PhD may work against you. Many programmers in smaller companies will think you aren't interested in working hard.
This has a number of benefits: worthwhile non-academic experience, better sense of whether you really want to do a PhD or whatever else, usually more focus when you do go back because you have had time to reflect on what exactly you want to do and get out of it, some general maturity that comes from working rather than just being in school, less pressure in making a big decision right now, and so on. Since you aren't hell-bent on becoming a professor, it is good to see both some academia (your undergrad) and industry before jumping into a long-term thing like a PhD. It's also more comfortable applying to grad school from a job you already have rather than as an undergrad, since if you don't get in anywhere you like, you can simply stay at your job and even try again the following year. (This also all applies if you decide you just want to do an MS.)
Basically, you have to make your own decision about this, and this is a fairly simple (and productive) way to make the decision easier.
In the meantime, get involved with other students on building stuff outside of class this year! Once you find a specialty of CS you're passionate about, whether it's statistical machine learning or web development, it'll be obvious which path is the best choice.
I, too, was looking to work on something cool and new, and you can certainly find projects that meet this criteria in both startups and academia. The decision for me was easy because I was passionate about the idea, and I was excited to start building. The serious thesis work in grad school would still have been a couple years away, and I wasn't as excited about taking more classes. I wanted to get started immediately.
If you'd like to grab lunch and talk more about the start-up world, I'd be happy to try and lend my perspective. (My co-founders and I live in Shadyside).
I greatly appreciate the time and relative freedom that my PhD has given me to develop, but not all of that development will be applicable out there in the real world. I think most people moving from PhD study into industry have to make something of a sideways leap, and you can't expect the same level of remuneration as you'd find in a job you're qualified for (i.e. research).
In my recent job-hunting, I've had a really hard time convincing potential employers to trade my overeducation against my inexperience. Recruiters, who often just match acronyms on a CV/resume, are particularly tough in this regard. One told me that, despite me having a PhD, he would only put me forward for roles that said 'new graduate' or 'no experience required'.
You can combat this, however. In my experience, there's time when doing a PhD to do some extra-curricular stuff—to work or to develop personal projects. These will help you to look less like the kind of narrow-minded, misanthropic pedant that people expect from a PhD student.
In summary, the only thing a PhD will qualify you for is research. Having a PhD, as prestigious as it is, is only as useful as you make it, so your choice of topic and extra-curricular activites are essential. If you're considering a PhD because the jobs your ideal job isn't open to you, consider whether taking the sideways step into PhD study is really the most direct route to the job you want (read: it probably isn't).
One more thing: be aware that your relationship with your advisor is crucial. Quitting because you can't stand them two years into your PhD means starting over, so choose wisely. Don't choose them based on the person you want to be, choose based on how they fit with who you are now.
All the best.
"The only reason to do a PhD is because you love doing research. If you don't love research, don't bother -- it is not worth the time, money (in terms of opportunity cost vs. making a real salary in industry), or stress. Doing a PhD is stressful, if you are doing it right -- you are in constant competition with other academics to publish your results in the top venues, to make a name for yourself, to get recognized. If you harbor ideas of lazy days sitting in the coffee shop pondering the universe, you are dead wrong. (You can always approach a PhD this way, but you will probably not be very successful.)"
-Dr. Moriarty