Having applied to CS PhD programs over the past year or so, I decided to write down a few lessons I learned. To begin, I will talk about my overall experience. The summer after high school (2017), I took the GRE, as I knew I wanted to pursue some kind of graduate education, and the GRE was not much of a stretch after the SAT and ACT. Then, around March or April of last year (2019), I began talking to various professors about what grad school entailed, and whether it would be a good fit for me. Eventually, I decided to pursue a PhD, so I began applying to the NSF GRFP (a fellowship for grad students) around May. Then in fall (October/November), I began applying to CS PhD programs. Ultimately, I applied to nine grad schools and was accepted into two. Eventually, I chose to go to USC. With that said, below is a list of things I learned. Some items come from first-hand experience, while others were passed along to me.
- Figure out what you’re getting yourself into. Grad school is no small undertaking. Basically, you’ll be spending up to 6 years (hopefully not more) working full-time as a researcher in your advisor’s lab. Unlike in undergraduate, courses will be secondary; i.e. you’ll have to take a few, but they will mostly be aimed at supplementing your research. In short, grad school is more like a job than “school.” One article I found particularly helpful in understanding grad school was this blog post from my advisor at USC.
- Some folks have asked whether they should do a master’s before / instead of a PhD. My general impression is that master’s degrees are more focused on coursework, though many programs do involve writing a thesis. In general, if you want to pursue a career in research, PhD is the way to go. A PhD is essentially full-time research, and many PhD programs allow you to petition for a master’s anyway (e.g. USC lets you grab a master’s after you finish the PhD coursework). Furthermore, PhD programs are typically funded, while master’s programs can get pretty expensive. If you are thinking of going into a master’s and then PhD, keep in mind that a master’s is not required to pursue a PhD (i.e. you can go straight from undergrad to PhD), and a master’s will not necessarily take time off your PhD.
- Talk to as many people as possible. Get advice from lots of people when you are trying to figure out the program and school to which you should apply. Anyone familiar with a PhD (especially professors and other folks who have done one) can help you decide 1) whether you actually want a PhD (hint: it’s not for everybody) and 2) what you would study during it. Keep in mind that during all this, you will receive many viewpoints, some conflicting with each other. It is up to you to distill the information that is helpful for your situation. Side note: there are tons of online articles with PhD advice (such as this one ). I also found these helpful, but only for figuring out the basics.
- Figure out an area in which to specialize. You should be going into a PhD program with a general idea of what problems you want to work on. This will help you decide which professors you want to work with, as well as what you write in your various application materials. Certainly, this will require some soul searching – read some papers, think about your history, and figure out what you want to work on next. Choosing an interest is important because, even within a specific field, there is still a tremendous amount of knowledge to learn.
- Choose the professor(s), not just the school. Grad school is all about the professor and the people, since you are basically picking your boss and coworkers for the next several years. Thus, as you select schools, make sure you are looking through professors’ publications/websites and finding ones who interest you. You may also want to check whether the school has multiple professors working in your field of interest, as having a community of like-minded researchers can be beneficial. To this end, CS rankings is a great website for finding prominent schools and professors in your field of interest.
- Aim for a young professor. Someone who is early in their career, such as an assistant professor, will have more time to work with you, and they will need to ensure the success of their students so that they can obtain tenure. Older professors will of course be enthusiastic about working with you, but they may also be bogged down by administrative or other responsibilities that prevent them from spending as much time with students.
- Email professors who you may be interested in working with. If you are genuinely interested in working with certain professors, spend some time to compose an email asking about their recent research. Importantly, do not go around asking professors if they will accept you, but do ask if they are accepting students for their lab. If a professor is not taking any students, your application will be wasted. For those afraid to cold-email professors, I can only say that the worst that can happen is that you get ignored. As a disclaimer, I did not email too many professors, but the ones at USC that I did email ended up replying and accepting me . Also: Some professors will explicitly ask that you not email them – in this case, I suggest not emailing them.
- Choose your recommenders carefully. Recommenders must be people who know you well enough that they can write a letter about your ability to do independent research. Ideally, they are professors with whom you have done research. If you have not done research with enough professors, I would suggest getting to know some other professors in your classes by going to their office hours. A quarter/semester of going to a professor’s office hours to ask about class material and grad school advice can end up being enough to write a recommendation. Above all, do not be afraid to ask for a recommendation. Writing recommendations is a regular part of a professor’s job, and if they know you well enough, they will be more than willing to help you.
- Ask your recommenders early, and keep them in the loop. Give your recommenders as much time as possible to write your recommendations. By June of last year, I had asked two of my recommenders, and by the end of the summer, I had asked my third. As I applied, I kept them updated on my list of grad schools, and I let them know when I had sent out requests for letters (usually, the application system lets you send a letter request to your recommender; the recommender then opens this email and submits the letter).
- The personal statement is the part that you can control. Most of your application will already be set by the time you start applying. Your GPA probably will not change much, your GRE scores will be set (unless you want to torture yourself again), your recommenders will write what they want to write, and you will not suddenly gain a plethora of new research experiences. However, the personal statement is something that you can change right now, so make sure that it is pristine.
- Get everyone to review your application. This is especially true for the personal statement. Send it to as many people as you can – not just the professors / recommenders you are working with, but also counselors, family members, and (especially) peers. In particular, I found it really helpful to get advice from friends who had just applied to and entered grad school, as well as friends who were currently applying to grad school. As for the other parts of the application, such as the CV, I would recommend sending them to just a few people, as there’s not as much wriggle room in them (i.e. your CV is not going to change much).
- Consider if you want to go abroad. The advice in this list is tailored to US programs, but you can always consider places like the UK (e.g. UCL), Canada (e.g. MILA), and Singapore (e.g. NUS). Keep in mind that the processes and programs in other countries may be different. For instance, UK PhD programs tend to be much shorter than US ones. I myself briefly considered going abroad, but decided that immigration would be too much of a hassle.
- Apply to fellowships too. Fellowships like the NSF GRFP provide funding to graduate students and look great on your CV. Some schools also have offices dedicated to helping students apply to such awards. For example, UCI has the Scholarship Opportunities Program.
- Start early. Applying to grad school is a very long and tiring process, and you will need as much time as you can get. Starting early means you have more time to write your essays and get reviews from professors and anyone else helping you. If you’re reading this article a couple months before you would apply, I suppose you’re already on the right track .
- The application process does not end with submit. Sorry, but you’re not done when you hit the submit button on your application. Though applications are typically due in mid-December (with some in late November or early January), expect to be contacted for interviews and visits with professors starting in January. Essentially, before choosing to work with you for the next several years, professors will want to know more about you than they can glean from your application. In general, to prepare for these interviews, I would suggest reviewing the professor’s recent work and making sure you can answer questions about everything on your application, especially research experiences. Of course, make sure to ask if there is anything you should prepare when a professor contacts you.
With that, I hope this list helped clarify some areas of the PhD application process. Good luck, and feel free to leave your thoughts in the comments below! Also, check out these other pieces of advice:
- A Five-Minute Guide to Ph.D. Program Applications – a short article from an assistant professor that gives a sense of what’s at stake
- Advice for applying for graduate science fellowships: NSF, NDSEG, Hertz – fellowships go hand-in-hand with grad school applications