Undergrad to PhD, or not - advice for undergrads interested in research
A career devoted to computer science research is (or has been thus far) pretty darn exciting, filled with hours reading academic papers, hours debugging poorly written research code (frequently that you poorly wrote yourself,) and hours re-writing papers in which you try to explain your ideas, which you think are great but for some reason can’t explain why. In such a career, you also get to (must) devote a few hours each year to travel for research-sponsored conferences, chatting with brilliant people, seeing new cities, hopefully eating street food from said cities.
With some frequency, I’m approached by undergraduates who are curious about research life, curious about whether they should don the Google spinny hat this summer or spend it as a research assistant at a university, curious about whether (and how to) apply to PhD programs. In this note, I compile some of the advice I’ve given students about how to decide whether a PhD might be a good option, and how to prepare to apply for PhD programs. There are great resources already out there on this topic, some of which I’ll link here.
However, having just gone through the process, and still feeling much like an undergraduate myself, I’ll attempt to add to the conversation by speaking directly to students interested in computer science research, and even more directly to those interested in some artificial intelligence subfield, hence being able to speak directly from recent experience.
I can’t afford a PhD
tl;dr you can.
It is a common misconception that one “can’t afford” a PhD. In engineering fields, and computer science in particular, PhDs at respectable schools are fully funded. This means you won’t pay a dime of tuition, you get health benefits, and you get a (modest) living stipend (read: paycheck) to pay rent, eat food, and generally survive. A PhD can be seen as a job in which your deliverables are units of research – conference papers, journal papers, invited talks, the like – and you take classes as part of the job training.
I’m not smart enough for a PhD
tl;dr don’t be so sure
PhDs are great for bright people who creatively and passionately attack problems with no known solution; they enjoy following potentially dead ends and discussing their work with other bright people who like doing the same things. These people do not necessarily get stellar grades, ace coding interviews, or pick up content as fast as their peers. Succeeding in research involves overlapping but distinct skills to succeeding as an undergraduate.
Personal note – I was considering dropping out of CS my freshman year because I wasn’t smart enough, especially at math. Here’s my spring semester transcript:
I ended up realizing I really loved learning about a specific research topic in CS, and that rekindled my love for learning in the rest of the field. My grades picked up, but I was never top of my class. Don’t count yourself out.
Is a PhD for me?
There is a copious body of opinion articles on the internet about this, with objectivities ranging the whole gamut from biased-and-impassioned to biased-and-very-impassioned. So, here I’ll just try to guide your self-searching.
- Talk to people in and out of academia who care about you! This means professors, grad students, friends of yours who have taken internships or graduated and work in industry. Ask them about what they like and don’t like about their jobs, what their days are like.
- Try to get experience in a “traditional” job in your field, as well as experience in research, before you decide.
- Consider whether you are passionate about the field you’re considering for a PhD. These degrees are not races to see who is smartest, who can finish the problem set fastest. The problem sets have no answers; they have no questions. You have to love the topic enough to come up with the questions, want to know the answers, and chase after them so that you can tell others.
- The more data you have, the better a decision you’ll make, so start thinking about this early. You came into college thinking you’d get a job (gosh I hope you thought that) but you probably weren’t 100% sure which. So, as you ponder your future, keep a PhD as one of your options.
- Learn a bit about the day-to-day life of researchers in your field, and what people tend to do with PhDs. In AI, life looks like reading academic papers, writing code, attending meetings – not 0% overlap with traditional software engineering. In AI, PhDs tend to work as scientists in a big industry lab like Facebook AI or Amazon AI, or some startup, or (least usually) as a professor.
What can I do to prepare for a PhD (okay, specifically for the applications)?
PhD programs are looking for folks who can do research.
Unlike MS programs, they’re not looking for the grade- or test-smartest applicants, who will succeed in classes, pay tuition, and go on to get nice industry jobs.
If tuition at your school is about $40,000, and you pay your PhD students $32,000$ per year, and there are $10,000$ per year in related fees and the like, then it might cost $410,000 to train a PhD student. Schools, and professors more directly, are making an investment in you. That investment pays off if you (1) publish papers, (2) graduate, (3) make excellent contributions to your field. Your job as a PhD applicant is to convince schools that by accepting (hiring) you, they’re making a good investment.
My advice below is for students who are at least committed to seeking out whether a PhD is for them, to prepare them to be a competitive applicant if they end up deciding to apply.
As a freshman
It’s awesome that you’re already thinking about research! Chat with your professors about what they do. They’re probably experts in some very particular field. Seek out professors from the school’s website – the ones whose interests get you excited just from the summary. Dinner discussions are a great way to do this. These events are when nerdy student organizations invite professors to chat with students about their research over some nice catered dinner. Free food, free ideas. Or, well, included in tuition.
Check to see if your university has underclassman funding for research. One such excellent program ahem is PURM at the University of Pennsylvania.
Attend hackathons, attend research talks, try to learn as early as possible what you might be passionate about. Don’t worry that you may not feel qualified to contribute in these fields. You’ll grow a lot just by seeking out chances to learn, and contribute in minor ways.
- Talk to professors about their research; explore and learn.
- Consider spending your summer doing research at your university, but don’t feel required to.
- Focus on your coursework.
As a sophomore
It’s time to really start thinking about what kind of work you enjoy doing. What classes have you liked? Are there opportunities to get involved in local companies, or in local research? Again, focus on learning; you have a lot to learn. However, bug professors about how you might get involved in their labs. You have a few classes under your belt, so use that to your advantage.
Keep seeking out university funding, as well as National Science Foundation-sponsored Research Experience for Undergraduates programs, but also consider that professors have money and may be able to fund you.
- Try to spend this upcoming summer doing research or at an internship. Just like internships have recruiting timeframes, summer research positions do as well – just informally. I’d suggest reaching out to professors first late your fall semester, and then again early spring semester (no later than February.) Likewise, funding programs often have due dates sometime around February, and can require letters of recommendation, so start early.
- Consider taking reduced courseloads (as long as they let you graduate on time) that permit time for you to work on research throughout the year.
As a junior
Time to make your decision on how you’ll focus. If you’re set to research, try to spend this whole academic year devoting a few hours per week officially working for a professor. Better yet, work for 1 professor as a research assistant, and work for another professor as an independent study student. That way, you get money from one professor, and course credit from another. This will also help you get good letters of recommendation.
Keep in mind, however, that it is better in general to build a strong relationship with a professor than to work briefly with many. While you need three letters of recommendation, it is extremely useful to have one professor advocate who can guide you through the process and speak at length to your abilities in research.
This upcoming summer, here’s one quick tip on deciding what to do: if you know 3 professors who can write you letters of recommendation for your PhD because you’ve done research with them, excellent; go work in industry and get some perspective. If this is not true, consider working in research over the summer. Want more people for letters of recommendation but don’t want to snub the prof you’ve been working for? Suggest collaboration (especially interdisciplinary collaboration) with another professor who excites you.
- Think about whether you know three professors who can write letters of recommendation; if not, work with more people.
- Do research alongside your coursework
- Take the GRE the summer before your senior year.
- Talk to your potential recommenders and start to compile a list of schools you’ll apply to.
As a senior
I don’t have a ton of advice for seniors – the internet holds a lot of resources on how to go about the application process itself, so briefly:
In August and September, write your Personal Statement. This is a misnomer – it’s really a research statement: how has the work you’ve done so far been impactful? What is your vision for the work you’ll do during your PhD?
Also consider applying for the NSF GRFP and NDSEG.
Contact your recommenders in August, and give them the recommendation deadlines for all your schools and fellowships.