I’m not an academic advisor. Consult what you think is best for your future. This is to be used as a rough guideline based on my experience.

I think this post is valid in this day and age. With admissions to Waterloo CS and SE skyrocketing to 95%+ to be competitive there are a lot of hopefuls (and a lot of very qualified people who unfortunately do not make the cut)

I have had a few high school students come to me and say “I want to go into CS, but I only have a 92% average”. Unfortunately under most circumstances that isn’t enough. Coupled with mark inflation, school adjustment factors, and other unfair circumstances it is hardly an easy or fair process getting into university these days.

I don’t make the admissions requirements and since my time cutoffs have changed drastically. (I had an 84% average in high school to get me in Waterloo Science. I’m not even sure that is enough by today’s standards with my grades, forget even applying for CS. I would later use my university marks to switch into CS)

Firstly I want to say not getting Waterloo CS is not the end all be all. There are other great programs like UBC CS, UofT CS, etc.

Even forgoing those programs since they are almost as competitive there are other universities across Canada such as McMaster, Western, Ryerson, Queen’s, Ottawa, McGill, etc. with software engineering and CS programs comparable to any of the other schools.

Welcome to Rejection

If you are ultimately rejected from your dream program, hopefully you had some back-up options and have some choices. Unfortunately you’re going to hear no at a lot of points in your life with rejection from either jobs, people, and other sources. The answer of no on your application is just a small sliver of the rejections that will occur in your lifetime. I’d say look at the options you have and see what your can decide moving forward.

Job Hunting/Internships

What I think is integral to the success of an undergrad software developer trying to gain experience is job hunting early, often, and continuing to grow at each step. It is much easier to find a full-time job with internship experience as opposed to having no experience. Even small internships can help you tremendously since it builds credibility for a prospective hire.

Even if the first job you have isn’t coding related you can use it to work on the next experience you have. Each step you slowly build up what you have and hopefully move in the right direction.

What are my options?

Here is an assortment of options I thought of if you truly are interested in doing CS.

Switching to Waterloo CS

I don’t particularly like this option (despite me switching into Waterloo CS). There have been a few changes since I switched into CS. It is much harder to switch into, keeping co-op requires even higher marks to do so, and switching universities to Waterloo (if you weren’t already at Waterloo) adds an extra layer of complexity. You need good marks and good extracurriculars to do this. I don’t have experience transferring into CS through the new stricter guidelines. I have heard it requires talking about marks and other side projects that show aptitude for switching. I know a few people who went this route.

That being said, being in CS does not guarantee success. I know many people who got into CS and would later transfer out because they couldn’t transition to learning in university. Some people may view getting into CS as some “gold ticket to success” but it is far from the truth. You still need to put in immense amounts of work in the program to be successful.

Going to another school for CS (UBC, UofT, etc.)

I would argue a lot of schools in Canada have comparable if not better CS programs (UofT, UBC) and some even have their own co-op programs now (UBC). I think co-ops spread out over multiple periods are more valuable than 1 PEY (16 month internship at one company) which is what UofT does, but some work experience is better than nothing.

Regardless of which school you go to you still have to try hard. Just because your school is ranked higher in some Maclean’s ranking doesn’t mean you are automatically better. Most Maclean’s rankings are fake anyways. Google what Maclean’s said is the most innovative university for 26 years running Link.

Honours Math/Minor in CS etc.

What can happen is your dream university may defer you to a more broad and less specialized program. For example Uwaterloo math faculty may give you an offer for “Honours Math” or “Geomatics” instead of Computer Science. Depending on what you actually get it may range from relatively related to completely unrelated. Your mileage can vary based on what you originally wanted and what you actually get defered to.

This is the opposite side of the spectrum where you try to make a CS career from a mix of smaller options like a minor in CS, “related” majors (honours math, stats, etc.), bootcamps, etc. I think this can work out but it requires a bit more work than the other options. Your major in college doesn’t define you, and there are many people who may major in a topic only to work in tech and work on something completely different.

I know people that couldn’t stay in Waterloo CS and chose something comparable like Computational Math or Honours Math as general programs but maintained CS core competencies. They were still able to do great things afterwards by continuing to work hard and putting more personal time into learning for courses that were “CS” specific (OS, algos, etc.)

Final Thoughts

Waterloo CS is a good program. It’s far from perfect (*cough cs245 *cough), but it does prepare you for the real world in a lot of aspects. The job hunting in the co-op program forces you to interview and prepare for the real world. The courses are decent and a mixed bag if you include potential professors and courseware.

At a lot of my co-ops I had other students from universities other than Waterloo. Places like UBC, UofT, Western, US schools, etc. They were able to get the same co-ops as me and in many cases more talented than me. Some people may place importance or prestige in their school/program but some of the most talented people I met went to other schools. I think at the end of the day even people from colleges I have never heard of can do great things. The bottom line is to just work hard and make sure that the program that you are in is something you are passionate about.