Contents
How does sports programming differ from traditional programming, what tasks does it solve, and why does the whole world appreciate Russian coders so much?
About the expert: Andrey Raigorodsky, Doctor of Physical and Mathematical Sciences, Professor at Moscow Institute of Physics and Technology, Director of the ICPC Final in Moscow, Director of the Phystech School of Applied Mathematics and Informatics at Moscow Institute of Physics and Technology.
What is sports programming
Imagine a corridor with an endless row of locked doors. If you turn their discovery into a problem with an algorithm, it will have several solutions.
The classic, “industrial” programmer will be tasked with casting a crowbar that opens as many doors as possible and is cheap to produce. And the task of the sportsman is to understand which master key will crack everything in five minutes. By the way, sports programmers are 70 times less common.
Every year, programmers from all over the world (mainly students) meet in team and individual tournaments. The most prestigious: the oldest of its kind championship ICPC (International Collegiate Programming Contest), Google Code Jam competition, IOI Olympiad.
Of course, no one opens the locks there – they manage with mathematics and writing code. The tasks of the finals are many times more difficult than the example above, and the time is strictly limited. Yes, and in the heat of passion, IT championships sometimes give odds to the Olympic Games.
Features and practical meaning of IT sports
Competitors have something to fight for: not only cash prizes are at stake, but also vacancies in the largest corporations with the highest salaries.
Sports programmers are required not only to solve algorithmic problems, but to do it quickly and optimally. Such skills are not easy: for example, preparing for the ICPC championship requires regular training for 4-5 hours, classes with a personal trainer, participation in training camps and qualifying rounds.
It should not be thought that this is a separate science. The basics of traditional and sports programming are the same, and at first the function of the competitive element is to interest a teenager. Olympiads give motivation to study, allow you to enter universities without exams – and already in universities, programmers acquire more fundamental skills. Among them is the ability to create solutions not for five minutes, but for years to come for the needs of a particular industry.
Olympic experience does not reduce qualifications, but sports skills alone are not enough for a full-fledged career. For many years, MIPT teachers have been relieving Olympiads of their “professional syndrome”: caring only about the speed of the code, students sacrifice universality and resort to dubious “crutches”. And in industrial programs, “crutches” are unacceptable.
Simply put, a programmer must not only “invent like Tesla” but also “sell like Edison.”
What has changed in recent years
Programming is gradually turning into a professional sport. Training has become massive, sponsors have come to the industry: 5–10 years ago it was impossible to imagine the number of circles and training courses now open. The program is constantly becoming more complex: for example, the finalists of the 2010s will no longer be able to repeat their success. On the problems of the finals of past years, beginners are trained today.
Like Olympic sports, modern programming championships are increasingly like “clash of the titans”, where seconds count. But this similarity is only a consequence of higher rates. They are rising because all the largest companies in the industry are closely watching the IT championships.
What the business needs
Every year, career opportunities in the sector are growing. But the point is not that IT giants stand in line for medalists – such a “collection” of champions is simply a matter of principle for them. When training became available to everyone, and the number of Olympiads increased many times over, they ceased to be a piece product and became a market one.
This means that sportsmanship and medals are no longer enough for a career. Business needs not only Teslas, but also Edisons. There are enough of those and others on the market – so the question arises: “what can I do? besides problem solving?”
And then the fate of a specialist is decided by two qualities: soft skills and horizons. The first term combines emotional intelligence, the ability to work in a team, adapt to new tasks. The stereotype “IT specialist means introvert” greatly harms the industry, because the success of development is the success of the team and communication between its members.
A programmer’s outlook is his ability to solve strategic problems. This is knowledge of advanced mathematics, logic and specialized disciplines; it is practical experience; it is an understanding of the processes in the industry where he is employed, whatever that may be. Such an outlook is a product of a comprehensive higher education, and neither the Olympiads nor the now fashionable “educational services” can provide it.
Why is our country not so popular?
For eight years in a row, only students have become ICPC champions – and in 2006, the best universities in the world (Cambridge, Harvard, MIT and dozens of others) were surpassed by the team of Saratov University. The authority of the Russian programming school is unshakable.
The secret of its success lies in the three features of Russian education: coverage, mass character and depth.
The coverage of school programs introduces children to the basics of programming already in grades 5-6 – an early start reinforces the skills “in the core”. Schoolchildren abroad do not study programming at all or start closer to graduation, spending time on the basics.
Mass character guarantees a constant influx of personnel and raises the bar every year. We are talking about those same circles, university courses and sections: their number is only growing over the years.
Finally, not just advanced “coders” are emerging from Russian universities, but generalists. Only in our country there are sites like the Phystech School of the FPMI at the Moscow Institute of Physics and Technology, where students do not choose between “sports” and “industrial” programming. They are taught everything and at once, developing the same horizons. As a result, the same programmers are capable of both winning competitions and developing business solutions. No wonder the demand for them is huge.
What kind of career do ICPC graduates build?
It is generally accepted that champions leave for IT giants almost from award ceremonies. This is not always the case, especially for our countries. Fundamental knowledge and experience allow them to succeed in banks, start-ups, and in their own projects. And someone even becomes a teacher or trainer of the Olympiad movement (in the community of ex-ICPC participants there are more than 300 thousand of the best programmers in the world, many of whom act as mentors for young colleagues).
Athlete programmers are especially valued in the financial sector: stock analytics, algorithmic trading, blockchain platforms. It is there that breakthrough ideas and non-standard thinking of Olympiads come in handy the most.
How to grow a sports programmer?
Top tip: start as early as possible. Best of all – at 11-13 years old. If you fix all the basic terms and methods at this age, then by the senior classes you can take the first competitions, try yourself at youth hackathons. Ideally, attend courses or summer camps from training centers, pick up an intelligent tutor.
The first test is often an Olympiad in Informatics or another competition that gives the right to enter a university without exams. And in universities, the process takes a completely different track: teams will be formed on the basis of training centers, accustomed to a tough training schedule, appoint coaches and fill in the missing knowledge (for example, language: all international championships are held only in English).
In MIPT, such a training center is CRITO – the Center for the Development of IT Education. The center hosts regular training and competitions. Here, experienced coaches prepare teams for participation in international competitions, including ICPC.
Despite all the efforts of specialists, the process of preparing for the Olympiads is a personal matter for every programmer. And a key role in success will be played by his diligence, ingenuity and ability to act in a team.