Computer Science PhD

From 80,000 Hours Research
Revision as of 08:25, 12 June 2015 by Roman.duda (talk | contribs) (Software engineering)
Jump to: navigation, search

This page contains all notes on Computer Science PhD's over and above what we put in our career profile. Read the profile first, here.

Profile type


What is this career path?

"Nobody finishes in four years. The typical time to completion is around five or six years, but there is a long tail -- I reserve the term "paleo-student" for someone who has been at it more than 10 years."

What are the people like?

Personal fit

Entry requirements.

How to get into grad school

Who should especially consider this?

"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."[1]

"The answer to that depends on two questions? Do you need one? Do you want one? You need a PhD if you want to go into academia. If you find the process of getting a PhD unenjoyable, that is a strong sign that you are not cut out to be in academia. If a PhD makes you hunger for more, then you are."[2]

"What it boils down to is that this is one of the most intense questions of self-knowledge you will ever face. The answer is simple: you should do a PhD if you really want to. Look into yourself to figure out if you really want to. ... This is what I like to call a clamped decision. If you are not fully convinced that the answer is “yes”, then the answer is “no.”"[3]

What does it take to progress?


Career capital

Knowledge and skills

"However, I am really glad I got my PhD rather than just getting a job after finishing my Bachelor's. The number one reason is that I learned a hell of a lot doing the PhD, and most of the things I learned I would never get exposed to in a typical software engineering job. The process of doing a PhD trains you to do research: to read research papers, to run experiments, to write papers, to give talks. It also teaches you how to figure out what problem needs to be solved. You gain a very sophisticated technical background doing the PhD, and having your work subject to the intense scrutiny of the academic peer-review process -- not to mention your thesis committee."[4]

Will it help you if you want to do software engineering after?

"I do think that doing a PhD is useful for software engineers, especially those that are inclined to be technical leaders. There are many things you can only learn "on the job," but doing a PhD, and having to build your own compiler, or design a new operating system, or prove a complex distributed algorithm from scratch is going to give you a much deeper understanding of complex Computer Science topics than following coding examples on StackOverflow." [5]

Common exits

"There used to be certain positions in industry, especially in R&D, that absolutely needed people with PhDs. That has been steadily eroding over the years, and while a PhD is certainly a plus, its necessity has been watered down significantly. Even if you do not formally have a PhD but can make an impact and prove yourself in an industrial research setting, you can perform the exact same job as someone with a PhD."[6]


Exploration value

Role impact

Direct impact potential

Earnings potential

"But as my PhD advisor was fond of saying, "doing a PhD costs you a house." (In terms of the lost salary during the PhD years - these days it's probably more like several houses.)"[7]

Advocacy potential

Job satisfaction

"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.)"[8]

"Another downside to the PhD is that is it extremely unstructured. This can drive some people crazy. The nature of research is that it is open-ended, and there are often no clear guideposts as to what you should be working on each day. Also, your PhD advisor may or may not mesh with your personality -- they might be too hands-off, too hands-on, out to lunch, too stressed about getting tenure, etc. Your experience in grad school will depend a lot on how well you get along with your advisor. (Let me take this opportunity to apologize to all of my current and former students for what they have to put up with.)"[9]

"The time to finish your degree can be taxing, since all of your friends have already gone ahead and gotten married, had kids, bought a house, etc. while you're still living in squalor with four roommates who haven't bathed in a week."[10]


Software engineering

"A lot of students tell me that they plan to get their bachelor's degree, work in industry "for a year or two" and then apply to grad school "later." If you are serious about going to grad school, I do not recommend this approach. In my experience, it is quite rare to make the jump from industry to grad school. First off, industry pays so much better than the PhD student stipend that it is quite hard to make this transition. Also, to get into a top PhD program, you need good letters from CS professors, and letters from industry don't really count. After you've been gone for a couple of years it's hard to get those stellar letters from the professors that may have loved you back when you were in college; newer, brighter, more energetic students have taken your place and you are long forgotten (although maybe Facebook will change all that). Industry experience rarely helps a graduate application, especially if you're some low-level engineer at a big company writing tests all day."[11]

Past experience

Take action

Learn more

""But," you say, "I don't know if I love research -- I've never done any!" Then why are you considering doing a PhD at all? The only way to find out is by doing research, preferably as an undergrad. If you screwed up and graduated before doing research, try to find a research assistant job in a professor's lab, or do a Master's (see above). Be warned that most Master's programs are very course-intensive, so you will need to work extra hard to do some research on top of the courseload."[12]

Next steps

Best resources

Remaining issues

Research process


So, you want to go to grad school?

Do you need a PhD?

Advice on whether to do a CS PhD

“Everything I wanted to know about C.S. graduate school at the beginning but didn’t learn until later.”