Feel like you don’t belong at UWaterloo Computer Science/Software Engineering? Here’s why you do

Over the past few days, we’ve seen a lot of discussion around mental health and stress on Facebook, the UWaterloo subreddit, etc. To add to that, I’d like to focus on one common cause of stress and anxiety — a feeling of not belonging and being left behind, aka imposter syndrome.

UW’s math, engineering and CS circles are super competitive. You don’t need me to tell you that.

It’s very easy to get lost in all of that, and start to question your own self-worth. As it turns out, a lot of people vastly underestimate their own relative chops and competence.

There’s a lot to be said on this topic. Let’s start with debunking some co-op myths.

It’s okay to not have a job in first round.

You’re in 1B. You hear about your friends interviewing (and in some cases, getting offers) at the likes of Google, Yelp, and Bloomberg. You check WaterlooWorks, and still have very few (or no) interviews from your 76 apps.

Turns out, it’s totally normal to not have a job in first round.

Look at the chart below from 2015 that shows the employed % of first year CS/SE classes as their 1B term progressed. I’m using 2015 numbers since that was the last year CECA published those numbers. (First round match day was just before March 5 that term — hence the sharp increase on that day).

Grey line denotes first round match day. Stats credit: CECA for publishing, Bo Peng for compiling

Around half of all SE/CS students found a job in first round. The rest found them in continuous round — and by the end of May (not shown in the graph, since those numbers weren’t posted publicly), the SE 1B class was at 95% employed (source).

Anecdotally, even people with no developer experience were able to land good developer jobs. The path there isn’t smooth, but there is a path.

Okay, now you’re relieved about this term. But what about the next few terms? You wonder if your terrible luck is going to persist throughout your career.

Thankfully, it won’t. The mere fact that you’re here, in Canada’s best computer science program, makes it hard to be left behind.

That’s probably not convincing enough, so let’s talk about some concrete examples. I know two people in my class who got zero interviews in first round back when they were in 1B. This term (3A), they both got great West Coast offers, including one from a well-known tech giant. I also know a current 4B student who wasn’t able to find a job in 1B, but is now heading to work at Facebook full-time.

These examples are everywhere. None of these people admitted to doing anything beyond the usual; their chances just improved over time.

But anecdotes aren’t as powerful as statistics. Let’s look at those next. In particular, let’s look at one metric that’s often perceived as an indicator of how good a job is — location.

US jobs are the exception, not the norm, until 3B

Turns out, most SE classes don’t hit majority US coops until 3B. And even then, it caps at around 66% — so a significant chunk of the class (around a third) is always in Canada.

I know that US doesn’t necessarily imply better (I tackle that perception head-on in the next section). But a lot of people perceive it that way, so it’s an important metric to graph.

It’s totally normal to work in a less-than-ideal job for now. Your chances should get better as time passes. There’s a reason why every CS and SE class beyond second year has a 100% employment rate (not including people who opt out of the co-op term to travel, or for personal reasons, etc).

If you’re curious for a more detailed location breakdown, here you go:

Toronto is the centre of the universe, after all. At least in the first half of the program.

Cali-or-bust isn’t a great idea.

So there’s the cali-or-bust meme that often goes around on Reddit. It’s hard to gauge how many people fall into it, but from speaking to first years and looking at application numbers for California/US jobs, it seems like there are a lot of people who do.

There’s just one issue with that. Location doesn’t always indicate how exciting a job is, or how good of a stepping stone it is to future jobs.

Coincidentally, I’ve always ended up in Toronto for all of my co-ops so far. In hindsight, I always made the right choice; I picked the best jobs to apply to, and the offer that would boost my career the most. Those jobs always ended up being in Toronto.

And if other people are cali-or-busting (or more generally, US-or-busting) while you aren’t, it just means lower competition for some amazing Canadian jobs. And there are many of them (NOTE: this isn’t a complete list).

Yes, California is pretty amazing. The weather is nice, and there’s a lot to do in and around SF/LA. But it’s not perfect either. No place is. This Reddit thread has a detailed discussion on the pros-and-cons of working in the Bay area. Any major Canadian city blows San Francisco out of the water on crime, cleanliness, public transit, and living expenses (though you do tend to earn a lot more in the Bay area).

A lot of people I know vastly prefer Seattle and New York to the Bay Area. Many others prefer Toronto, Montreal and/or Vancouver. And yes, many people absolutely love California and would rather not live anywhere else. It’s all about personal preference.

Now that we’re done with the cali-or-bust meme, let’s move on to another meme — side projects.

Everyone wants to do side projects, almost no one finishes them.

Chances are, you’ve been told that having good completed side projects on your resume is the 🔑 to getting great jobs. And it’s true. Side projects do give you a huge step up: especially when you have no other technical work experience to count on.

But finishing side projects isn’t easy. If you’ve ever attempted one, you know what I mean.

Thankfully, incomplete side projects still matter to recruiters/employers. And working on small prototype-style side projects is a great way to learn a new language or framework or technology. Hackathons are a great setting for prototyping quickly in a short amount of time.

Your app doesn’t need 1000+ active users. Of course, it’s great if it does have them. But the learning aspect is most important.

And what if you have zero motivation to do side projects? That’s fine, too. Your progress up the ladder might be slower, but you’ll still get there.

Not every kick-ass developer enjoys coding day and night.

Go join a campus club, or just pick up a hobby. Maybe even mention your hobby on your resume (I’ve seen many people do it and it works better than you’d expect!). As long as you’re doing something you like, your resume will write itself.

As far as technical expertise goes, it’s entirely possible to progress in your career solely through co-op jobs. I’ve seen many people go on to work at the likes of Facebook and Google despite having zero side projects. And once you have a few co-op terms under your belt, your simple Android app from last year won’t matter compared to your multiple 4-month coops anyway.

I no longer have any side projects on my resume, since they’re all incomplete prototypes (at best) that pale in comparison to my work experiences. My 1B resume had some side projects (mostly from hackathons), but my 3A one doesn’t.

Grades matter less than you think

Just like most resumes, I’ve left the academics section for the end. Yes, really: Grades don’t matter in the grand scheme of things — as long as you pass. And retaking failed courses is fine — it doesn’t make you any less of a person. It’s a very common path to take. The SE director tells me that 25% of current 4B SE students have failed a course in their undergrad career.

You were probably in the top 10% of your high school class. That’s why you’re here. You’ve probably never seen failure till you got to university. And UW is filled with people like you.

You may not do well on MATH135 or MATH138 or ECE124, and that’s fine — these are hard courses. Every year, many people need a second attempt at passing these courses. It’s why the winter offering of Math135 has a dozen sections and so much more instructor/TA support than the fall offering. And the point of these courses isn’t to fail you. It’s to ensure that you really understand university math well so you can succeed at what follows.

Your parents may not like it when they see your marks. That’s because they haven’t gone to Waterloo. And if your friends are judgemental about marks/failing: they clearly haven’t spent enough time here yet.

You made it here. You can get through.

SE admission stats over the past three years

Getting into UW CS and SE is harder than it ever was. And you passed that milestone. We’ve seen a >2x increase in applications between 2014 and 2016 alone — and the trend shows no sign of declining.

Not that long ago, you were picked from a pool of really smart people. The admission committee took a hard look at your marks, extracurriculars, AIF, etc — and decided that you were a better fit at Waterloo than 1000+ others.

Everything you’ve done so far, is an achievement in itself. Surviving through Waterloo’s challenging programs is also an achievement. Don’t let anyone else — yourself included — tell you otherwise.

Special thanks to Patrick Lam, Director of Software Engineering, for contributing stats and for editing this article.