Monday, August 11, 2008

CS Grad School Part 1: Deciding to Apply

As a result of talking to various people (/undergraduate seniors) who are figuring out what to do with their lives, I have made the arbitrary, unilateral decision that I will write a series of blog posts at you about how, why, where, etc. etc. etc. I applied to grad school.

Some more reliable resources. When I was applying I found it helpful to hear what other people who had applied had to say.
  • Professor Harchol at CMU has a famous talk about who should apply to grad school, what to expect, etc. It is good to read for any undergraduate who thinks they might be interested in an academic career.
  • Philip Guo, a grad student at Stanford, has a nice overview of what it means to be a graduate student, apply to graduate school, etc. He also discusses the application process.)

About me: I completed my undergraduate education in computer science at Harvard June 2008 and this fall (2008) I am starting a graduate program at MIT. I am interested in programming languages and compilers. My academic advisor was Prof. Margo Seltzer, my research advisor was Prof. Greg Morrisett.

DISCLAIMER: I may not have applied to grad school for the right reasons, but thus far I am happy. I may be happy because I have yet to begin my graduate program, but I can't predict the future and I have free time now, so...

Why I applied: Ever since I was a tiny Jean, I knew I wanted to do something when I grew up. Why this? Doing something was better than doing nothing, and committing myself to doing something didn't lock me down to a thing I might not like. Because of my short attention span, my one requirement was that the something was interesting. Sometime in early in my undergraduate career, this requirement alone led me to study computer science. Sometime later, the poor Boston climate contributed to the development of my goal to live in California. These two life requirements alone led me to spend a summer working at Google in Santa Monica. This was one of the more defining experiences of my life.

At Google, I realized the following, in order of importance:
  1. I love California,
  2. I love Google,
  3. I am interested in making the world a better place by working on programming languages and tools, and
  4. I should try to go to graduate school.
How I came to realize 1 is obvious. I loved Google because it was efficient, had badass programming tools, and because it had a very academic atmosphere where people were curious and loved what they worked on. I realized 3 because there were many times when I became frustrated with the current state of the art and had many discussions with my coworkers about it. (3 had been a developing passion for much of my life.) I realized 4 because my coworkers, most of whom had either gone to grad school and finished or gone to grad school and dropped out, all seemed to be of the opinion that graduate school was the place to go--and you can always drop out if you want to. These realizations, combined with my discovery that there was pretty awesome programming languages research going on at UC Berkeley, led me to develop the goal that I should continually apply to UC Berkeley until I was accepted, at which point I would drop everything and attend.

My decisions to apply to grad school and to apply to grad school right away (instead of working and then applying) were motivated by the following things:
  1. For my interests in programming languages/tools, academia seems like a better place than grad school for doing exciting innovation. In industry, very few places get to spend a lot of time innovating their tools.
  2. I didn't really want to spend the Rest of My Life working and doing the same thing day after day. Academia seems like a much more exciting place to be.
  3. I had grown up pretty much at Carnegie Mellon University around a lot of CS grad students. Since that was all I knew, I probably figured I would become one someday.
  4. GRE scores last for five years, so I figured I would take them while I was still in school.
  5. I was in a good point in my life where I had professors who still remembered my name and a registrar's office still had a copy of my transcript with easy access. I figured that applying to grad school would at least get me to get these materials together.
My decision of which graduate schools to apply to was motivated by the following:
  1. Because of my love of California and because of the cool research at Berkeley, I applied to UC Berkeley.
  2. For similar reasons, I applied to Stanford.
  3. Because MIT is cool, I applied to MIT.
  4. Because CMU, Penn, and UW do cool languages research, I applied there as well. This was mostly because my advisor, Greg Morrisett, said it was a good idea. I tried to tell him that all I really wanted to do was to go to California, but he said I might change my mind once I visited the schools. (He was partially correct, but then again in any useful system that is the best you can do.)
I didn't apply anywhere else because these were the schools where I would consider going rather than going to Google. (I had a full-time offer from Google at the time I applied.) I didn't apply to any other companies because I was pretty happy with Google.

For reference, you may want to look at the US New rankings. The "top 4" CS grad schools are generally acknowledged to be MIT, Berkeley, Stanford, and CMU. UW follows just afterward, and then other schools (like UPenn) are known to be very good in specific subject areas. If you are very sure what you want to do, then it is good to go somewhere known to be good in that area, but if you are less certain it is better to go somewhere more generally good.

This is one of my "applying to grad school" blog posts.
  1. Deciding to Apply
  2. Standardized Tests
  3. Fellowships
  4. Applications
  5. School Visits
  6. Some notes on picking grad schools/advisors
  7. FAQ: Applying to Graduate School for Computer Science
You may also be interested in these blog posts I have written:

1 comment:

HandsakerA6 said...

This is been all the way good initiative plan which will almost lead an individual candidate to be able to write a good statement of purpose and will also help in highlighting some important guidelines. doctoral statement of purpose