It's funny how it all worked out.
When I was applying to graduate school back in the fall of 2006, I had only a vague sense of what my research interests might be. I hadn't done research as an undergraduate, which was a big strike against me in my applications. The closest thing I had was a somewhat-independent project, which I thought I could make sound kind of like research, if I spun it right in my application essays. The project had been database-related, and so I decided that I could make the best case for myself by writing about database theory as my potential research area. I could make the things I'd done in my jobs since graduation sound kind of database-related, too, and tie the essays together around that theme.
It worked reasonably well. When I go back and read what I wrote in those essays, I'm kind of surprised -- I honestly do manage to sound like I really care about database research.
I think that I must have known, latently, that programming languages was what I really wanted to study, but I wouldn't have been able to articulate that at the time. In fact, I think that part of the reason I wouldn't have been able to articulate it was that it didn't occur to me that such a thing needed to be articulated. Studying PL, I thought, was the essence of the study of computation. And studying the nature of computation itself was so obviously the fundamental act of computer science that it needed no discussion. That was what computer science was, wasn't it? It was what all computer scientists did, by definition -- wasn't it? I couldn't possibly write about that in my essays. Saying that I was interested in studying PL in my application to CS grad school would be like applying to law school and saying, "Well, I'm really interested in the law."
Or so I thought in 2006.
So, I wrote my essays without even mentioning the phrase "programming languages". I didn't specifically seek out schools that had a good PL group. I didn't think to apply to CMU, Northeastern, Penn -- all schools that seem like obvious choices now. It honestly never occurred to me that any place that called itself a computer science department might not be a good place to study PL.
But I also didn't particularly seek out schools that had a strong database research group, because my heart wasn't really in that. Instead, my approach was to Google various phrases from the essays I was writing, see which people and which schools came up, poke around their websites, and then organize those people and schools in order of preference based on how much their websites gave me a warm and fuzzy feeling.
Therefore, the set of schools I ended up applying to were the ones that happened to be well-represented on Google in late 2006 for things that seemed database-theory-ish but also had the warm and fuzzy feeling of being about, well, whatever that thing was that I really liked but couldn't articulate -- the thing that I'm now pretty sure must have been PL. Then, since I knew I liked living in Portland, I rather closed-mindedly took the set difference of those and any schools that were in places that seemed not enough like Portland. This eliminated pretty much the entire east coast, as well as various other cities that seemed too hot or too bike-unfriendly. I was left with an extremely short list: Stanford, the University of Washington, and Indiana University.
There was also UC San Diego, which made the list because Joseph Goguen's website, especially stuff like this, was giving me the warmest warm fuzzies of all. But he was only one person in the department, and midway through my UCSD application, I learned that he had died five months previously. I despaired for a few days, then wrote to someone else in the department, who encouraged me to apply anyway. I did so, halfheartedly, and didn't get in, which was understandable; "halfhearted" probably isn't what any school looks for in their graduate program applicants.
I tried my best on all of the other applications, but I probably never had a chance at Stanford or UW; "no research experience" is definitely not what they look for. And so that left IU.
Maybe my letter writers knew something I hadn't realized about how IU was a good fit for me, and it showed in the recommendations they had written me. For whatever reason, the chair of the IU admissions committee was on the phone with me within ten days. I was offered five years of guaranteed funding, which I was allowed to keep even though I then deferred admission for a year. And that's how I more or less accidentally ended up with a pretty great funding situation at a school that happens to have a pretty strong programming languages group. I'd love to be able to say that I planned all of this; that IU was a carefully considered choice; that I had lots of offers to choose from, but came to IU specifically to study programming languages, write a lot of Scheme, and sing in a great choir in a world-class music school on the side. It would probably be to my benefit to let people believe that, but it would be dishonest. Those things were all a happy accident. I didn't seek them out, mostly because it didn't occur to me to that they might need to be sought out. I was very foolish in 2006. I didn't know enough about the world to realize that those things are not necessarily the precise things that all people -- or even all computer science graduate students -- are seeking. I was naive, and I was lucky.
What I've learned, I guess, is this: you can never assume that you know someone based on what they aren't talking about. You can't assume that they don't care about whatever it is they're not mentioning. Maybe they don't talk about it because they care so much that they can't imagine someone not caring.
What if this is a major source of misunderstanding in the world? What if we could all actually make the world better, just by being more explicit about whatever it is that we care about?