Skip to main content

How to get into grad school

A bunch of students are now applying to graduate schools, and to help them out, every year I give a talk on getting into grad schools in Computer Science (click the link for the slides). Luis von Ahn has an amusing post about the process on his blog - all of his suggestions ring true.

The key thing that gets under my skin about graduate applications is the personal statement. All too often, applicants see this as an opportunity to tell their life story, especially about some experience they had with computers as a kid. "Since I was nine years old..." is the most common opening line in these statements. Frankly, I don't care about any of that. I am looking for potential grad students who have a mature and serious outlook about research. Of course, the best way to demonstrate that is to actually have done some research as an undergrad -- and putting together the Web site for your a cappella group doesn't count. My suggestion is for students to model the personal statement as a mini-research proposal: tell me about a problem you want to work on, have done some thinking about, and how you would approach it. And, convince me that you have the technical experience necessary to do graduate level work.

By the same token, I don't care about how enthusiastic a student comes across in their application to work with me. A lot of ass-kissing goes on in the personal statements sometimes and that drives me crazy. Just tell me how awesome you are, not how awesome I am, or awesome Harvard is. We know that already :-)

Here is my rough algorithm for screening Ph.D. applications:
  1. Make sure the GRE scores and GPA are reasonable - not necessarily stellar. (I only had a 3.4 GPA when graduating from Cornell, and was told later that this almost sunk my application to most grad schools. Fortunately, I had also published three papers by the time I applied to grad schools, which offset that. As a result, I tend to use a lower threshold for the GPA than some others, to catch the diamonds in the rough.)
  2. See if the student has any evidence of research experience -- supervised by a faculty member. Publications don't really matter but are helpful.
  3. If there is any black mark on the transcript (say, making a C in an important CS class), see if there is any explanation of that in the personal statement or elsewhere. (We once had an applicant who failed most of his classes one semester, but retook them and made A's the next term. Until I read the personal statement, it was not clear that this was because he had been hospitalized for a substantial portion of the term.)
  4. Finally, read the recommendation letters. These are the most important part. Steps 1-3 are just pre-screening to save myself the trouble of reading the bulk of the applications. Letters from people I know (or know of) are given higher weight. Letters from academics get priority over letters from industry - most industry letters (even from places like MSR) paint a very rosy picture. Letters that simply say "so-and-so took my class and made an A-" with no other content actually hurt an application, all else being equal. If a student is really stellar, even faculty who don't know the student well should be able to say good things.


  1. Do you have any suggestions for foreign applicants about recommendation letters? It is usually harder for them to get a letter from somebody you know, and that was the hardest part for me when I applied for grad schools.

  2. Sadly, foreign applicants certainly face an uphill battle (not just with me - in general). The largest is probably not knowing much about your undergraduate institution. Unless you are coming from one of the IITs, Tsinghua, or a name-brand university in Europe, it's difficult to gauge your preparation for graduate school. The best advice I have for foreign applicants is to do a Master's in the US at a decent CS program and get letters from people there.

  3. I find a small wording change to have helped me (and others) a lot. It is not a 'personal statement' that grad schools require. It is a 'research statement'. When you phrase it like this on webpages and application materials, students get a much more accurate picture of what's expected of them.

  4. Any thoughts about applications from those who went into industry for a few years? Reject pile? What should they focus on?

    Also, sad to hear a 3.4 from Cornell almost tanked you.

  5. I had a 3.4 from Berkeley, and it nearly sank me as well when I was applying to grad school. Now, I totally agree with what you say. I'm not explicitly looking for research experience, though. I'd be thrilled to see students with extracurricular activities, like contributing to well-known open-source projects. Tell me about hacking projects that you did for personal reasons rather than because it was required for class.

    I also do agree with you that students should talk about the research they want to do, why they think it's important, and how they might approach the problem.

  6. Being an International student, I have faced the same problems of my professors from undergrad not being well known outside of India. I would think that using the existing set of international students would be an excellent way to collect a set of the reputable colleges in foreign nations. Being a non-IITian myself, I have seen that almost all colleges tend to take only IIT graduates which leads both to little diversity as well as missing out on excellent talent elsewhere.

  7. tell me about a problem you want to work on, have done some thinking about, and how you would approach it.---isnt it bit too much to expect from an applicant to specify a 'problem'. Or are you talking about the broad field?

  8. prmohan - I agree about the lack of diversity, but it's very difficult for a non-Indian to know which schools are really good and how to interpret, say, a transcript from an Indian university. The IITs follow a US model in many ways and have established a reputation here, so it's easier to draw parallels between the educational experience a student has there to what we would see from a comparable US school. I don't know how to fix this problem.

    kk - I do think that if a student is serious about going to grad school they should be able to talk about a research problem - any problem - at some level of detail. Maybe not a PhD thesis level topic but at least a started project.

  9. Ilya - applicants who have spent a little time in industry are tricky. If they have great letters from former professors talking about their research potential, then there's no harm in doing a few years in industry before applying to grad school. More often, we find people who didn't focus on research as undergrads, and are banking on their industry experience to help them get into grad school. Unless someone is, say, at a startup companuy where they have done some amazing hacking that makes it look like they would be a good grad student, that experience doesn't help very much. As I mentioned earlier most recommendation letters from industry folks are not that useful so one would still need the letters from the former profs. One suggestion for such students is to get the profs to write the letters before the student graduates and hold onto them until the student does, in fact, apply to grad school. Though, most professors are notoriously bad about procrastinating on letter writing until it is actually needed, so YMMV.

  10. Do you have any tips for how to write an effective recommendation letter for someone in industry? I'm at MSR now, and I've had my first requests for rec letters from undergraduates who worked with me previously. I've heard a couple of points in the past, such as

    * Make clear comparisons between applicant and other applicants or other students I know, e.g. "Better than X, not as good as Y, about the same as Z."
    * Include specific examples of applicant's qualities, e.g. indepdendence.
    * Find ways to point out room for improvement without being so harsh that it tanks the applicant unnecessarily. Is this what you meant by saying letters from industry are too "rosy"?

    Thanks much - and hope you end up with a great incoming crop of students!

  11. What do u suggest to international applicants with unknown nonreputed schools having fucking low gpas. Also I heard that adcoms dont give much value to gre cs subject test is it worth to study for it especially if you are from a school in the middle of nowhere.

  12. Shriram Krishnamurthi has some useful advice for Grad School recommendation letter writers:

  13. I have a less gpa but would gre be helpful to get admission in US universities .....


Post a Comment

Popular posts from this blog

Why I'm leaving Harvard

The word is out that I have decided to resign my tenured faculty job at Harvard to remain at Google. Obviously this will be a big change in my career, and one that I have spent a tremendous amount of time mulling over the last few months.

Rather than let rumors spread about the reasons for my move, I think I should be pretty direct in explaining my thinking here.

I should say first of all that I'm not leaving because of any problems with Harvard. On the contrary, I love Harvard, and will miss it a lot. The computer science faculty are absolutely top-notch, and the students are the best a professor could ever hope to work with. It is a fantastic environment, very supportive, and full of great people. They were crazy enough to give me tenure, and I feel no small pang of guilt for leaving now. I joined Harvard because it offered the opportunity to make a big impact on a great department at an important school, and I have no regrets about my decision to go there eight years ago. But m…

Rewriting a large production system in Go

My team at Google is wrapping up an effort to rewrite a large production system (almost) entirely in Go. I say "almost" because one component of the system -- a library for transcoding between image formats -- works perfectly well in C++, so we decided to leave it as-is. But the rest of the system is 100% Go, not just wrappers to existing modules in C++ or another language. It's been a fun experience and I thought I'd share some lessons learned.

Why rewrite?

The first question we must answer is why we considered a rewrite in the first place. When we started this project, we adopted an existing C++ based system, which had been developed over the course of a couple of years by two of our sister teams at Google. It's a good system and does its job remarkably well. However, it has been used in several different projects with vastly different goals, leading to a nontrivial accretion of cruft. Over time, it became apparent that for us to continue to innovate rapidly wo…

Running a software team at Google

I'm often asked what my job is like at Google since I left academia. I guess going from tenured professor to software engineer sounds like a big step down. Job titles aside, I'm much happier and more productive in my new role than I was in the 8 years at Harvard, though there are actually a lot of similarities between being a professor and running a software team.

I lead a team at Google's Seattle office which is responsible for a range of projects in the mobile web performance area (for more background on my team's work see my earlier blog post on the topic). One of our projects is the recently-announced data compression proxy support in Chrome Mobile. We also work on the PageSpeed suite of technologies, specifically focusing on mobile web optimization, as well as a bunch of other cool stuff that I can't talk about just yet.

My official job title is just "software engineer," which is the most common (and coveted) role at Google. (I say "coveted&quo…