A computer science PhD offers the chance to become a leading researcher in a highly important field with potential for transformational research. Especially consider it if you want to enter computer science academia or do high-level research in industry and expect to be among the top 30% of PhD candidates.
Most people qualified to do a computer science PhD should seriously consider doing a PhD focussed on Machine Learning, which we cover in another profile.
• Potential for large impact from your research.
• Opportunity to become an expert in AI.
• Freedom to pursue research topics that most interest you.
• Very smart colleagues.
• Helps you enter technical jobs in industry, providing a backup to academia (though if industry is your aim, it's probably better to enter directly)
• Less than 10% end up with tenure-track jobs.
• Takes a long time (5-7 years), with relatively low pay.
• Doing highly open-ended research provides little feedback which can be unmotivating.
• About half of those who enter industry afterwards don't end up with research positions.
Key facts on fit
Strong quantitative skills (i.e. above 650 on quant GRE), want to enter high-level computer science research roles, extremely interested in computer science research.
If you are interested, try out doing computer science research by doing a dissertation as an undergraduate or taking up research assistant jobs in a professor’s lab. Then read this advice on how to get in.
We recommend this career if it is a better fit for you than our other recommended careers.
For this profile, we read eight blogs by computer scientists on whether to do the PhD and reviewed the Taulbee survey (the full list). See all the other research we did in our wiki.
What is this career path?
In this profile we focus on doing a Computer Science PhD in the US, which usually takes 5-7 years. There is relatively low emphasis on taking classes – typically you only take classes when they are relevant to your research, and these can be in disciplines outside of computer science, including statistics, operations research, maths, psychology and linguistics.1 The PhD is heavily research focused – by the end you write a dissertation which is a long and in depth exploration on a topic that you become an expert on.
Why do a computer science PhD?
You learn cutting edge research skills
The most commonly cited advantage of a computer science PhD is that you learn highly advanced research skills:
You learn the skill of choosing promising areas of research that are at the edges of a field: “Doing a PhD will force you to cast away from shore and explore the boundary of human knowledge. There’s a real trick to picking good problems, and developing a taste for it is a key skill if you want to become a technical leader.”2
You become fluent in both written and verbal technical communication: “I’ve noticed a big gap between the software engineers I’ve worked with who have PhDs and those who don’t in this regard. PhD-trained folks tend to give clear, well-organized talks and know how to write up their work and visualize the result of experiments. As a result they can be much more influential.”3 This is a skill that’s important for entering data science.
You learn to run experiments and interpret the results and get every aspect of your methodology closely critiqued.
You learn how to read and critique research papers.
Potential for large impact from research
During your PhD you get to work on the hardest problems at the edge of human knowledge, in a field with a strong track record of transformational research, in spite of its short history as an academic discipline. “PhD research is about opening up new avenues of enquiry, and working on problems that the rest of the world hasn’t even articulated yet. If you do it right, you can have tremendous impact.”4 A computer science PhD opens up the potential to carry on with this research in academia or in industry.
You have lots of freedom over what research topics to work on during your PhD (though if you want to continue to academia, you’ll need to initially focus on the topics that will most aid your career).5
Artificial Intelligence is one of the most important trends of the next century and is currently the most popular area of specialisation among computer science PhD’s.6 We think it’s especially important that more people work on making sure the development of AI is done safely, and there’s increasing funding available for researchers with this aim, making it a promising area to enter. A computer science PhD opens up jobs focused on AI safety in industry (for example at DeepMind), non-profits such as the Machine Intelligence Research Institute, and academia. If you want to work on this research, see our full review of the area.
You often become the leading world expert on the area of your dissertation.
You gain a much deeper understanding of complex computer science topics, which can help with reaching technical leadership positions in industry, which are in-demand and well-paid.7 People with PhD’s also frequently get more freedom in their subsequent jobs than those with bachelor’s or master’s degrees.5
Highly intelligent peers, and close mentorship and feedback from some of the smartest people on earth.
PhD level research can be extremely satisfying. You can discover previously completely unknown knowledge, you gain deep understanding of your area and you get to prioritise accuracy and truth over functionality and speed much more than you do in industry.8
It is generally easier to move from a computer science PhD into industry than it is to move from industry into a PhD.9
Reasons not to do a computer science PhD
It takes a long time: “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.”10
You don’t get wide exposure to different career areas during this time – you only learn about academic computer science.
Currently only around 30% of computer science PhDs get jobs in academia, with less than 10% getting tenure track positions.11 To get a tenure-track position it is increasingly necessary to do one or more post-docs first, meaning you face even more time with relatively low pay.12
Currently only around 55-65% of those who get jobs in industry after their PhD get research positions (suggesting it may have been better for them to enter industry directly).13 Overall, only around half of computer science PhD’s get research positions immediately after their PhD’s whether this is in academia or in industry.14
The PhD is extremely unstructured – you do highly open-ended research with no clear guidelines on progress or how to organise your time. “Research can be very rewarding and very frustrating. Most students describe graduate school as a roller-coaster with tremendous highs and tremendous lows.”15
The pay is not that high – median stipends range from $17,000 to $29,000.16
You need an undergraduate degree in computer science or a closely related field like engineering, maths or physics (or another major as long as you took a lot of CS classes). A master in computer science can help you enter if your major wasn’t in computer science and you haven’t taken many CS classes.17
You also typically need:
Previous research experience
Excellent letters of recommendation from researchers who can comment on your research ability
A high GPA (3.5-4.0) in computer science and maths classes and quantitative reasoning GRE scores over 650.18
Who should most strongly consider a computer science PhD?
You should only consider a computer science PhD if you are incredibly motivated to do high-level computer science research. All the advice we read was emphatic on this point. Here is a representative quote:
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.19
To get a sense of what academic research in computer science is like, try reading published papers (see for example this paper and this paper).
Given that only 10% end up with tenure track positions and of those that enter industry immediately after the PhD only 50% end up with research positions, it’s unclear whether the PhD is worth the considerable costs for the bottom 50% or so of candidates.
Overall, especially consider a computer science PhD if:
You meet the entry requirements.
You’re highly motivated to do computer science research.
You expect to be among the top 30% of PhD candidates.
“In contrast, a Ph.D. program typically requires typically less than 10 courses during the entire 6 years (at CMU there are 5 required “core” courses, and 3 required “electives”). The emphasis in the Ph.D. is not on classes, but rather on research. A Ph.D. student will typically take classes only when she feels that they will be useful in her research. The classes she takes may not even be in CS at all. They may be in Statistics, Operations Research, Math, Psychology, Linguistics, or anything else useful for her particular research topic.” Applying to Ph.D. Programs in Computer Science – Carnegie Mellon University↩
“Once you have a PhD — and even during the process of getting one — you are able to be your own boss. Rather than working on someone else’s vision, you are the one to define the vision. This is especially true if you pursue an academic career after grad school, but is also the case in many industrial research labs. Typically, people with Bachelor’s and Master’s degrees aren’t afforded so much freedom.” Matt Welsh – So, you want to go to grad school?↩
“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.” Matt Welsh – Do you need a PhD?↩
“For all the frustrations, research can be extremely joyous. For some people, the joy of research is the joy of discovering something new that no one knew about. You might be discovering a new algorithm, a new operating system design idea, a new idea for maximizing the performance of disk arrays, etc.. For others, there’s the joy of truly understanding. You’ve probably noticed that in classes a professor or book will stop just when things are getting really interesting and say, “the rest is beyond the scope of this class.” In research, you can take a problem as far as you want and understand everything about it. For many, the joy of research comes from being able to make an impact – to change the way systems are built and design them in a smarter way. There’s also the joy of doing it right. In a company, the aim is to get a working product and ship it out quickly. In research, you can take your time and plan out your project so that you are proud to defend every one of your design decisions. Research is not about simple heuristics or quick hacks. Many people also relish the joy of being the authority on an area and of having their work read and cited by others.” Applying to Ph.D. Programs in Computer Science – Carnegie Mellon University↩
“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.” Matt Welsh – So, you want to go to grad school?↩
“Only 27.3 percent of 2013-14 graduates took North American academic jobs, an all-time low since we began tracking this in 1989-90. The fraction taking tenure-track positions in North American doctoral granting computing departments held fairly steady at 7.6 percent for 2013-14 graduates. The fraction taking positions in North American non-Ph.D.-granting computing departments dropped from 2.1 percent to 1.9 percent. The fraction taking North American academic postdoctoral positions dropped from 14.9 percent to 11.6 percent” “The proportion of Ph.D. graduates who were reported taking positions outside of North America, among those whose employment is known, rose to 9.4 percent from 8.2 percent for 2012-13 graduates. About 37 percent of those employed outside of North America went to industry (slightly higher than reported last year), about 26 percent went to tenure-track academic positions (about the same as reported last year) and almost 20 percent went to academic postdoctoral positions (a higher rate than reported last year).” Computing Research Associating 2014 Taulbee Survey↩
“Tenure-track positions are increasingly requiring candidates to do one or more postdocs: This trend has been documented by Anita Jones in the article The Explosive Growth of Postdocs in Computer Science (ACM Digital Library subscription required). Since 2007, hiring of Ph.D.’s in academia is increasingly dominated by postdoc positions rather than tenure-track positions. The requirements for a tenure-track position appear to have been redefined to make one or more postdocs nearly mandatory. This has been the case in other disciplines for a long time, but it is relatively new for Computer Science. This delays a Ph.D.’s career and forces people who want to become professors to endure several more years of low pay and status.” Ronald T. Azuma – So long, and thanks for the Ph.D.!↩
“Among those doctoral graduates who went to North American industry and for whom the type of industry position was known, about 56 percent took research positions. This is down from the 64 percent reported last year.” “Of the doctoral graduates who went to non-North American industry positions, the positions were research by a three-to-one margin over those that were not research, the same ratio reported last year” Computing Research Associating 2014 Taulbee Survey↩
“The only cases I recommend doing a Masters are for students that aren’t quite prepared to get into a top-ranked PhD program, for example, because their undergrad major is in something other than CS. (Note that if your undergrad major is in an area closely aligned with CS, such as engineering, math, or physics, or you took a lot of CS classes despite majoring in something else, you probably don’t need a Master’s.)” Matt Welsh – So, you want to go to grad school?↩