University selection guide for aspiring programmers
University selection plays a pivotal role in shaping your career during the initial years following graduation. It'll dictate everything from the choice of employers you will have to how much money you make post graduation. Done right, it can give you the necessary boost to successfully launch your career. Done wrong, you can face a lot of issues getting your foot into the software development industry. This is a lesson I learnt the hard way and so thought to share it with whoever is currently in this dilemma .
My story goes like this. During high school, I decided to pursue my university education in Canada. So I went to an education fair held by Study In Canada and spoke to reps from different universities. It was indeed helpful. I understood what the admission criterion was, and what student life looked like in Canadian universities. However, as I look back now, I think that the university reps were basically painting a rosy picture of their universities without focusing on important facets – like career prospects, internship and placement opportunities for their students etc. After some thought, I ended up applying to about 8 Universities based on some objective measures like tuition, student teacher ratio etc. and the subjective measure of how much I liked the reps. I did not apply to the certain universities where I should have applied . I either did not evaluate them correctly or I thought I was not good enough to get in. In short – "Big mistake".
So in 2001 I ended up in University Of New Brunswick (UNB) in maritime Canada. I was pretty happy with it for the first few months for following reasons:
- This University was a really good place to study and learn.
- The teacher student ratio was reasonable.
- The professors actually cared if you were learning and eager to help.
- The office staff was friendly and facilities were all in all very nice.
However, as the summer started approaching, my satisfaction curve began to dip. There were stories floating around of how hard it is to find a good internship in this part of the country. It was said, only a lucky few gets an internship. Most of the students just got retail positions to make some pocket change in the summer break. Finally, the internship job board was opened to the students and I started looking for interesting opportunities. My goal was to land in a position with reputable engineering firm like Nortel, Bell Canada, Intel, General Electric, IBM Canada etc. To my surprise, I found none of my target companies were recruiting at UNB. Most of the engineering jobs were maintenance type positions at local refineries, power plants or paper mills. At this point I realized that UNB was a great place to learn and do research. But if I want a corporate career, I have to move somewhere else.
The problem was not the university. It’s just that the province of New Brunswick (and nearby maritime provinces) did not have the type of industry I was interested to work in. So after busting my butt off and getting the highest GPA in my class, I ended up transferring to University of Toronto (UofT). Did I like University Of Toronto more than UNB ? No I DIDN'T. It was big and impersonal. But it did provide me the right platform to launch my career because of its reputation and industry affiliations. (Microsoft recruited me on campus from University Of Toronto).
Note: If you plan to go into professional studies like medicine or law , it might be more advantageous to stay at a smaller university like UNB. It will be much easier to get a higher GPA because of less competition and better recommendations as professors will probably know you personally. For getting admission to law or medicine, your GPA and recommendations matters much more than industry connections.
So, if I were to do this all over again, there are couple of questions I’d pay very close attention to, especially when selecting a mid-range school.
1. Ask for placement records and employment stats upfront from the university representative: It has been my experience that Universities with poor placement records tend not to publish these numbers. Admissions office conveniently tries to avoid the question with other facts like faculty credentials/reputation etc. But do try and insist on getting this data. If the admission office is unwilling or unable to provide this information – DO NOT GO THERE !!! You should ask for certain specific things, namely :
- List of companies that has recruited for internship and full time position.
- Percentage of students securing internship through the university career office.
- Percentage of students who had a job offer before graduation or within three months from graduation.
- Median starting salary for internship and full time positions.
Most college career offices keep track of this data. If they don’t, they should and should be able to provide this on probing.
2. Ensure that the University has a Co-Op program (internship program): One of the hardest thing you’you will ever have to do in your life is to find that first job in your chosen career path. It’s a chicken and egg story. You cannot get a job without experience and you cannot get experience without having a job. That’s why most reputable Universities have an extensive Co-Op or internship program to ensure that their students are ready for the industry upon graduation. In case you can’t land on an internship during your college years, it’it will might be very difficult for you to find a good engineering position upon graduation. So try to choose an University with an excellent internship program and make sure you try your best to score an internship from your first year of college.
A quick note to folks from India – In India there is this notion among many parents that the student should “only” study during their college years. So you might face resistance from your parents signing up for an internship program which runs 4-16 months in length. But try explaining them that things work very differently in US and Canada. An internship in your field is very critical for launching your career upon graduation.
3. Try to get into a college close to a big city: This is almost a no-brainer. Big City = More Industries = More Opportunity. I made the mistake of choosing a very nice and remote place thinking that I can study in peace without the distractions or horrible commute. It did not work very well. So if you have a choice between a mid-range university in a big city vs a slightly more reputable university in a remote place, choose the one in the big city. I once spoke to a recruiter from IBM Toronto. He explicitly said that sending employees down to far off places for interviewing candidates is expensive and inconvenient. In most cases, his department likes to stick to Toronto, Ottawa and Montreal for recruitment purposes !!!
4. Relevancy of Curriculum: Even before you enter a particular program, you should have a clear picture of whether you want to research or you want to work as a developer in the industry. If you want to be a researcher, you should pick a University that has a strong reputation for research and graduate/doctorate programs. If you want to be a developer, you should look into jobsite like Workopolis.com or monster.com – find out what skills are in demand for Software developers. Then you should carefully evaluate if the program you’re selecting adequately prepares you for those skills. A mistake I made in selecting University Of Toronto was that it’s mainly geared for folks who want to do advanced research. So a lot of the concepts taught in class are quite abstract. If I were to choose a university again, I’d probably choose University of Waterloo, which has a more practical curriculum geared towards folks who want to join the industry right after graduation.
5. Talk to Current students: This is another critical piece. I only started talking to students in UNB after I got there. That’s when I came to know about the lack of internship opportunities. Had I done this before, I’d probably have made a different choice. The International student office / registrar’s office should be able to give you the contact info for a few student volunteers you can talk to prior to accepting the admission offer. Ask them about how they feel about the University’s placement services and general employment stats in the area.
Finally, Reputation trumps everything: If you get a chance to study in a very reputed and elite university, take it. I had instances when some of my fellow interviewers were more willing to overlook mistakes from a student at MIT than a mistake from someone in a lesser known University. The guy at MIT was hired over the person from the less reputable university though (in my opinion) the interview performance was more or less similar for both. So you get the picture – your college's reputation can tilt the balance in your favor when everything else is equal ! Hence study hard and get the best grades and SAT scores, such that you can make it to one of the best software engineering/ computer science programs.
If you have any questions about your specific situation, please don’t hesitate to ask questions in the comments section or send me an email at [email protected].
All the Best !