That was one hell of a ride. There were happy parts, sad parts, and A LOT of WTF parts. Now that all that is over, I’m writing this post to document the process hoping it will eventually be useful to someone else in a similar situation.
For reference, I did my undergrad in Electrical Engineering at a local university in Vancouver (University of British Columbia), had slightly better than average grades (def. nothing to write home about), took a few CS courses, and wrote a few programs in my spare time, and applied to study computer science at some of the best universities in the world in the field (LOL!).
If you are considering doing a MSc, make sure you are doing it for the right reasons! (ie. not $$)
A MSc degree does not make ANY sense financially. Sure, the starting salary will be higher, but if one started working right after graduation, s/he would have arrived at about the same salary after 2 years anyways, and would have made 2 years of salary instead of 2 years of debt. It’s not like a bachelor degree which can give you a 200-300% salary boost. For MSc it’s more like 10%, if even that.
For me, I want to do this because it’s something I’m very passionate about, and I’m genuinely curious and want to do more exploration in this field.
Going to grad school was a bit of an impromptu decision for me, so I didn’t really do any preparation beforehand. I decided to start applying in October, and the earliest deadlines were in December, meaning I had 2 months to research all the schools, research how application processes work, get all the letters of references, write the GRE, fill out all the applications, and write all the admission essays. Not an easy task! Grad school applications were pretty much the only thing on my mind for those 2 months. Would NOT do it again!
1. Researching Schools
I knew exactly what I wanted to study – artificial intelligence, so choosing the schools wasn’t very difficult. I pretty much just applied to the 3 best schools in that field in the world that has the kind of program I was looking for – a taught MSc program. Probably would have been a good idea to apply for more, but hey, I had 2 months!
Most people know the difference between PhD and masters, but if you are going for masters, it’s good to know that there are 2 types of masters – taught and research. Some schools have 1, some have the other, and some allow you to do a combination. And some, like MIT, don’t have a masters program at all.
In a taught program, it’s basically just going to classes and work on projects just like in undergrad , except courses are much more specialized, and there is usually a very big project leading to a thesis, with minimal research requirement, whereas in a research program, one would typically work with one professor for the duration of the program, on one project.
Which one is better is obviously a personal decision. For me it’s a taught program because I am interested in quite a few things in the field, and just want to get a nice foundation of knowledge on which I can build on myself.
The schools I picked were Stanford, Imperial College London, and Georgia Tech.
Stanford has probably the best AI program in North America.
ICL is one of the 2 most highly regarded technology-focused universities in Europe (the other being ETH Zurich in Switzerland), with a very strong focus on AI.
Georgia Tech is lesser known compared to the first two, but their CS department is also known for their research in the field.
Many people pick schools based on “prestige” and brand name, but I would recommend against doing that, since no school has the best department in every single field, and some of the best departments in some fields are in less-known universities.
Sure, a big brand name may help with job applications, but chances are, if you can get into one of those top universities, you won’t have any trouble finding jobs you like anyways.
For example, Harvard also has a CS department, and I’m sure it’s decent, but it’s not quite on the same level as the likes of MIT, Stanford, or UC Berkeley, and is probably harder to get into just because of the Harvard name.
In hindsight, it was a little risky and I should have picked some less competitive schools, too… but hey, *spoiler alert* it worked out!
Notes on UK:
I also want to write a bit about universities in the UK since I did quite a bit of research into that, and for some reason people from North America don’t tend to go to the UK for some reason, even though they have some of the best universities in the world, too.
The biggest difference between US Master’s programs and UK ones is probably that the UK ones only take 1 year (12 months), instead of 2 years (16 months) in the US.
UK programs are also a little cheaper, but the $$ difference is actually quite a bit more than the number would suggest – because there is 4 months of opportunity cost, too. If you are an engineer who works at a place where engineering salary is high (like the Silicon Valley), it’s possible to make up most/all of the tuition (~24000 pounds, or $40K USD) in 4 months salary, so after 16 months, you are in more or less the same financial situation as before you started, whereas if you go for a US masters, you’d be pretty heavily in debt after the same 16 months.
However, for some reason, North Americans don’t really know British universities too well. Most people have heard of Cambridge and Oxford, and that’s about it.
For example, ICL is very highly regarded in Europe, and is about as competitive as Ivy League schools in the US, with a CS overall grad admission rate of 11%. It’s also consistently ranked between 5th to 10th in the world both overall and in CS/Engineering, if that’s any indication. Yet, it’s still relatively unknown in North America.
I really wanted to apply to Cambridge, too, because of their really cool colleges system… plus wouldn’t it be cool to study computer science at the same school as Alan Turing? And a few random guys like Sir Issac Newton, Stephen Hawking, and Charles Darwin? Too bad their program wasn’t really what I was looking for. 🙁 🙁 🙁
So if you care about brand recognition, you’ll probably want to stay in the US. Otherwise, UK opens a few doors, too, and is a little more affordable.
I heard UBristol, UEdinburgh, UWarwick, and UGlasgow also have good computer science departments, but I didn’t have time to look into them :(. Honestly, with so many good schools in the UK, you probably can’t go wrong with any of the top few.
2. Application Forms
After deciding which schools to apply for, the next step is to fill out those forms on their sites. It looks like most American universities use the ApplyWeb system, and most European universities use the Embark system, so it’s pretty convenient. They are both online application systems, and both allow you to keep track of multiple applications.
Some of the forms are incredibly long (Stanford’s epic 15 pages), but this is the easiest part of the application process.
Most of it is just typing in grades, personal information that you won’t be sure if they are even allowed to ask for legally, etc.
Not much room for creativity here. Just all facts. Well, except for the Stanford one that wants you to write a bunch of mini essays…
3. Reference Letters
Most school requires 2 or 3 reference letters, and they usually all need to be from professors, with at most 1 (preferably 0) writer from the industry.
This I found to be the most stressful part of the whole process. I knew 2 professors pretty well – 1 hired me for a co-op term and I designed a big and complicated system for him, and the other I did my capstone project with. So I had to ask another professor that I didn’t know very well to write the third one. Sucky, but hey.
They were all very helpful and agreed to write it, but they are also incredibly busy people and writing a good reference letter does take quite a bit of time, so you’ll just have to keep reminding them. I thought it was rude initially, but turned out professors actually find it helpful, because they do forget this kind of things once in a while when they are really busy.
They also tried to convince me to stay at UBC, and one of them informally offered me a position in his lab! I was absolutely flattered, but had to turn it down because I really want to go somewhere else, having stayed in Vancouver for more than a decade.
It’s good etiquette to ask at least 6 weeks in advance, though I found that they wouldn’t start till 2 days before the deadline anyways… in the best case. Apparently LOR deadlines are routinely missed, and schools understand that, too, so even though they say the LOR deadline is the same day as the deadline for the rest of the application, from what I heard, most would still accept LORs couple weeks late, since it’s more or less out of the student’s control, and it happens all the time.
Still stressful, though, when you have a prof that eagarly agreed to write the letter for you 6 weeks before the deadline, and then just silence.
3 weeks, send a reminder email. 2 week. 1 week. 3 days. No reply. No nothing.
And then the day before the deadline, finally a reply saying he just submitted it.
Most American schools require a standardized test, the GRE. It’s a 3 parts test – math, vocabulary/reading comprehension, and writing 2 analytical essays.
I know some people spend months preparing for it and writing it multiple times to get the best possible score. I didn’t quite have time for that. I pretty much just winged it, and it turned out OK.
The math section is very easy. Just high school level stuff. Simple geometry, simple algebra, etc. No calculus. No trig. Though it’s very easy to make careless mistakes. I got full marks on this section.
The vocab/reading section is a little more difficult for me. A lot of exotic words that no one ever uses in real life. I know some people use apps to prepare for it – maybe there is like a list of words you should know or something? I fail to see how knowing exotic words is relevant for a computing degree, and evidently admission committees think the same way, too (see below). I did pretty well in this section also, 160/170, with almost no preparation at all.
The analysis/essay section is also pretty easy, as long as you’ve seen a few sample questions and responses. They basically just want you to write those essays like a machine, in a very specific way. No creativity or actual analytical thinking skill expected or required.
There is a paper written by someone on the Stanford CS admission committee that includes how they look at GRE scores.
Essentially boils down to don’t care about anything other than the math section (since many of their applicants are international and not native English speakers), and they do expect everyone to have very high math scores. It’s a necessary but not sufficient condition.
5. Statement of Purpose
All the schools will also require you to write an essay. The essay is SUPPOSED to be about why you want to study in that program.
In reality, no one treats it like that. If they did, all the essays would be pretty much identical.
Most people write them like cover letters – thinly disguised bragging, trying to convince them why you are the best candidate, etc.
It’s not very difficult, but it’s hard to keep it short, and it’s definitely a good idea to sit on it for a few weeks, and ask people to read over it for you (thanks Anna! the best editor I could have ever hoped for!). There were a lot of things that my awesome editor found that I would have never thought of. And a lot of dumb things I wrote that I didn’t realize until someone pointed it out to me.
(6. English Proficiency Test)
Most schools require applicants to take English proficiency tests, though that’s usually waived if you have a first degree from a university where English is the primary language of instruction, which is the case for me, so I don’t know much about those tests.
7. The Wait
They say anticipation is the worst, but I didn’t really find that to be the case.
For me, those 2 months of applications were the worst, and I was so happy to send those applications in so I don’t have to worry about them anymore, and being able to un-pause the rest of my life. In the end it almost felt like I just don’t care anymore… preparing 3 applications from scratch in 2 months does that to you.
When the results come really depends on the school. Most American schools seem to make their decisions around end of March.
I didn’t really think about grad school much back in my undergrad years, so I YOLO’ed it for the most part, just taking random courses I found interesting, worked on personal projects, and spent an ungodly amount of time making robots, and just doing all kinds of random things from playing chess online all night to getting a pilot license… much to the detriment of my grades. I did have reasonably good grades in the end because I actually enjoyed the stuff, but they were definitely far from the best they could be, and were definitely on the low side for top programs – not so low that they will just throw my application out of the window, but probably low enough to have a negative impact.
So I was pretty nervous, and kicking myself for not applying to less competitive schools as backup… what if I didn’t get into any school? Honestly, in that case, I probably would have given up the idea of masters, just because I don’t want to go through all the pain of the applications again.
For me the first decision came at the beginning of February – I got an offer from Imperial College, which was my second choice!
I was really stoked, since I’ve always wanted to live in Europe for a year or 2, and well, ICL is a pretty good university with an awesome program as well. I was a little surprised, too, to be honest.
They have a CS grad admission rate of 11%, and since they are one of the best CS schools in Europe, I’m sure they do get a lot of very strong applicants (even people that eventually got into Cambridge probably applied to ICL too as backup).
And they actually gave me an offer – someone that has almost 0 formal CS background, 0 academic research in CS, mediocre grades in an unrelated field, with just a few pet projects and some professional development experience. Whoa! Thanks guys!
Unfortunately I didn’t get accepted at Stanford and Georgia Tech.
Didn’t have very high hope for Stanford, but it’s still sucky. It’s known to be a very practical school (like ICL), so I was hoping my practical experience would be enough. Though I’m definitely a risky case, and I guess they just didn’t want to take the risk.
Georgia Tech was a little surprising even though I didn’t really care anymore (decided on going to ICL already after the Stanford rejection), since I’m pretty sure it’s less competitive than ICL.
Though on their rejection letter they mentioned they had over 1700 applicants for less than 130 seats this year, which works out to be around 7.6% admission rate. So I felt slightly better. I’m sure they do get a lot of very strong applicants, too, and I’m sure there are quite a few people with experiences similar to mine, in addition to a CS degree, and it’s very hard for me to compete with them.
But I’m not going to think about that anymore, or do more speculating. There’s nothing I can change now, and it’s very easy to over-generalize in this kind of situations, and draw false conclusions.
But hey, their loss! (jk, probably their gain :P)
It has been a pretty rough and hectic process (don’t do this in 2 months, people!), but in the end, everything turned out OK, and I’m quite pleased with the result, and am very excited by what lies ahead for me.
It was definitely a very close cut, and it seems like my life is really just a string of very fortunate events.
So it looks like I will be spending a year in London starting in October! I have always wanted to visit London, with all the museums and music (Royal Albert Hall is literally across the street from ICL!!!!), and now I have a good excuse to not only visit, but live there for 1 whole year!
… Ok fine there is one thing I’m not excited about – the rent. London is THE most expensive place to live on Earth, and ICL is right in the middle of downtown London, with no on-campus accomodation… we’ll see what happens. At least it’s only for 1 year?