5 Career Benefits of Competitive Programming
Maxim Buzdalov, one of the authors of the How to Win Coding Competitions: Secrets of Champions course, once took last place in a city-wide computer science competition. He was able to turn his story into a triumph after joining his university’s coding team and becoming an ACM International Collegiate Programming Contest (ACM ICPC) champion! Today, Maxim is an associate professor and chair of computer technologies at ITMO University.
Below, he shares his experiences from participating in and training for coding contests and highlights the top benefits of competitive programming when it comes to finding career success.
1. Makes you a desirable candidate to major companies
Participation in the ACM International Collegiate Programming Contest (ACM ICPC) is a great opportunity to be seen by Apple, Facebook, Google, IBM and many other authorities in the IT sphere. These major companies are constantly keeping track of these type of events and the participants to find talented employees. Why do they care about the ACM ICPC? Because it is the largest student programming contest in the world! Globally, this competition is considered the most prestigious and includes elite young programmers. In the past, companies such as Apple, AT&T and Microsoft have sponsored the contest. And, today, the contest’s main sponsor is IBM, who will often extend a job offer to the winners.
At this point in my career, I am tutoring learners and not taking part in any contests, but I still receive job offers. Even though I am not looking to join the corporate world, once a year, Google checks in to see if I am interested in working with them! However, I am truly focused on my work with ITMO and the students I teach.
2. Makes you faster and more focused
Training and taking part in programming contests make you more a more disciplined, faster and focused coder.
In the competition, you must solve problems in stressful situations and do it up against a deadline or you will lose. Taking part in competitive programming teaches you how to be more focused on the task and not only complete it quickly, but accurately. These skills are highly beneficial for any job, not just in coding.
I strongly advise you to not only take this course if you are interested in participating in a programming contest, but also to learn how to train yourself to be a better coder. Before my team won the ACM ICPC, for three and a half years, we spent up to 8 hours a week solving problems. Practicing is everything!
3. Helps you solve complicated problems
During the ACM ICPC, you must solve difficult tasks, which are not for ordinary programmers. While you are training, you learn how to solve these out of the ordinary tasks. This helps prepare you for a job because you can adapt and solve various types of problems, in various types of situations.
4. Teaches you how to work in teams
This is a very important skill, as most jobs will require you at some point to work in a team. Competitive programming helps you learn how to effectively work together, as you must work with others on your team to complete the same task. You learn how to assess your team members’ strength and weaknesses and effectively divide responsibilities between each other.
Additionally, each team has a leader, whether at the ACM ICPC or within an office. If you are in the management role within a team, then knowing how to motivate and organize your team members is key. For example, at the ACM ICPC, it is even important to arrange your team’s chairs in the right order to make sure you can work comfortably and effectively as a team.
5. Training and participation helps you prepare for a career in coding
It is not out of the ordinary to receive job offers from companies immediately after participating in a coding competition.
Participating in a coding competition is something you should absolutely highlight on your resume. As previously stated, having experience in competitive programming shows employers you can work in a team, solve complicated problems, work in stressful situations, manage time and deadlines and minimize errors. It also shows you are a disciplined, focused and fast, which are all indispensable skills.
Training for coding competitions is a great experience for all programmers.
Last updated: February 2019