This is my last day of University life 😱. My 5 years spent in University of Waterloo in the Computer Science program has been a pretty amazing experience overall. Today, I’m just going to share and reflect on my undergrad experiences in this blog post.
Things that I accomplished:
- Received scholarship from Microsoft and got invited to awards ceremony
- Developed internal tools for traders at TD Securities
- Contributed to development and launched YouTube Gaming
- Wrote YouTube Gaming’s online community
- Helped launch Pinterest’s object detection model
- Contributed to development and launched Pinterest Lens
- Contributed to a paper which was accepted to WWW 2017
- Did undergrad research for two semesters
- Accepted Pinterest’s full-time offer
- Have a patent pending
- Explored a number of outdoor activities during my time in California
- Travelled to more than 10 countries
Things that I tried:
- A startup called Inspector when I was living in Velocity
- ACM North American Qualifier Contest
- Forming a band
How I Achieved My Accomplishments:
There’s no secret here: you just have to be intrinsically motivated and be able to learn from mistakes. “The only real mistake is the one from which we learn nothing”.
It sounds easy, but often it’s hard to achieve in practice. I find it especially hard when I’m studying while all my friends are enjoying life 😝. Studying is boring. But when it comes down to achieving your goals, here are the things that I used to guide my decisions:
1) What kind of person do you want to be when you graduate?
2) What qualifications do you need in order to be that type of person?
3) How are you going to meet the qualifications?
4) What progress do you need to make every week/month/quarter in order to accomplish that?
5) What do you want? What do you have? What can you give up?
My advice is to start thinking about these questions thoroughly, make practical plans, and stick your plan to somewhere visible to keep you motivated. University is not like pre-school. There is nobody holding your hand and guiding you forward. I feel especially strong about this. I got educated in China until middle of Grade 10. The Chinese education style was that the teachers would feed you with everything you need, and all you need to do is digest. You don’t need motivation. You don’t need guidance. It’s totally opposite here in the universities in North America. It’s totally up to you what you want to do and what kind of person you want to be. Be motivated and passionate about what you do. As Albert Einstein famously said, “I have no special talents. I am only passionately curious”.
Learn From Failures — Things That I Tried:
This is probably the most influential event that happened during my university life which totally changed my ambition, attitude, and desire. One ordinary morning in my 2A term, I woke up lazily as usual. I checked my mailbox in bed and saw an email from Google which I thought to be an ad or spam. I almost ignored it, but lucky enough I did not delete it, and later found that it was an interview notice from Google.
I was like,
This email included a short video introducing Googlers’ life, which was so amazing: California, sunshine, Googleplex, endless free food, cool projects, perks… Everything seemed ever so appealing to me. They provided me with a whole bunch of resources, including a book called Programming Interviews Exposed (it was in 2013, I think Cracking the Code Interview is more popular now), places to practice interview skills (TopCoder, Project Euler; I also recommend Leetcode and Hackerrank), and they compiled a document of data structures and algorithms that I should review (or preview). They had detailed descriptions about their recruitment process and suggestions on how to ace the interview (blogs, past interns’ advice, etc). Reading these documents was exciting but also overwhelming, because I was not prepared at all. I had no ambition to work in Silicon Valley in my first year of University, and my dream was probably be an office lady in a tall glass wall building. They also held an invitation-only interview prep session (so you don’t have to line up!) to get us fully informed and prepared. I could strongly feel that they really wanted us to succeed, and they were trying their best to help us. Darn it, I want this job!!
So I walked in the interview room in my best suit (don’t laugh, I know it looks silly — people never wear suits to a tech interview). Facing two of the smartest people in the world, I find myself surprisingly not pressured at all because the interviewers were super casual in the way they talked and… dressed. They were the kind of people that I wished to work with every day.
When I walked out, the interviewer kindly said to me, “You’re still young”. At that very moment, I knew exactly what I wanted to do for life. I wanted to get a job in the Silicon Valley. I wanted to be surrounded by top engineers just like my interviewers. I wanted to develop something that is really cool and influential.
Lesson: Opportunity is not always there. When it comes, you have to be prepared.
I’ve seen many people be like “oh I wouldn’t worry about x until y happens”. This is bad. You need to be always prepared. Luck comes unexpectedly. When it comes, it doesn’t wait for you. You need to have the ability to grab it and embrace it. It is hard to cram for interviews because interviews involve problem solving and critical thinking skills which are impossible to learn in a few days. Here are my tips to getting prepared:
- Do contests even if you know that you’re not going to win anything. I’ve received Microsoft’s scholarship from doing contests, and I also got reached out by companies including Dropbox from my ACM ranking.
- Do Hackathons even if you know that you’re not going to win anything. It is not the result that matters, it’s the experience. Only few people get awards. But I’ve met so many awesome people and learned so much from my sleepless nights (it’s bad for your skin though /(ㄒoㄒ)/~~)
- Do side projects even if you are not going to finish them. Incomplete side projects still matter to employers because most employers care that you have a passion towards something and you are putting your time into it. Working on small side projects is a great way to learn new frameworks/technologies.
- Attempt URAs even if you don’t have 80% average. This is a great chance to interact with your favorite professors to potentially get a reference letter if you’re thinking about grad school. Having an 80% average is not absolutely necessary to get a URA position at UW. As long as you show particular passion and prove your abilities to the professor, you’ll still likely get the project.
In the summer of 2016, I attempted a startup with 3 other awesome engineers. I was living at Velocity that term, and I got a lot of help and support that I needed. The key to our failure was vision. My teammates were my good friends. They were there because they wanted to help me rather than the project itself. Not long after, our opinions on the project started to diverge. Our vision was not entirely agreed by every member. The leader was not decisive enough. No surprise, it failed.
Lesson: You should always do your startup with a team which share the same vision. They don’t have to be your friends.
Professor Noam Wasserman from Harvard Business School has once conducted a study with 10,000 founders of technology and life science startups, and found that the least stable founding teams were friends. Each friendship in a founding team increased the rate of founder turnover by 28.6%. Teams of strangers were a lot more likely to stick together. Everyone has different interests. When it comes down to deal with your friends, you are a lot more likely to consider your friend’s feelings and make reluctant agreements. Unnecessary agreements lead to bad decisions. A successful startup is made of an awesome team, not a group of awesome individuals.
Lesson: A startup needs a dictator
Here’s another reason why you probably should not do your startup with friends. A startup needs a dictator who is able to make rules. People might hate him/her, but we need this person. Most people hail democracy. “The world ain’t all sunshine and rainbows. Someone will stand up and take the opportunity, while you keep ‘discussing’”. A democracy does what majority of the people want, instead of what is best for the people. Directives must be clear and absolute. When a decision is to be made, there are people who you should not consider. For example, when you are making a marketing decision, you should not consult the engineers. If your goal is to keep everyone happy, then your startup will die for sure. If your goal is to succeed in your startup, then some people will certainly be unhappy. In my experience, we implemented democracy, and it was proven to be a failure. We discussed everything including both development and marketing in front of everyone involved, and we were not able to make mutual agreements. It sounds easy — but it’s hard to implement when you have a small size of team and you need to isolate one or two people out — especially when they are your friends!
Overall, I’m pretty satisfied with my university life. I am super grateful to those people who made my life truly awesome and memorable. Remember to plan early, get to know senior students, and ask for advice. Hope everyone will have a blast in their university life. Stay humble, live passionately, try what you like, and never fear failing! I’ll end my post with one of my favorite quotes:
Special thanks to Rudi Chen, Michael Tu, David Wang, Shine Wang (displayed in alphabetical order) for comments and suggestions