A competitive advantage in school, work and life
Left to right: Professors Eric Harley and Isaac Woungang, along with computer science undergraduate students Robin Nash and Tony Huynh.
“I had no coding experience when I arrived at Ryerson in 2016,” says 2021 computer science graduate Tony Huynh. “Today, I’m working at Amazon as a software engineer. Coding contests were helpful for getting this position and give me an advantage in the workplace.”
A former member of the Ryerson Competitive Programming Club (RCPC), Huynh began attending International Collegiate Programming Contests (ICPC) in his second year. At ICPC—the oldest, largest and most prestigious programming contest in the world—teams of three students representing their university work to solve real-world problems. In preparation and also throughout the contest, they hone their collaboration, critical thinking and performance skills.
Huynh had never heard of competitive programming as a first-year student. He learned about it when he joined the club with friend Cory Austin ’21, who also had no previous coding experience and has also landed at Amazon. A strong math student, Huynh initially considered accounting for his career but switched to computer science because he found it more creative.
Entirely student led, the programming club runs its own weekly contests. Usually, one of the senior members sets up a problem and challenges the group to solve it. Students who love problem-solving find the challenges fun and engaging—as social as they are intellectual.
Now entering second year in the computer science program, Robin Nash is one of those students. Unlike Huynh, they took programming in high school and ran its computer club. They also participated in competitions and enjoy solving problems in their spare time. In fact, Nash doesn’t really differentiate between “fun” and “competitive.”
“I love the contests,” Nash says. “They’re all about working through puzzles. And while they’re competitive, which injects a lot of energy into the challenges, there’s also nothing to lose. Competitions feel like practice to me, only you compete in teams, so you get to know others and learn how to work together. You also get to see how good your team is compared to other schools. Personally, I know I’m not the best there is. But I’m good.”
While the programming club is student led, Ryerson teams entering the ICPC require a coach to attend. Computer science professors Eric Harley and Isaac Woungang provide functional support and accompany students to Windsor where the regional contests are usually held. In typical years, about a hundred teams from over 50 institutions in east central Canada and the United States attend the Windsor regional. High-scoring regional teams move on to the regional championships and then, if they qualify, the world finals.
Harley notes that Ryerson’s best placings over the years have been in the low 20s of those hundred or so teams. Neither he nor the students view their final standing as their most valuable achievement.
“I recall some of our drives to Windsor,” says Harley. “On the way there, students would discuss possible problems and approaches to solutions. On the way back, they would debrief what they did—what worked and where they got stuck. There’s no doubt the competitions build their problem-solving and communication skills as well as programming aptitude. Later on, it’s an advantage in job interviews to have competition experience, and candidates are often given problems to solve during the hiring process. These students will be good at it.”
Unlike other universities, where only the top computer science students are selected to attend the ICPC, most members of the RCPC who want to participate can. The club’s relatively flat structure means that the best opportunities for growth and challenge are not reserved for only a select few.
Then first-year student Nash benefited from that structure and experienced firsthand all the rewards of preparing for and attending the ICPC, even though online this past year.
“It was all teamwork,” Nash says. “During the competition, we worked over Discord, first deciding who would take the lead on which questions and then reporting back throughout our progress. And of course, leaning on each other for help when we needed it. With the pandemic, it was a strange ICPC year and a hard year to start university—not being on campus, not meeting new people in all the usual places. But I made friends, had fun, and felt like part of a community.”
Both Huynh and Austin are certain that ICPC experience opens doors to the big tech companies.
“I think that’s why we both got interviews,” says Huynh. “You don’t have to win the ICPC to be an attractive candidate. Cory and I have the programming and the social skills that are in demand. We also have the self-awareness and the confidence that come from thinking, working and collaborating under pressure. Maybe most of all, we’re tenacious. Programming is hard and it can take time to find the right solutions. It feels great to stick with a problem, solve it, and know that you really earned it.”
If Huynh has one message for current computer science students, it’s this: “There’s a place for everyone in competitive programming. Don’t hesitate to step forward and join the programming club. All are welcome.”