Computer Science PhD

From 80,000 Hours Research
Jump to: navigation, search

This wiki is in very early stages and is a work in progress.

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

Exploratory

What is this career path?

"A Ph.D. is a long, in depth research exploration of one topic. By long we’re typically talking about 6 years. By in depth we mean that at the end of the Ph.D. you will be the world expert or close to it in your particular area. You will know more than your advisor about your particular research area. You will know about your research than anyone at your school. By one we mean that by the last couple years of your Ph.D., you will typically be working on only one narrow problem. The Ph.D. is not about breadth, it is about depth."[1]

"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?

Computer Science PhD students are around 80% male.[2]

Personal fit

Entry requirements.

How to get into grad school

Who should especially consider this?

"A Ph.D. requires a particular type of personality. You need to be someone who is obsessed with figuring out a problem. You need to have tremendous perseverance and be capable of hard work. You need to be willing to do whatever it takes to solve your problem (e.g., take 5 math classes, learn a whole new area like databases, rewrite the whole kernel, etc.)."[3]

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

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

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

"The tenure track is not kind to those who want to start a family. Even if you start graduate school directly after finishing your Bachelor’s degree, you will probably be in your late 20’s when finishing the Ph.D. and in your mid to late 30’s when achieving tenure." [7]

What does it take to progress?

Barriers

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

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

Common exits

Employment of New PhD's in US and Canada

"For Computer Science Ph.D.’s, there are four major categories of employers:

  • Startups (including starting your own business or consulting)
  • Commercial businesses
  • Industrial or government research labs
  • Academia"[10]

"The fraction of new Ph.D.s who took positions in North American industry rose to an historic record of 57.5 percent in 2013-14, eclipsing the previous high of 56.6 percent set in 2007-08. 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. "[11]

"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). 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.

Commercial businesses

"Normal development or production jobs that focus on supporting or developing new products represent the vast majority of employment opportunities. However, getting a Ph.D. makes you overqualified for most of these. Ph.D. training prepares students for academic careers, rather than business careers. Most people who seek a Ph.D. are looking for different types of work than normal commercial jobs. However, if your interests lie in business rather than research, this can be the best way to go. There are Ph.D’s who have become VP’s and CEO’s. Advanced development jobs can be interesting and challenging, and they provide the satisfaction of seeing your work impact product or a company." [12]

Industrial or government research labs

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

"These sit somewhere in between normal commercial jobs and academia. Typically they enable you to look somewhat longer term than a normal job, publish papers, go to conferences, etc. However, these are managed environments, so your research work must tie into the business of the company or the mission of the lab. Reorganizations and changes in priorities can commonly occur, and you have to surf those changes to stay employed and viable. The compensation in industrial research can be good, generally much better than government positions or academia. But like commercial jobs or startups, your job can get cut at any time. I worked at a lab where one day, without any warning, managers appeared and informed us that the company was shutting down our lab and that almost everyone would be laid off. You also will not have the “home run” potential of a startup. If you work in industrial research, you should really be motivated to make an impact on your company, by transitioning research into product or processes that directly contribute to your company’s future. If your primary goals are to publish papers, advance the field and make a name for yourself, and you don’t really care about the commercial and business aspects, then academia is a better choice. Labs that are completely owned by commercial companies or ones that have mandated government funding generally have a consistent stream of funding (until executives or politicians decide to change things). Other labs must rely on winning contracts, from other companies or from the government. That can be a volatile, frustrating way to work. It can be stressful knowing that your team’s continued employment depends on winning the next contract. In a previous job, I sometimes felt we spent 100% of our time trying to secure funding, so we could spend the other 100% getting some research done."[14]

Culture

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

Graduate stipends
Computer Science Postdoc Salaries in the US

Advocacy potential

Job satisfaction

"Research can be very rewarding and very frustrating. Most students describe graduate school as a roller-coaster with tremendous highs and tremendous lows."[16]

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

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

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

Alternatives

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

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

Next steps

HOWTO: Get into grad school for science, engineering, math and computer science

Best resources

Remaining issues

  1. How are the chances of getting into academia and industry research positions different at top CS departments?

Research process

Sources

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.”

The Taulbee Survey is the principal source of information on the enrollment, production, and employment of Ph.D.s in computer science and computer engineering (CS & CE) and in providing salary and demographic data for faculty in CS & CE in North America. Statistics given include gender and ethnicity breakdowns. Taulbee Survey

Applying to Ph.D. Programs in Computer Science

How to get into a Computer Science PhD