Harbour.Space, a new university in Europe that focuses on data science, recently hosted a training session that is a prerequisite for ACM International Collegiate Programming Contest or (ACM-ICPC). This programming contest is considered the “Olympics of Programming.” The recent contest which was held in September 2016 had 40,266 programmers from 102 countries participating.
Two among the winners have shared their success secrets. One is Kamran Elahian, a founder of a venture capital firm Global Catalyst Partners which is based in Palo Alto. The second one is Michael Levin, a silver medalist of previous ACM ICPC and the Chief Data Scientist at Russia’s leading search engine Yandex.
The secrets that these programmers shared, we will cover in more detail today. Let’s get started!
Invent New Solution
According to Kamran Elahian, there are two ways to solve a problem. One is to use the existing and known methods of solving a problem. The second one is to invent new ways to solve it.
Programming is not like robotics in which you keep on remembering all the connections that work together. In programming, every solution can be developed along the way. If the common approach doesn’t work, go beyond what is common.
Michael Levin strongly suggests teamwork to be a great advantage, especially in any computer science competition. This is because a team that is composed of members with different functions can work more effectively than a team of which members are also competing and dominating one another.
If all members have no defined roles, the most versatile will tend to monopolize the team, and this becomes a one-man game. A programmer may run into an issue where he might ask themselves “What is NullReferenceException?”
Where as someone who deals with application bugs regularly would be able to solve this issue quickly. Thus a team of which members focus on their roles is likely to generate more ideas in no time.
Move from Hard Math to Application
Even technical experts and programmers think of math as purely theoretical. Although math is important in computer programming, it’s not everything. In fact, it’s sometimes the obstacle when it comes to application and practical solutions.
Computer science is not a separate body of mathematics. It uses math, but it’s science within itself. Every programmer should always return to real-life application. If you want to succeed in programming contests or your career, never forget what you are doing is for.
They say that winning is being competitive, and this is partly true; however, winning also means sharing. Industry partnership is important in order to uplift every player. This is why many tech companies nowadays are establishing partnership with universities and research institutions.
Some programming problems are localized. It means it’s not applicable to all, but a problem in one country. To solve some problems like this, it requires the participation of people from where such problems exist or originate.
The bottom line is that it’s best to bring together people from different countries to solve international problems. In this way, you can learn from people from different part of the world.
Programming is not only about numbers and codes as it’s also about life. Whatever secrets in life you have that can make you successful in life will always be relevant to success in programming.
We don’t just formulate some tips as the winners themselves have spoken and shared. This means you don’t have to experiment with something new as all you need is to follow their advice.