Why I transferred from SE to CS
Today, it brings me both joy and sadness to announce that I am transferring from SE to CS. In this blog post, I want to share my reasons for switching and some key lessons learned in the past few years.
Four years ago, I was a clueless 17 year old kid spamming refresh on Waterloo’s admission status page. If you checked my browsing history, you’d find yconic.com and quest.uwaterloo.ca were my most frequently visited sites. I eagerly waited for an admission offer to Waterloo’s Software Engineering program. As you may know, Waterloo SE is one of Canada’s most competitive undergrad programs to get into, alongside McMaster Health Sciences, UofT Engineering Science, etc.
On February 20, 2014, I was admitted into SE. I felt amazing and immediately knew that Waterloo would be my home for the next five years of my life. Although the offer deadline was in June, I literally accepted my offer the same night.
In this blog post, I will present the perceived reasons of why I chose SE and compare them to what I actually experienced in SE.
Disclaimer: these are my personal opinions – your mileage may vary.
- Four years ago, I chose SE over CS. Looking back, it was the optimal decision.
- The cohort and community that SE offered was the highlight of my undergrad.
- Many courses were interesting, but I disliked the engineering requirement courses.
- After 3B, I transferred to CS for the flexibility.
- Summary: The SE cohort made the entire program worth it, as I’ve built so many great relationships. The engineering courses in SE were not worth it for me.
Why I chose SE
All engineering programs at Waterloo are bunched into cohorts, so you share mostly the same schedule with your peers for 5 years. Cohort systems makes it very easy to make new friends, and develop a sense of community.
This is the #1 reason why engineering, math, and CS students choose Waterloo. I’m sure you’ve heard stories about students getting amazing jobs at Google, Apple, etc.
As mentioned earlier, SE is one of the most competitive programs in Canada. People naturally are attracted to this program, simply because it’s so hard to get into. As an individual raised in an Asian family, I’ve heard this same story way too many times: “My friend’s daughter/son is in X program, is doing very well, therefore you should also do X program.”
Or you might have also heard of this one as well: “OMG I have a 97% average, will I get into Waterloo SE?” To be totally honest with you, program prestige was one of the main reasons why I chose SE over other programs.
3b. Influence from parents.
My parents wanted the best for me, and they thought SE would be the best for my future. They were very well aware that SE is a prestigious program, and it would be amazing for their son to attend.
4. The tech industry presented great career opportunities.
The tech sector provides great opportunities and I would be guaranteed a well-paying career after graduation. As a 17 year old kid, it’s hard to know what you want to do for the rest of your life. For some students, software development might actually be their dream career, and that’s awesome for them. However, for the rest of the student population, the actual story is more like “Yeah, I think I would be OK with doing software development. It might not be my primary interest, but I find it interesting and it pays well.”
5. I was good in math, physics, and engineering courses in high school.
Like all SE/CS applicants, we were all very high achieving in academics back in high school. I received high marks in courses like advanced functions, calculus, physics, and chemistry. These high school courses were all relatively easy, as a result, I thought I was interested in these subjects. I thought to myself, “Math, physics, and engineering were interesting in high school, so they should also be OK in university.”
5b. You can become an accredited professional engineer and get an iron ring.
Back then, I was thinking “Woah, that’s cool. I can become a professional engineer as well, that’s like a two-in-one.”
These 5 reasons were what attracted me to SE, with strong emphasis on the first three points. I’d be willing to bet that at least 90% of SE students share most of these sentiments. One point that I didn’t mention was that SE students can easily transfer to CS, whereas the reverse is much more difficult.
Here’s a snippet of my essay response for the AIF.
I would greatly benefit from Software Engineering because it provides a cohort system that encourages teamwork and community. The hands-on training through 6 co-op terms would be an invaluable experience. These two aspects along with the world class education that starts right from day one will serve as stepping stones to my dream.
As you can tell, SE’s cohort was the major selling point for me.
My actual SE experience
As I described earlier, the cohort program was the main reason why I chose SE. Three years later, I can confidently say that the people of SE made everything worth it. If someone asked me, “Why SE?”, I would respond with, “the SE cohort.”
All 125 SE students have the exact same schedule for the 10.5 courses. SE cohorts also have a Facebook group, which is a great place to keep up with relevant academic and social events. We have Messenger group chats where we sometimes discuss serious topics, and occasionally post memes about shawarmas. You feel like you’re actually part of a community in SE.
On the other hand, I’ve noticed in non-cohort programs like CS or Math, it requires more effort to make friends. In CS/Math, there are several lecture sections for a course, so students will be scattered through many different combinations of schedules.
In addition, the cohort system can help SE students with respect to academics. SE students often study and work with other SE students. This could range from asking for help on a lecture concept or assignment question to crowdsourcing final exam solutions. For me personally, academics would definitely be even more of a struggle without my SE peers.
Another good and bad thing about SE cohorts is you’re surrounded by really smart, hardworking people. Everybody in your class was amongst the top students in their respective high schools. This is good because you can learn from very bright individuals and be motivated to work harder. For some students, this could also be negative. For example, in the SE 2021 cohort’s 1A term, the term average was 85.4%. A student could have an 80% term average (which is excellent), and be ranked in the bottom 20% of the class.
The cohort system creates a strong sense of community within SE. This past fall, I hosted a Software Engineering social for all SE cohorts on campus, which over 200 SE students attended! This is just one example of numerous opportunities where SE cohorts of different years can socialize and learn from each other.
I’ve personally learned how valuable having upper year SE mentors is: they have already experienced the things that I will experience, so they can always provide insightful advice. For example, my friends in SE 2018 have spent the last few months applying and interviewing for full time jobs. By observing what they did well and not so well, I can use their experiences to help me prepare. In addition, if there’s a SE upper year or alumni that works at a company I’m interested in, I can get a referral from them and improve my chances.
Finally, to close off the SE community point, the SE department staff are proactive, nice, and very helpful. If you’re ever struggling with something, you can always reach them by walking into the SE office or through email. The SE department’s service to students is second to none. Special shoutouts to Patrick Lam, our awesome SE director! As you can probably tell by now, the SE cohort and community is something that has really made my SE experience so amazing.
Waterloo is best known for its co-op program, and definitely does a great job in marketing it. What most high school students (and their parents) don’t realize is that the co-op program doesn’t guarantee you a job. You have to work hard to get a co-op job, and sometimes that depends on a little bit of luck. You’ll definitely hear about the Google/Apple/Facebook glamorous success stories, but you won’t hear about the nitty-gritty details of getting that co-op job.
SE and CS students typically end up in the same co-op positions. Two years ago, I compiled data of SE 1B vs. CS 1B co-op employment rates. The graph below shows that the SE employment rate was relatively higher than the CS employment rate (more graphs can be found here). Note that this comparison is not apples to apples because there are many more CS students than SE students.
Is being in SE better for co-op prospects than being in CS?
My answer is probably true for the first two co-op terms, and negligible in your upper years. You won’t have better chances just for being in SE, but you will reap some of the benefits listed below that will improve your overall chances.
The SE cohort system helps motivate SE students to work hard and be competitive for co-op applications. When your peers are going to a hackathon or working on a cool side project, you naturally feel pressured to do the same. Though this creates competition amongst students in the cohort, I’ve observed that it’s usually “friendly” competitiveness, rather than a “toxic, selfish” competitiveness. Thankfully, in our industry, there are more opportunities than candidates.
Every term, there is a SE resume critique event, where SE students can receive one on one feedback on their resumes from upper year students. There is usually a co-op panel where upper year SE students share their experiences relating to co-op applications. Crafting a great resume is probably around 50% of the effort in getting a co-op job. This collaborative, cross cohort event is extremely helpful for students seeking their first or second co-op job. In addition, there are events for coffee/lunch chats, which further provides opportunities for SE students to connect and receive mentorship.
When you combine the friendly competitiveness, support from upper years, and a strong work ethic, this usually yields great results for lower year SE students. I would say that being in SE does not make a significant difference for upper year co-op prospects, since CS and SE degrees are practically equivalent from an employer’s perspective. At that point, it really just depends on the individual’s skills and past co-op experiences. For full time job prospects, again, I believe SE and CS are equivalent.
I’ve come to a personal conclusion that prestige is a wrong reason to choose a program. Prestige might sound “sexy” when you initially accept the offer, but it really doesn’t matter once you arrive at university. Don’t accept an offer just because the program is very hard to get in to.
Being in SE doesn’t make you superior to a CS student, or vice versa. Being in SE won’t guarantee you success in co-op or life, you have to work hard just like everybody else and earn it. From all of the full time folks I’ve spoken to, there really is no difference in terms of prestige between a SE and CS degree.
If you come to Waterloo with the mindset that you’re a superior SE student, you’re not going to have a good time. You’ll only worsen the reputation of the SE program as a whole. Admittedly, there were a few cases of this “bragging show-off SE” personality back in the first two months of 1A. Fortunately, people quickly grew up and matured. For the most part, our cohort is quite humble with their accomplishments, and it’s a very good environment to be a part of.
4. The tech industry presented great opportunities.
In the four co-op terms I’ve completed so far, I’ve had a great time working in the tech industry. I’ve had opportunities to work in major tech hubs like Silicon Valley, New York City, and Seattle.
For the foreseeable future, I see myself immersed in the world of tech. Your mileage may vary on this one if tech doesn’t align with your personal interests. Reflecting back on my 17 old self’s aspirations, I’m very pleased with the experiences I’ve had so far.
One thing that I’ve discovered about myself is that software development is not the right career path for me. I much prefer the human and design aspect of tech over the nitty gritty technical aspects. Through completing co-ops in product/program management roles, I’m glad that I’ve found a career that genuinely makes me excited. Having a technical SE/CS background did help me land those opportunities, so choosing SE was a great choice for me. I’ve always wanted to go into the education industry, whether that’s a high school teacher or lecturer role. Who knows. Maybe in the future, I’ll give it a shot.
The point I’m trying to make is that everyone has different interests, and you should pursue the path that makes you happy. Software development and tech is not for everyone. If you can genuinely see yourself in the tech industry, SE or CS both would be excellent choices. If you’re not really interested in tech, I would stress you to really think about what you want: perhaps, SE or CS is not the right program for you.
5. I was good in math, physics, and engineering courses in high school.
This statement is true. I was indeed good in math, physics, and engineering courses in high school. Naturally, I thought SE would offer the perfect combination of courses because I thought I was interested in those subjects. After experiencing courses like ECE 105, ECE 106, ECE 140, ECE 124, and SE 380, I realized that I have little to no interest in the hardware and engineering courses. Though some of these courses had amazing professors, it was the course content that I was not interested in.
In addition, SE students are required to take courses like CHE 102, MSCI 261, SE 463, SE 464, SE 465, and CS 348. The 11 courses listed above are necessary to fulfill our degree requirements, or necessary for SE to become an accredited engineering program. While it’s understandable that CHE 102 is required for accreditation purposes, it has no relevance to us. To be fair, SE 463/464/465 are very relevant to SE students, but I would rather have flexibility to choose alternative courses than take these ones. I should also note that the SE department are actively trying to improve these 3 SE courses.
On the bright side, SE students get to take SE 212, ECE 222, SE 350, CS 247, instead of CS 245, CS 251, CS 350, CS 246, respectively. I’ve observed that these 4 SE course offerings are more interesting and better administered than their CS counterparts. SE 350 (operating systems) was the most interesting and important course I’ve taken in university.
SE students also have to work on a fourth year design project. The return on investment of doing the FYDP really depends on your personality and personal interests. I would consider this to be a neutral aspect of the SE program.
Overall, I had a negative experience with SE’s rigid academic program. If I had a choice, I would not have taken the 11 courses mentioned above. If you think about it, those 11 courses make up two whole academic terms worth of courses that made me unhappy. I would much rather have taken electives that I was actually interested in. It’s worth mentioning that two positive things did come out of those 11 courses. First, it taught me how to overcome adversity and deal with things that I don’t like. Second, the 11 courses built a stronger bond within our cohort.
I also want to comment that SE students typically have a high course workload, especially during 2B and 3B. I think it’s fair to say that the average workload in SE is higher than CS, due to having to take engineering requirement courses instead of electives. Though if you’re in CS, you could potentially have a heavier workload by choosing more difficult electives.
5b. You can become an accredited professional engineer and get an iron ring.
I realized that the utility of being an accredited professional engineer is not that beneficial for SE students. The majority of SE students never pursue this designation. Sure, there may be some SE students whose ambitions include being a professional engineer, but for myself, this wasn’t the case.
6. Switching from SE to CS is easy, but the reverse is difficult.
At the time of writing this post, switching from SE to CS in Waterloo is easy. In my personal experience, it was a very simple process. I set up an appointment with a CS undergraduate advisor to discuss transferring to CS. The advisor looked through my courses and grades, and then determined a mapping to meet CS requirements.
I’ve provided an unofficial mapping of the SE -> CS courses here: Unofficial SE -> Credit Mapping – this spreadsheet does not include 4A or 4B SE courses. You can find the official CS requirement list here. For official inquiries, please contact a CS advisor.
If you’re stuck between choosing SE and CS, a recommendation would be to choose SE, as you can always transfer to CS. The reverse transfer process is very difficult, since SE has very limited space, and you would have to fulfill all the engineering requirements.
With hindsight, I have no regrets choosing SE three years ago – it was definitely the correct choice for me. I met many great people through SE, some of whom are my best friends today. This was evident in one of my first blog posts about orientation week.
“I went to the Software Engineering 101 event and then had a department lunch at Mongolian grill. The food was amazing. The people were even more incredible.”
My statement still stands true regarding the people, but I’ve since changed my mind about the food quality.
I have built incredible relationships with my SE cohort, individuals from other SE cohorts, the SE department, and SE alumni. The people of SE made everything worth it. These people have shaped me into the individual I am today. They’ve motivated me to work hard, stay accountable, and be humble.
I realized in my first term of SE that it wasn’t the right academic program for me. The program was filled with several courses that I didn’t enjoy. I’ve contemplated switching to CS pretty much every term, but I always stayed because I really liked my SE cohort. Over the terms, many of my SE 2019 friends have transferred to CS. Now, all of them seem very happy and fulfilled with their decisions. Note: the attrition rate in SE 2019 is significantly higher than SE 2017/18/20, so transferring to CS is fairly common in my cohort, but not as common in other SE cohorts.
Now that I’ve finished my 3B academic term, arguably the most difficult term in SE, I have decided to transfer to CS. This news might be shocking to some of you, as I’ve been a huge ambassador for the program over the past 3 years.
Why I transferred to CS
After looking through graduation requirements, I realized that if I transferred to CS, I would be able to graduate in 7 academic terms. This opportunity was possible because SE students overload their courses in 2A/2B/3B, and I had an extra French credit from the J’Explore program. As a result, I only needed to take 6 courses to graduate. I have to take STAT 230, an additional CS elective, and complete the depth elective requirement. My timeline in 2018 will be: winter co-op term, 4A school summer term, and convocation in October.
By transferring to CS, I can avoid taking mandatory SE courses that I am not interested in. These include SE 463, ECE 358, ECE ATEs, a societal impact course, and another science elective. Instead, I can take courses that I actually enjoy. Currently, I plan on taking CS 449 (Human-Computer Interaction), three BET (business, entrepreneurship, and technology) courses, and KOR 101 (intro to Korean).
I have a good feeling 4A will be my favourite term in university – it’s also during the summer, which is always nice! There’s a good chance that my schedule will have no classes on Mondays or Fridays. This means I can plan impromptu 4-day trips to places like Banff or Montreal!
In addition, I do not have to do the SE fourth year design project. I find this aspect to be a net positive because there haven’t been any ideas that currently aligned to my interests and goals. If I did want to work on a project, I can always do it by myself, and not have any course dependencies. In 2016-2017, I helped the InternCompass team, so I already have some exposure to the FYDP.
I will be officially transferring to a non-coop Honours Computer Science degree. This means I will skip my last co-op term, which would have been in Fall 2018. I feel like after doing 5 co-op terms, I already have a good idea of what I like, what I don’t like, and where I want to spend the first two years after graduation.
I will likely begin a full-time job immediately after graduation, beginning October 2018. This gives me a 8 month head start in my professional career, and will continue help me out figure out what I like and don’t like. For example, suppose I start working in NYC, and then after 8 months I realize I don’t like the city. I can consider transferring to California, where many of my peers will be when they graduate. I feel like I learn more at work than in school, and I can also make a bigger impact when I’m at work.
Another advantage is having the opportunity to take time off and travel. To be honest, 7 academic terms with 5 co-op terms in between, with no time off is quite an exhausting experience. I haven’t been to China in over 8 years, so I look forward to visiting my family.
My gut feeling tells me to transfer to CS and graduate early. It’s difficult to explain how my mind works, but I feel like this is the right decision for me. I trust my gut feeling in this situation, and I’m confident this is a decision I won’t regret.
While the opportunities listed above sound great, there are some tradeoffs that I’ve deeply considered.
The first risk is missing the social experience of my 4B school term. Many claim that school is a once-in-a-lifetime opportunity and rushing it would be a waste. I can definitely see where this perspective is coming from, but I feel like I would be more happier working than doing my 4B school term. Some 4B students have commented that they experienced “senioritis”, where they just wanted to get out of school and move on with their lives.
I know that I will be missing some of the social experience, but I will also craft new social experiences in my next adventure. I will mitigate some of the missed out 4B social experience by flying back to Waterloo for 1 or 2 major events like GradBall, and my friends’ convocation in June 2019. It definitely won’t be the same experience, but I’ve already accepted that I’m OK with it.
The second risk is having to find and secure a full-time job in the next few months. Some new grad roles have closed their applications already, so the pool of opportunities may be reduced. I can mitigate this risk by performing well during my fifth co-op term at LinkedIn, and potentially getting a full-time return offer.
In writing this blog post, I wanted to provide my personal detailed insights on SE vs. CS. I explained why choosing SE was the right choice for me three years ago, and why transferring to CS is the right choice for me now. I’m not advising you to choose SE or CS, but rather to really think deeply about what you want to get out of a university program. For me personally, it was the people, and not so much the courses.
It’s bittersweet to be leaving SE, but I’m thankful for all of the people I’ve met and the experiences I’ve gained. To close off this post, I’ll leave a quote from Peter Drucker, an influential figure discussed in our SE 390 class. I’m grateful to have the opportunity to shape my future – I’m definitely very bullish about the next chapter of my life.
Photo credits in this post: Tammy Liu