HACKER Q&A
📣 TheAsprngHacker

I got rejected from Cornell. I want to study PL theory; what to do?


I just got rejected from Cornell.

Throughout my teenage years, I have been in love with PL theory/type theory. I naturally became familiar with the work of professors. I decided that when I grew up, I wanted to be just like them and invent new, novel type systems and contribute to the field. My goal was to go to a good college that was strong in PL theory, where I could meet the professors that I look up to and do research.

My Cornell rejection is a huge wake-up call for me. I had deluded myself into imagining an acceptance. There are only a few schools in the US that do PL theory, and almost all of them are selective (Cornell, UPenn, CMU, etc). There are some less selective schools that do PL research, such as Northeastern, but they may not be ideal in other aspects (e.g. not being strong in math). Cornell is supposed to be the "easiest" of the Ivies. If I couldn't get into Cornell, there's no guarantee that I'll get into my other choices.

Around me, my peers are celebrating getting into Harvard, Dartmouth, Stanford, etc. I don't know what I did wrong. My GPA and standardized test scores are high. Were my essays bad? Other people just don't understand me. If someone wants to study linguistics or economics, people know what that means. But nobody knows what "type theory" is, and "computer science" and "math" are both big-tent labels that encompass many things. The people who helped me edit my essays didn't really understand what I was talking about, either. Most people don't truly know what math is, have never heard of abstract algebra, topology, and category theory, and think that math is just number crunching and don't know what's past calculus. The admissions officers have probably never written a line of code in their lives; how could I explain to them the beauty of the Curry-Howard correspondence and constructive math?

My weak point is my lack of extracurriculars. I haven't done that many activities or won that many awards because I preferred to spend the most of my time learning math at home. These past years, I've been working on my own ML dialect, which features HM type inference, ADTs and pattern matching, etc. I wrote about this in my essay and explained how I wanted to do PL research at Cornell. But as my mom explained, the admissions people don't get this stuff. The work I've done might be impressive, but I don't have any way (e.g. awards or attention) to quantify that to non-programmers. I haven't publicized my language much because it isn't "done" yet, so it doesn't have users. My downfall was expecting that my language would be an impressive activity. My mom explained that a professor might be impressed, but to a layperson, this stuff isn't as impressive as say, a robotics competition, even if my language is actually more technical. If only I could talk to a professor instead; they would surely understand!

I'm scared about my future because the purpose of my life had been to pursue type theory, which requires me to get into a good college as an undergrad, then get into a good grad school. If this doesn't pan out, I don't know what I'll do with my life. I won't be able to stand four years at any random college, where none of the professors know PL theory and there are no PL courses. If I don't get into one of my top choices, I don't know what will be waiting for me once high school ends.

What should I do to make sure that I get into a good college? How would I explain what I want to study to a college admissions officer?

If I don't get into a college that does PL research, how can I get involved in research on my own?

And I need a contingency plan if my plans as a PL theorist don't work out. How can I find something else to devote my life to instead?


  👤 engineerblaze Accepted Answer ✓
This reminds me of when I was your age and bummed about not getting into a great school. Then, when I went to a state school, I learned: there's plenty of programs at less selective schools which do great work. For example, Santosh Nagarakatte at Rutgers, who has a PhD from Upenn and has had PhD students get bronze and gold awards at PLDI for a couple years, and he would be perfect to guide you in your PL Theory journey.

Your undegrad is less important than you think, it is like driving a Civic vs a Ferrari, one is more sexy and might get you there a bit faster, but both will get you there. Just do well in school, make relationships with professors, go to conferences, and keep learning!!! and consider this: there's more qualified people for these great schools than they can expect so that's why a lot of these public schools have an overflow of those smart people who go on to do great work and end up in the same position as the people who go to these selective schools. So, enjoy your undergrad, don't put other people down for "not knowing math", and re-calibrate. For your goals, grad school is what you really want to optimize for.


👤 tjr
I would suggest there are some good language research programs at some other schools that might not be quite as selective. Might be worth applying to, for example, Brown, Northeastern, Indiana University.

If you were to follow a typical bachelor's degree curriculum, you would have to take a bunch of other courses, both CS and non-CS, that have nothing to do with programming languages. So regardless of what school you go to, you might not end up with a lot of PL-specific coursework as an undergraduate. Thus, even a generally good school without a PL research group could still be worth considering, as it may still be a good stepping stone into a more desirable graduate program.

You might even find that you enjoy some other branch of CS just as much as languages and type theory!


👤 sharemywin
You need to find the top 10 people in your field send them your admissions info. Explain your situation and ask for advice. On where to go and how to get into the field. I would have to assume one of them will be impressed and help you get in. And you'll need those relationships anyway.

A lot of places all so have undergrad research projects classes. which would allow you to put some more time in on what you interested in.


👤 TheAsprngHacker
Hmm, why isn't this showing up on Ask HN tab? Someone else submitted an Ask HN right after mine, and that one's showing up on the Ask HN tab.

👤 PaulHoule
At the undergrad level it doesn't matter.

👤 subject4056
It's a little hard to tell from your description, but I will write a response assuming you're interested in studying PL theory as a career, and not just as an undergraduate. If you're interested in studying this area only as part of an undergraduate education, it really doesn't matter where you go since the content of your studies will be unrelated to your career, and you can study w/e you want on your own with very little impact on your future.

If you want a career in academia, DON'T pursue a bachelors from an institution that is at the top of the field you're aiming for. The most important thing you will do during your undergrad is making connections. This can be done more easily at middle of the road schools (where there's less competition and if you look good enough on paper better often better financial support) than at larger, more prestigious ones.

First, you will need close relationships with one or a few professors in the field who can advise (and recommend you) in applying for grad schools; these connections are critical. A useful approach can be to look for conferences/journals where "the professors [you] look up to" present their work and identify other authors (or coauthors) from less-well-known institutions, get in touch with them, and apply to the relevant programs where they work. If that doesn't pan out, go somewhere that (A) you've heard of (B) has a CS or good math program and (C) you beat the average admit stats. A big fish (like, class rank < 10th) in a small pond with good references has a lot better shot at being picked up than an anonymous 80th percentile sea bass.

Once you're in school, do good work, but your job is still to make connections. Cultivate relationships with the relevant professors in your program. Preferably have an advisor/mentor with whom you meet at least couple of times a month. Attend conferences, and once you've got a couple of years of study under your belt see if you can present at them (in many fields there are undergraduate conferences just for this purpose. probably no one with a name you recognize will attend these, but it's good to show you can defend your work to a sophisticated audience). As you get closer to applying to grad school you will want to identify potential advisors (more important than the school), and get in touch with them. It sounds like you've already got some people in mind, but it would be good to develop an understanding of the current state of the field and who's actively moving it forward (former students of Big Name professors are a good source of candidates).

As you observed, it's hard to convey to laypeople your interests and how your work relates to them. It is often not much easier with people who know what you're talking about. Good work is necessary but not sufficient; passion probably isn't even necessary but might help you mitigate the grind. To succeed you need to play the game better than everyone who applies to grad school but doesn't end up with a tenured position.

Alternatively, eschew college, go to lambda school or something and a year from now get paid six figures to sling javascript. Not great advice, but neither is grad school.