Who This Post is For

This note is intended for people that have already decided to apply to PhD programs or are generally interested in seeing what the process entails. This note does not provide advice as to whether or not you should go to graduate school. The perspective of this note is from someone who recently went through the process of applying to U.S.-based PhD programs in computer science (applied in Fall 2016). There are a lot of resources for both deciding to go to grad school and actually applying to grad school. Some highlights are included at the bottom of this document.

Note: most grad school deadlines are in December, and it takes at minimum a month to prepare the materials to apply, so hopefully you are reading this in August or September if you are hoping to apply for the current cycle.

Deciding Where to Apply

A necessary step in applying to grad school is deciding to which schools you will apply to. I would recommend doing this before preparing your application. Most schools have similar applications, but in case a school has unique application requirements, you will want to know in advance.

How Do I Find Places to Consider Applying?

High-quality researchers are spread out across hundreds of institutions, and it is very likely that you are not aware of dozens of locations doing research that you are interested in. To find an initial candidate set of places you might consider applying to, I would recommend:

  • Talk to people in the field you are interested in and ask about researchers and/or schools that they think do good research in your field of interest.
  • If you do not have access to people in the field, try browsing Quora or Twitter.
  • Look at papers you like and see who authored them and what institution they are from. In machine learning, the norm is for the most senior researcher to be listed last. If you want more papers to look at, crawl the citation graph (look at the related works section of a paper to find more interesting papers).
  • Look at conferences and journals you would want to be publishing in and see who is publishing there. For machine learning, conferences are the main publication venue; popular ones include ICML, NIPS (currently undergoing a name change), ICLR, and AISTATS. For natural language processing, popular conferences include ACL and EMNLP.
  • If you’re really stuck, and for whatever reason the above methods don’t work for you, a slow but not-absolutely-terrible method is simply to go through the department pages of the broadly and vaguely accepted top computer science graduate schools and look for professors that are doing interesting research.

What Should I Consider in Deciding Where to Apply?

After gathering an initial list of places you are interested in, you will likely need to winnow down your list. In doing so, I would keep in mind the following factors:

  • Researcher fit: as the main reason to you should want to attend grad school is to do research, the type of research done at an institution should be the prime consideration in deciding whether or not to apply there. I think research fit includes the following:
    • Timing: Is the PI taking students? For various reasons (too many students already, taking a sabbatical, etc.), professors won’t be taking students for a PhD application cycle. In such cases, professors are usually good about posting that they are no longer taking students. If you are ever unsure, email the professor or one or their group members for clarification.
    • Research areas: are the faculty at this institution doing research you are interested in? Skim their recent papers (usually listed on their academic sites; if not, try Google Scholar). Are the titles and abstracts exciting to you? This factor is the most important one: if you work a faculty, it’s unlikely you are going to do drastically different research from what they are currently doing. So if you aren’t interested in their work, don’t apply.
    • PI career stage: at what career stage is the PI? Broadly speaking, researchers earlier in their career are more hands-on, while more senior researchers are less hands-on and are more established.
      In practice what this difference means is that early-career mentors will likely push harder to publish work and will check-in with students more frequently to make that happen. They also might have their own set of projects that they want their students to work on, which might be good if you are broadly interested in an area but don’t have a clear enough view of the field to know what is interesting or impactful to work on. On the flip side, this might mean you have less time to work on what is personally interesting to you, if those interests don’t align with the mentor’s projects.
      Working with a PI later in their career has the benefit that their name and reputation is more widely recognized, meaning they likely have more and more flexible funding, and have stronger connections to other researchers in the field (which can be useful when you are searching for internships or jobs). The tradeoff is that there might be less pressure from the PI to publish and you might receive less attention, as more senior researchers have more outside obligations (giving talks, organizing events, etc.).
      Do note that the aforementioned differences are generalities, and may not be true of a particular lab. The best way to know about the nature of a particular PI or their group is to talk to members of that group.
    • Size of group: how large is the PI’s group, including PhD students, postdocs, master’s students, and possibly undergrads? A small group is around five PhD students (per PI, in cases of joint advising) with one or two postdocs, which averages out to about one PhD student per year. A large group would consist of around 2 or more PhD students per PI per year, plus postdocs.
      PhD students are usually the main focus of a PI’s mentoring, but generally a larger group means that you will receive less individual attention. On the other hand, a large group means more opportunity to collaborate and receive guidance, particularly from postdocs and more senior students (though they will likely be learning how to properly mentor).
  • Research quality: all else equal, you of course want to be doing the best and most impactful research you can. The institution you go to and people you work with will have a large effect on that. Again, I think the best signal of research quality of a group is to read their papers and see if you like and respect their work. Early on, though, it can be difficult to judge the quality of a paper. In that case, some other signals of research quality include:
    • Student publishing: how often and where are the students of the group publishing? Are you faimilar with their work? Publishing one high-quality paper at a major conference per year is about average for machine learning (though the pace of publishing has increased to the point where it’s not uncommon to publish to two or more conferences per year, I am not convinced that people are actually doing twice as much work).
    • Student outcomes: think about where you want to end up in five-ish years careerwise; where do the students of this lab end up? Most lab websites will list alumni and what they went on to do. Skim those lists and see if graduates go on to career paths similar to what you would like to do in the future.
    • Faculty and student awards: an obvious signal of high-quality work is awards and fellowships earned by the principal researcher and other members of the group. Although these are nice-to-haves, don’t weigh it against a group if they lacked community awards, since only a handful of people earn awards despite the fact that hundreds of researchers are consistently doing high-quality and interesting work every year.
    • Citation metrics: how often is the group’s work cited? The easiest way to check citation metrics is to go to a researcher’s Google Scholar page. I would again caution you from weighing this factor too heavily. A high number of citations (~50+ is pretty good for machine learning papers) is a clear positive signal, but a lack of citations is not necessarily a bad signal.
  • Institutional Factors:
    • Number of faculty: how many faculty are at the institution doing research you are interested in? Computer science faculty are in a fairly unique position of constantly being courted by industry and other non-academic organizations. If an advisor leaves for another institution, their students might have an option to move with them, but otherwise the students would need to find a new advsior. Even if a faculty takes an industry position and does not officially leave the university, that still translates to decreased attention for their grad students and mentees.
      Having more than one faculty that you would be interested in working with at an institution is generally useful. Even if the faculty don’t seem liable to leave, having a backup in case things don’t pan out with the main researcher you are interested in working with is handy. In the best case, you can be co-advised by two faculty whose work you are both interested in and do some interdisciplinary work.
    • Intra-university differences: this is not a reason to apply / not apply to a university, so much as possible university-specific quirks worth being aware of. For example, for someone applying to New York University for NLP programs, there are three different departments that one might apply to: Computer Science (Courant), Computer Science Engineering (Tandon) and a new Center for Data Science doing similar work to both. The differences between departments vary between institutions and can range from different course requirements, access to faculty (either physical, e.g. they located in distant buildings and it is difficult to collaborate, or administratively, e.g. you are only allowed to work with faculty in your department). It is worth being aware of these differences and contacting people at the university if they are unclear.
  • Life fit: happy grad students make for better researchers, which includes being happy with your situation outside of research. Everyone’s situation is different, but generally speaking, don’t apply somewhere where you know you’d be unhappy, but be flexible and open to living somewhere new, as your decision will more likely be governed by where you are accepted than where you would like to live. Some factors that mattered to me included:
    • location: would you be happy living in that area? Living in a city is generally more expensive (though stipends are usually larger to compensate) but offers more to do outside of graduate school than in a more rural area. Working in a large city also has the benefits of being close to industry partners and making it easier to invite guests.
    • people: do you already know people at the university and the area? Having a social network in place that you can rely on is a big benefit, as it can be tricky to make friends outside of the unviersity in grad school.
    • language: I did not have to deal with this, but if you are going abroad for graduate school (note: all the previous advice should still apply, but is based off experience apply to U.S. graduate schools)., you might need to invest a nontrivial amount of time learning the local language.

How Many Places Should I Apply To?

The number of schools you should apply to will depend on your circumstances. Applying to anywhere between three to ten schools is normal, and I would not recommend applying to more than ten schools. Don’t apply to places where no one is working on topics you are interested or you would otherwise be miserable living.

The time cost of applying to one more school is not trivial. The financial cost in applying to one more school is also nontrivial (I would estimate ~$100/school) and mostly comes from (1) fees from sending your application materials (GRE scores, transcripts) (2) application fees. Fortunately in computer science, interviews are largely done remotely (visit days are usually after decisions are made, in my experience, though there are exceptions), so you do not need to worry about paying to fly to schools for interviews.

Putting Together the Application

After determining where you would like to apply, you need to put the application together. Applications generally consist of a statement of purpose / personal statement, recommendation letter, test scores, transcripts, and application form.

Every university has their own graduate admissions process, but most of the time, the faculty of the department will directly read applications. From the entire appication process (application and interview), they are trying to divine whether or not you are capable of conducting high-quality research over the next five years and whether you are someone they would enjoying working with. From your application materials, they are trying to figure out whom to give interviews.

Statement of Purpose

The statement of purpose is a one- or two-page document explaining your research interests. Outside of any papers you include as supplementary material (see below), this statement will be the only opportunity faculty will have to hear from you directly. Everyone’s statement of purpose will vary, but you want to hit upon the following topics:

  • research interests: write clearly and specifically about the types of problems you are interested in, the types of project you want to work on, the research outcomes you are hoping to achieve, etc. Generally speaking, speaking technically is encouraged and useful for demonstrating that you know your stuff and are actually interested in that topic. If you’re at a total loss of what to say, talk about how you developed those interests. Talking about how you developed your interests is particularly relevant if you are applying for a field that is significantly different than what your training is in.
  • previous (research) projects: talk about what the project was and what you specifically did, learned, and achieved in the course of the project. These points are particularly useful for demonstrating that you have the technical skills necessary for completing research projects.
  • faculty of interest: it is acceptable and common to have the bulk of your statement of purpose be reused for different applications, but make sure to tailor a paragraph or two to the school you are applying to. In particular, you should mention the faculty at the university that you are interested in working with. Often times, you application will then be passed directly to that faculty member.

Recommendation Letters

Most schools will ask you for at least three letters of recommendation. Ideally these letters will be from professors you have done research with in the past, e.g. during your undergrad or master’s, during REUs or other research internships, advised a thesis, etc. It is difficult to do serious research with three different professors, so common alternatives include asking

  • a professor for whom you completed a substantial class project
  • a professor for whom you have TA’d a class
  • a manager at a company who is familiar with your work. It is important that you should look for recommenders that are familiar with your work. Generally speaking, it is better to ask a lesser known person that can speak intimiately and highly of your work, than to ask a famous person that can’t say much unique about you.

Some best practices in asking for letters of recommendation:

  • Make sure to give recommenders enough notice to complete the letter, which means asking them at least a month before deadlines. For people applying directly from another program, I would recommend at least notifying professors that you will ask for a recommendation before leaving for summer break, so that they can take notes before they forget everything about you over the summer (they’re busy people).
  • You will be responsible for reminding letter writers about deadlines. I’d recommend making calendar notifications for yourself.
  • It is also common to pass along your transcript and statement of purpose to recommenders to give them a more complete picture of you and so that they don’t repeat the same exact information.

Test Scores

Most schools will also ask you for GRE scores. Most computer science programs will only ask you for the general GRE and not require any subject GRE scores. You do not need to ace the exam, but you do need to achieve a vaguely-defined minimum score of ~600 per subject (higher for math) to demonstrate basic competency.

I went to college in the U.S., so I don’t have experience with TOEFL or other exams for international students, but people applying from outside the U.S. should be aware of these.

Research Papers

Most applications will allow you to include supplementary material. If you have any research papers (conference publications, arXiv preprints, etc.), I’d highly recommend including them (I’m not sure what else you’d include as supplementary material). One of the best ways to prove to faculty that you can do research is to include research you have done. Refereed publications (e.g. conference and workshop publications) are best to include, but work that is in submission or you are otherwise proud of and convinced is of high-quality, is kosher to include.


Fellowships are academic awards, often with a financial award attached, that are not actually part of the application process. However, there are tremendous benefits to applying to fellowships concurrent to grad school applications that I would recommend everyone take a look at the following fellowships, if not apply to them.

The main benefits of fellowships are prestige and money. The benefit of prestige is straightforward, but it’s worth mentioning that the benefit of the financial award often extends beyond making a few more thousand per year. Fellowship funds are tied to you, such that professors no longer need to fund you. As such, securing an outside fellowship makes you a much more attractive applicant, as professors would not need to allocate funds to support you (financially). Furthermore, being self-funded buys you a degree of academic freedom: because you are not tied to possibly project-specific or professor-specific funding, you have more latitude to turn down projects that you aren’t interested in and instead work on projects you are interested in. Of course, you applied to work with a particular professor, so don’t get in the habit of refusing to work on their projects, but it is nice to not be restricted to projects that revolve around a particular theme.

Beyond the benefits of fellowships themselves, I found that because fellowship applications are often a month or two before grad school deadlines and often require similar application materials, they make for a good impetus for you to prepare your application materials well in advance of the more serious grad school deadlines.

The following is a list of standard fellowships to consider applying to. Note that some (many) of these fellowships are for U.S. citizens only. If you are not a U.S. citizen, you should investigate fellowships from your home country or less stringent fellowships.

There has been a lot more wisdom given on applying to grad school by people much more senior than me. You should take the time to skim through previous advice as well.

  • Philip Guo has a great collection of resources on how to apply to grad school, as well as how to determine if grad school is right for you, and how to do well in grad school.
  • Jason Eisner also has a great collection of notes on deciding to apply to grad school, applying to grad school, and doing well in grad school.