Tara Safavi researcher and writer

My story and advice about doing undergraduate research and choosing between a PhD and industry

18 May 2018
Tags: cs-research  advice  grad-school  personal  opinion  phd 

An undergrad in my lab recently asked me why I chose to do a PhD instead of going into industry. I often get questions of this nature. I’ve even served on three “why’d you go into research?” panels in the past year. Inspired by these recurring questions, I’ve decided to finally consolidate my thoughts on the topic into one post, which I’ll continue to update as I discuss with others.

An overview is as follows:

  1. I review the somewhat accidental path that led me to a PhD.
  2. I share advice I’ve given to undergraduates in the past about pursuing CS research and/or a PhD.

Disclaimer: My advice is by no means comprehensive or definitive. I welcome questions about, and disagreement with, my opinions. Also, note that when I say “industry”, I’m mostly referring to software engineering jobs. Of course there’s more you can do in industry with a CS degree, but software engineering is one of the most common immediate outcomes, if not the most common.

Regarding careers after a PhD, it is perfectly possible to go into industry—actually most CS PhDs do—including roles in software engineering, management, and industry research labs (a PhD is usually required for the latter). However, I won’t discuss the topic of post-PhD careers here. Maybe I’ll write about it on my blog when it becomes more personally relevant. For now, you can read our related paper for an academic perspective if you’re interested.

My story

How I started CS research

I joined my current research lab in the second semester of my junior year. During that semester I was not as busy as usual and really just wanted something to do. Maybe this isn’t a good thing to say, but I wasn’t actually that interested in the research my group was doing. In fact, all ongoing CS research at Michigan seemed about the same level of (un)interesting to me.

During the first weeks of my “research” experience, I did and understood very little. Fortunately, my adviser Danai soon included me in a project by having me use my existing operating systems knowledge. I felt useful, which was nice, and as I got involved, I actually began to see the beauty and difficulty of the problems we were addressing. I got excited. One night I stayed up drawing furiously on a whiteboard. I emerged the next morning with an idea, which in the next month became (semi-)coherent through discussion and experimentation. Eventually my work became part of a research paper. For the first time in college, I felt complete ownership over my ideas and writing.

I was hooked!

Why I continued CS research

After all of the above, I did a software engineering internship at Microsoft and came back unsure of my future. Microsoft’s work-life balance, pay, and location were ideal. On the other hand, I knew that research fit my personality and preferences better for these reasons:

  1. Freedom. My favorite part about research has always been the freedom to pursue problems I consider worthwhile. It’s not that I think all software engineering problems in industry are boring, but these projects are motivated by business needs, no matter what individuals say to the contrary. I don’t always like thinking in the “monetization” box, and I don’t have to as a researcher. As long as I can convince people that the problems I’m solving are important, I can research whatever I want.
  2. A good adviser is hard to find. Fortunately or unfortunately, the quality of a research experience is highly dependent on the people around you. The most important of these people is your adviser. Luckily – totally by accident – I landed a good adviser who took me seriously even when I was an inexperienced undergrad. Rather than her telling me what to do, we traded ideas and hypotheses. We still do.
  3. The “now or never” argument. A mentor told me that if I eventually wanted a PhD, which I did, I might as well get it now. If you go into industry, he said, you’ll find it hard to come back. Existing data support his claim: we found in our own paper on CS research careers that people rarely leave industry for academia. I assume this is due in part to the difficulty of giving up an industry salary once you get used to it.

Long story short, after talking to a lot of other people—PhD graduates, those who decided against or quit a PhD, those who recently started a PhD, and those who were currently applying to PhD programs—I decided to stay in school. I don’t think I’ve ever made a big decision I was completely sure about, and this was no exception. I still occasionally wish I’d made a different choice, especially during moments of self-doubt or isolation, or even when I’m just missing the view of Mount Rainier. That said, I’ve never doubted the necessity of a PhD for my long-term goal of being able to do (fairly) autonomous research. This, as I explain below, makes it worth it.

My advice

Note: In this section I don’t discuss how to put together a strong graduate school application. I’ll probably write about this separately some other time.

Starting CS research

Here’s the advice I usually give about getting involved in CS research:

Continuing to a CS PhD

Here are my final observations – general guidelines, because of course there are exceptions to every rule – about the tradeoffs of getting a CS PhD versus going directly into industry:

comments powered by Disqus