Championnat de programmation ACM icpc. Les étudiants russes ont remporté le Championnat du monde de programmation ICPC. Igor Levitin, assistant du président de la Fédération de Russie

La finale du Championnat du monde de programmation ACM-ICPC 2017 a eu lieu le 24 mai à Rapid City (USA). L'équipe de l'Institut scientifique et de recherche de Saint-Pétersbourg est devenue la championne absolue. université de recherche technologies de l'information, mécanique et optique (SPbNIU ITMO), qui a résolu 10 problèmes sur 12 plus rapidement que ses adversaires. L'université de Saint-Pétersbourg a établi un nouveau record dans l'histoire du concours : pour la septième fois, les équipes de l'Université ITMO sont devenues gagnantes, ce qu'aucune autre université au monde n'a jamais réalisé.

Et qui sont nos héros ?

L'équipe gagnante était composée de trois étudiants du Département de technologie informatique, Vladimir Smykalov, Ivan Belonogov et Ilya Zban. L'entraîneur-chef de l'équipe était professeur agrégé du département la technologie informatique, candidat sciences techniques Andrei Stankevich, qui a reçu l'année dernière le prix ACM ICPC Senior Coach Award pour avoir atteint la finale de la compétition pendant 15 ans.

Parmi les médaillés d'or de l'ACM-ICPC 2017 figurent l'Université d'État de Saint-Pétersbourg (lauréate de l'année dernière), les universités de Varsovie et de Séoul. Les médailles d'argent de l'ACM-ICPC 2017 ont été décernées aux équipes de l'Université Fudan, de l'Université de Pékin, de l'Université Xinhua et du MIPT. Les représentants de l'Université de Tokyo, de l'Institut royal suédois de technologie, de l'Université fédérale de l'Oural et de l'Institut coréen de technologie avancée ont remporté le bronze.

Au total, 133 équipes de toutes les régions du monde ont participé cette année à la finale de l'ACM-ICPC 2017. Le concours lui-même a eu lieu pour la 41e fois.

Aujourd'hui, à 18h00, heure de Moscou, la finale du concours mondial de programmeurs le plus prestigieux - ACM ICPC - débutera dans la ville américaine de Rapid City. Nous invitons tout le monde à voir cet événement. en direct (la diffusion en direct débutera à 17h00, heure de Moscou) et soutiendra l'équipe de l'Université ITMO, l'un des favoris du championnat. Ci-dessous, nous vous expliquerons comment les équipes du monde entier se sont préparées pour la finale, ainsi que les pronostics de victoire.

Quelques faits

  • Les programmes sportifs attirent chaque année plus de participants que jeux olympiques– cette année, 46 381 personnes de 103 pays participent aux compétitions ACM ICPC, tandis que 11 544 athlètes (4 fois moins) ont participé aux Jeux olympiques d'été de Rio à toutes les étapes.
  • L'intérêt pour le concours augmente chaque année. Comme le note Vladimir Parfenov, directeur de la demi-finale régionale du championnat ACM ICPC en Russie et en Europe du Nord-Est, doyen de la Faculté des technologies de l'information et de programmation de l'Université ITMO, en 2004, 8 000 programmeurs ont participé à l'ACM ICPC. championnat du monde (y compris les phases de qualification régionales), en 2016 – déjà plus de 40 000.
  • Les universités russes sont depuis longtemps établies en tant que leaders du championnat - nos équipes sont devenues 11 fois championnes absolues de l'ACM ICPC. Parmi celles-ci, les équipes de l'Université ITMO ont remporté le championnat à 6 reprises – et c'est un record du monde (en 2017, l'Université ITMO se bat pour le titre de septuple champion du monde).
  • Le nombre de participants russes est resté élevé pendant de nombreuses années : en 2004, 2 100 programmeurs russes ont participé à toutes les étapes du championnat, en 2016, leur nombre était déjà passé à 3 400.
  • Le format du championnat ACM ICPC est considéré non seulement comme l'un des plus réussis, mais aussi l'un des plus difficiles : chaque équipe n'utilise qu'un seul ordinateur et doit résoudre autant de problèmes que possible en peu de temps. Pour cette raison, le championnat impose des exigences accrues non seulement en termes de créativité, de connaissance des algorithmes et du matériel, mais également en termes de capacité à répartir les rôles et à travailler en équipe.
Je dirais qu'il est possible de réussir des concours jusqu'à un certain niveau, en n'ayant que des connaissances de la première catégorie [connaissances en mathématiques, algorithmes, langage de programmation]. Cependant, les connaissances de la deuxième catégorie [compréhension des tactiques correctes, compétences pour une allocation compétente des ressources] simplifient grandement la vie et fonctionnent comme un catalyseur. Comme dans tout sport : il y a les compétences physiques, et puis il y a les connaissances technologiques, psychologiques, etc. Vous ne pouvez réussir que grâce au premier, mais le second agira comme un catalyseur

– Pavel Krotkov, diplômé de la Faculté des technologies de l'information et de programmation de l'Université ITMO, participant et organisateur de nombreux concours de programmation en Russie et à l'étranger, dont ACM ICPC NEERC

  • À propos, depuis octobre de l'année dernière, Pavel et ses collègues - Maxim Buzdalov, champion de l'ACM ICPC 2009 et Daria Yakovleva, entrée dans le top dix du concours international de programmation Google Code Jam for Women en 2016 - enseignent le cours. « Comment gagner des concours de programmation : secrets des champions », lancé par l'Université ITMO sur la plateforme edX. Nous avons écrit ici sur les conseils que les champions donnent aux débutants en programmation sportive : et.
  • L'équipe de l'Université ITMO est également responsable de la diffusion en ligne du championnat (bien sûr, pas des athlètes-programmeurs, mais des spécialistes de la diffusion vidéo). Alors que les concurrents se disputent le titre de champion, l'équipe vidéo, les analystes, le réalisateur, le concepteur, les programmeurs et les monteurs vidéo s'efforcent de faire des finales ACM ICPC un événement amusant à regarder pour les gens du monde entier. D'ailleurs, cette année, nous organiserons une diffusion en russe spécialement pour les téléspectateurs russes. Découvrez comment l'équipe travaille et quelles solutions matérielles et logicielles sont utilisées pour la diffusion.

Préparation des participants

Avant de participer à la finale, les équipes s'entraînent dans divers camps d'entraînement préliminaires. L'une de ces étapes de formation a lieu chaque année à l'Institut de physique et de technologie de Moscou (Ateliers de Moscou ACM ICPC).

Le format des ateliers est assez strict : pendant 11 jours de formation continue, les étudiants participants résolvent au moins 100 problèmes aux Olympiades. De plus, dans le cadre du programme de formation, des consultations avec les enseignants du camp et l'étude du matériel de cours sont prévues.

Les futurs lauréats ne négligent pas cette formation : en 2016, 8 des 13 équipes gagnantes de l'ACM ICPC ont participé à des camps d'entraînement. Et cette année, les ateliers ACM ICPC de Moscou ont réuni 170 étudiants et formateurs, représentant 19 pays et 44 universités. La possibilité de participation à distance a permis à des équipes des États-Unis, de Lettonie, de Roumanie, de Chine et d'Inde de recevoir une formation dispensée par des spécialistes russes.

Prédictions : qui va gagner

Selon Andrey Stankevich, entraîneur des équipes universitaires ITMO et membre du comité d'organisation des demi-finales du Championnat du monde en Europe du Nord-Est, les universités suivantes figureront parmi les prétendants à la victoire cette année :
  • Russie: Université d'État de Saint-Pétersbourg, Université ITMO et MIPT (trois meilleures équipes de la région Europe du Nord-Est)
  • Chine: Université Xinhua, Université des transports de Shanghai, Université Fudan, Université de Pékin
  • Etats-Unis: Massachusetts Institute of Technology
  • Suède: Institut Royal de Technologie
Selon Andrei Stankevich, ils peuvent rivaliser avec des équipes d'autres universités chinoises et coréennes, ainsi qu'avec l'équipe traditionnellement forte de l'Université de Varsovie.
« Comme l'a montré le camp d'entraînement pré-final du MIPT, l'Université chinoise de Xinhua dispose d'une équipe très solide cette année. Il comprend des étudiants qui, à un moment donné, ont pris la première place absolue aux Olympiades internationales lorsqu'ils étaient écoliers. Cependant, notre équipe a réussi à les battre deux fois lors d'une compétition d'entraînement, il y a donc des chances.

Parmi les équipes russes, les équipes de l'Université ITMO, de l'Université d'État de Saint-Pétersbourg et du MIPT se sont très bien comportées. Parmi les découvertes inattendues des derniers camps d'entraînement figurent une équipe d'Australie (Université de Nouvelle-Galles du Sud) et une équipe plus forte qu'avant, l'équipe KTH de Stockholm. On peut également noter des équipes fortes du MIT et de plusieurs autres universités chinoises : Shanghai Transport University, Fudan University de Pékin, Peking University.
– Andreï Stankevitch


Vladimir Parfenov note que cette année, les résultats des équipes russes qualifiées pour la finale ont été conformes aux attentes : les leaders ont toujours bien performé, mais la composition des universités finalistes est restée pratiquement inchangée par rapport à l'année dernière :
Parmi les finalistes russes, il y a des anciens participants ([ils] ont déjà atteint la phase finale, mais pas toutes les années), car il est très difficile de préparer une équipe qui atteindra la finale.

Si nous parlons de la région [Europe du Nord-Est], cette saison, l'Université d'État de Saint-Pétersbourg, l'Université ITMO et le MIPT sont les trois équipes russes les plus fortes, puisque MSU, par exemple, n'a pas réalisé une bonne saison. Les équipes biélorusses d'autres pays [de la région] peuvent rivaliser avec nous.
– Vladimir Parfenov

Les étudiants russes ont remporté le Championnat du monde de programmation ACM ICPC à Pékin pour la septième fois consécutive. Depuis 2000, il s'agit de la 13e victoire des participants de la Fédération de Russie. L'équipe de l'Université d'État de Moscou (MSU) a remporté la première place. Le deuxième est l’Institut de physique et de technologie de Moscou (MIPT) et le troisième est l’Université de Pékin. L'équipe gagnante recevra une récompense en espèces de 15 000 dollars. Auparavant, les premières places de ces compétitions étaient occupées par des équipes de l'Université d'État de Saint-Pétersbourg (SPbSU), de l'Université des technologies de l'information, de la mécanique et de l'optique de Saint-Pétersbourg (ITMO) et de Saratov. Université d'État. Cependant, la communauté des experts n’est pas encline à surestimer les succès des programmeurs russes, rappelant les problèmes du niveau général de formation des étudiants.


La finale du Championnat mondial de programmation ACM ICPC, la plus grande olympiade étudiante dans cette discipline, s'est terminée à Pékin. Cette année, 140 équipes de 51 pays ont participé à la finale du championnat. La Russie était représentée par 11 équipes représentant l'Université de physique et de technologie de Moscou, l'Université d'État de Moscou, l'Université ITMO (Saint-Pétersbourg), l'Université d'État de Saint-Pétersbourg et l'École supérieure d'économie de Moscou. institut aéronautique, Université d'État de Novossibirsk, Université d'État de Perm, Université d'État de Saratov, Université académique (Saint-Pétersbourg) et Oural université fédérale(Ekaterinbourg).

Les participants russes ont remporté la Coupe du monde et quatre médailles sur 13, soit plus que tout autre pays.

Les équipes de Chine et des États-Unis ont reçu trois médailles chacune, tandis que le Japon, la Corée et la Lituanie en ont reçu une chacune.

A remporté la Coupe du monde pour la première fois L'équipe MSU Red Panda, ayant résolu 9 problèmes sur 12 proposés. « Nos gars sont les meilleurs ! Nous sommes fiers", dit-il message service de presse de l'Université d'État de Moscou. "C'est la première victoire absolue de MSU au CIPC", a déclaré l'université à Kommersant. L'équipe (traditionnellement composée de trois personnes) comprend Mikhail Ipatov (étudiant en mécanique et mathématiques), Vladislav Makeev et Grigory Reznikov (Faculté de mathématiques computationnelles et cybernétique). L'entraîneur de l'équipe est Elena Andreeva, chef du département d'informatique du Centre éducatif et scientifique spécialisé (ESSC) du nom d'A. N. Kolmogorov de l'Université d'État de Moscou.

"Les équipes MSU participent au championnat du monde par équipes étudiantes de programmation depuis plus de 20 ans", a déclaré Mme Andreeva après avoir résumé les résultats du championnat. "Beaucoup d'entre elles ont remporté des médailles de championnat, plusieurs fois elles étaient à un pas de là. victoire, prenant la deuxième place. Cette année, pour la première fois, notre équipe a remporté le titre de champion du monde, battant à la fois les équipes russes les plus fortes du MIPT et de l'ITMO, ainsi que les meilleures équipes étrangères des universités de Pékin, Séoul et Tokyo.

Le championnat de programmation a lieu depuis les années 1970 ; depuis 2000, des équipes des universités russes ont commencé à le remporter : les premiers étaient des étudiants de l'Université d'État de Saint-Pétersbourg.

Depuis 2012, seules les équipes russes ont remporté cette Olympiade.

Le détenteur du record du nombre de victoires parmi les équipes russes est l'Université ITMO (qui a remporté la première place à sept reprises, dont en 2017). Cette année L'équipe de l'Université ITMO est tombé à la neuvième position, après avoir résolu 7 problèmes sur 12. Dans le même temps, l'ITMO est restée troisième parmi les universités russes participant à l'Olympiade. "La programmation devient un véritable sport intellectuel d'avenir, non moins intéressant que, par exemple, les échecs, et dans cette discipline les gars de Russie n'ont pas d'égal", a commenté le vice-président de l'Union russe des recteurs, recteur de l'ITMO. Université Vladimir Vasiliev sur les réussites des étudiants russes.

En plus de l'équipe MSU, parmi les meilleurs figuraient Les équipes du MIPT(deuxième place) et les universités de Pékin et de Tokyo, qui ont résolu 8 problèmes sur 12 et ont reçu des médailles d'or.

Séoul a terminé la compétition avec un score de 7 sur 12 Université nationale, Université de Nouvelle-Galles du Sud, Université Tsinghua, Université de Shanghai, ITMO, Massachusetts Institute of Technology, Université de Vilnius et Université fédérale de l'Oural.

« L'équipe de physique et de technologie a montré résultat élevé, ils ont marché avec confiance vers la victoire toute l'année, ont montré le meilleur résultat de toute l'histoire de la participation du MIPT au concours, pour lequel nous pouvons féliciter l'équipe de Cryptozoologie ! Nous sommes fiers de nos étudiants », a déclaré Alexey Maleev, chef d'équipe et directeur du MIPT Center for IT Education. «Moscou a la plus grande représentation parmi toutes les villes du monde - quatre universités à la fois (parmi les 13 meilleures.- "Kommersant") défendent l'honneur du pays", a noté M. Maleev. "En outre, 10 des 13 étudiants ont suivi les ateliers de l'école ICPC de Moscou sur la base du MIPT". «Cela prouve que l'enseignement de la programmation dans notre pays est l'un des meilleurs au monde. Félicitations à l'équipe du MIPT et à tous les programmeurs russes ! » - a souligné le recteur du MIPT Nikolai Kudryavtsev.

Des équipes de trois étudiants âgés de moins de 25 ans concourent au ICPC. Les étudiants qui ont participé deux fois à la finale mondiale ne sont pas autorisés à participer au championnat. L'équipe ne dispose que d'un seul ordinateur, donc en plus de la logique et de la capacité de travailler dans des délais serrés, les candidats doivent démontrer des compétences en interaction en équipe et répartir correctement les rôles. L'équipe qui résout correctement gagne le plus grand nombre tâches et en même temps montré meilleur temps; Le nombre de tentatives effectuées, ou « soumissions » (c'est le nom donné à une solution à un problème envoyée au serveur de test pour vérification), est également pris en compte.

Tous les gagnants du ICPC reçoivent un prix en espèces : équipe championne - 15 000 $ ; les équipes qui ont remporté des médailles d'or - 7,5 mille dollars chacune ; médaillés d'argent - 6 000 $ chacun et équipes qui ont remporté le bronze - 3 000 $ chacune.

Il ne faut pas surestimer la victoire des étudiants russes, estime Konstantin Kolin, chercheur en chef à l'Institut des problèmes informatiques de l'Académie des sciences de Russie. "Gagné et gagné, nous parlons de sur un seul succès : c'est l'élite, qui est formée dans les grandes universités, mais il faut regarder niveau général former les écoliers et les étudiants », a déclaré l'expert dans une interview à Kommersant. Selon lui, sondages d'opinion, menée auprès des écoliers de Moscou l'année dernière et cette année, a montré que « 34 % des écoliers croient que le soleil tourne autour de la Terre ». « La folie s'est renforcée et le gouvernement a adopté le programme d'économie numérique, qui nécessite des spécialistes hautement qualifiés. Pour les préparer, une révolution dans l’éducation est nécessaire, et elle commence par les enseignants. Nous en parlons beaucoup, mais jusqu’à présent, malheureusement, le ministère de l’Éducation ne nous écoute pas », a conclu l’expert. Le ministère de l'Éducation et des Sciences n'a pas pu commenter rapidement la victoire des étudiants russes à l'Olympiade internationale.

Anna Makeeva, Valeria Mishina

Au cours des 17 dernières années, les programmeurs russes ont remporté 11 fois le championnat du monde de programmation AFM ICPC, et au cours des cinq dernières années, les coupes ont été remportées chaque année en Russie. Le magazine RBC a découvert comment s'est développée la carrière de plusieurs finalistes de l'un des concours de programmation les plus prestigieux au monde.

Photo : Askhat Bardinov pour RBC

Le championnat international de programmation étudiante de l'Association for Computing Machinary International Collegiate Programming Contest (ci-après dénommé ICPC) a lieu depuis 1977. Jusqu'à la finale, qui a lieu à chaque fois différents pays, atteint 100 à 120 équipes composées de trois personnes. Les organisateurs du tournoi proposent 12 séries de médailles – quatre médailles d'or, d'argent et de bronze chacune.

Pendant toute la durée du CIPC, les étudiants de deux universités russes sont devenus des champions : l'Université d'État de Saint-Pétersbourg (SPbSU) et l'Université nationale de recherche sur les technologies de l'information, la mécanique et l'optique de Saint-Pétersbourg (ITMO). En 2006, l'équipe de l'Université d'État de Saratov a gagné.

Le concours est réservé aux étudiants, mais même après cinq à dix ans, la participation à celui-ci est prise en compte lors de l'embauche, a déclaré au magazine RBC Alexander Pashintsev, chef du groupe de recrutement de la plateforme Amazing Hiring. Le plus souvent, les médaillés et les champions de ces Olympiades sont embauchés par des géants de l'Internet - Yandex, VKontakte, Facebook, Google, Amazon, Mail.Ru Group, Avito ou par des sociétés spécialisées engagées, par exemple, dans le trading à haute fréquence, note Pachintsev. Selon lui, dans les grandes entreprises informatiques, 5 à 10 % nombre total les employés sont des spécialistes passés par les tournois ICPC.

Les jeunes qui remportent des concours spécialisés peuvent intéresser les grandes entreprises occidentales, habituées à former elles-mêmes leurs employés, explique Irina Lukavskaya, consultante senior au département informatique et télécommunications de l'agence de recrutement Cornerstone. Le niveau de salaire de ces employés dépend de la modernité de la technologie qu'ils maîtrisent et du nombre de concurrents professionnels sur le marché. Par exemple, pour ceux qui travaillent avec logiciel Le salaire mensuel « 1C » est de 150 000 roubles. - digne, continue Lukavskaya, et les développeurs ABAR (sachez langage interne Programmation SAP allemande) avant même la crise de 2008, ils gagnaient plus de 200 000 roubles. par mois.

Plusieurs membres du CIPC ont refusé de communiquer en raison des politiques d'entreprise des entreprises pour lesquelles ils travaillent actuellement. Le magazine RBC s'est entretenu avec quatre champions et médaillés du CIPC et a découvert comment leur carrière s'est développée et si leur passé « olympique » les a aidés.

Entraîneur-joueur

Andrey Lopatin, double champion du monde de programmation (2000 et 2001), estime avoir réussi à combiner carrière dans l'informatique et l'enseignement. Son ancien mentor, maître de conférences à la Faculté des technologies de l'information et de programmation de l'Université d'État de Saint-Pétersbourg, Natalya Voyakovskaya, est parti après 15 ans de travail, et Lopatin, après sa deuxième victoire au ICPC, a remplacé l'entraîneur-chef de l'université. . «Je voulais que l'entreprise vive. Si je ne l’avais pas ramassé, il se serait effondré », raconte l’enseignant champion.

L'intérêt pour la compétition à l'Université d'État de Saint-Pétersbourg augmente : il y a dix ans, le nombre de personnes disposées à participer à des programmes sportifs ne dépassait pas 100 personnes par an. Aujourd'hui, le nombre d'étudiants souhaitant tester leur force dans le championnat atteint 200 personnes par an : des étudiants de diverses facultés de l'Université d'État de Saint-Pétersbourg viennent à Lopatin. Il s'agit principalement d'étudiants en mathématiques - chacun a ses propres réussites, mais la formation dure en moyenne environ trois à cinq ans. La sélection finale pour participer au concours est d'environ 50 personnes, et seules trois personnes atteignent la finale du CIPC.


Andrey Lopatin est convaincu que les programmeurs constituent une ressource précieuse s'ils peuvent non seulement écrire du code, mais aussi savoir comment le programme doit fonctionner.

Au stade initial, vous pouvez étudier une à deux fois par semaine pendant plusieurs heures, Lopatin partage son expérience, à un niveau plus avancé - trois fois par semaine pendant cinq heures. Il faut aussi constamment faire ses devoirs. Par exemple, les élèves qui n'ont pas résolu certains problèmes pendant les cours doivent les terminer à la maison, sinon il n'y aura aucun progrès, note le formateur.

Avec un bon niveau de préparation, les étudiants commencent à participer à des événements sur place une fois par mois ou par mois et demi : dans l'une des universités, des équipes de différentes universités se réunissent et s'affrontent. Le site le plus puissant de Russie en termes de participants et d'entraîneurs se trouve à Petrozavodsk. Université d'État, dit Lopatin.

Des camps d'entraînement sont également organisés de temps en temps à l'étranger, mais ils sont généralement « beaucoup plus faibles qu'en Russie » - en raison du niveau moyen de formation des participants, explique l'un des entraîneurs principaux du pays. La Russie en dernières années domine le CIPC. Parmi ceux qui peuvent pleinement rivaliser avec les programmeurs russes, Lopatin cite les américains, mais cela se fait au détriment des étudiants « importés » - Polonais, chinois et autres, puisque les principales universités américaines viennent étudier du monde entier.

"Ils disent que les Chinois ont des camps d'entraînement similaires aux nôtres, mais nous n'y avons jamais été invités, donc nous n'en sommes pas sûrs", sourit Lopatin. Lorsqu'il était lui-même écolier et participait à des concours de programmation, de nombreuses rumeurs circulaient concernant les participants chinois : ils auraient été emmenés dans les montagnes pendant un an et forcés de s'entraîner. Que cela soit vrai ou non, les équipes chinoises constituent « une concurrence assez forte », devient Lopatin sérieux.

La programmation nécessite « beaucoup de connaissances mathématiques », poursuit-il : si l’on commence à apprendre les mathématiques dès l’enfance, on développe un certain état d’esprit. Au ICPC, le participant n'a pas seulement besoin d'écrire du code - il doit résoudre un problème complexe et découvrir quelque chose de nouveau, et sans pensée mathématique et la connaissance des algorithmes n'est nulle part, le formateur est catégorique. Chaque année, les tâches du championnat deviennent plus compliquées : des tâches qui semblaient irréalistes il y a 15 ans peuvent désormais être résolues en 15 minutes.

De nombreuses entreprises informatiques organisent leurs propres concours de programmation : cela leur permet de rechercher de futurs collaborateurs. Cependant, l'ICPC est le concours le plus prestigieux : ses participants ne sont pas seulement des codeurs qui créent des programmes, mais des spécialistes qui imaginent comment structurer un tel programme, explique Lopatin. Les finalistes de l'ICPC peuvent économiser le budget de l'employeur : 10 000 serveurs coûteront à l'entreprise 50 millions de dollars, et deux programmeurs intelligents peuvent vous dire ce qu'il faut faire pour éviter d'acheter ces serveurs, explique le formateur.

La préparation des équipes de l’Université d’État de Saint-Pétersbourg aux concours de programmation est la tâche principale de Lopatin. Au fil des années, il a travaillé chez VKontakte et Telegram, créé par Pavel Durov, mais désormais, parallèlement à l'enseignement, il est engagé dans le conseil pour le service russe de construction d'itinéraires logistiques VeeRoute. Lopatin admet que depuis son dernier championnat personnel il y a 15 ans, il a refusé une dizaine de grandes entreprises qui l'avaient appelé à travailler.

Chef des chats

Dmitry Egorov est devenu champion du monde ICPC à l'âge de 20 ans - en 2014, alors qu'il était étudiant en troisième année à la Faculté de mathématiques et de mécanique de l'Université d'État de Saint-Pétersbourg. Il dirige désormais le département de développement et d'optimisation des bases de données du plus grand réseau social de Russie « VKontakte » et poursuit ses études de maîtrise à l'Université nationale de recherche. Lycéeéconomie. Cependant, combiner l'université et le travail est une chose courante pour Egorov.

Le futur champion du monde est diplômé du lycée de physique et de mathématiques n°239 de Saint-Pétersbourg, une école prestigieuse où, par exemple, le mathématicien Grigori Perelman, qui a prouvé la conjecture de Poincaré, et frère Nikolay, fondateur de VKontakte Pavel Durov, qui a travaillé avec lui sur la création et le développement du réseau social.


Il y a un an, Dmitry Egorov dirigeait le département VKontakte. Sous sa direction, il y a quatre champions du monde en programmation. (Photo : Askhat Bardinov pour RBC)

En 2014, la finale du championnat ICPC s'est tenue début juillet à Ekaterinbourg. L'équipe de l'Université d'État de Saint-Pétersbourg, dans laquelle jouait Egorov, a pris la première place - il s'agissait de la troisième victoire consécutive de la Russie au tournoi mondial.

Au cours des premières années de ses études à l'université, Egorov a effectué un stage chez Yandex - de 2012 à 2014. L’entreprise recrute régulièrement des « stagiaires », donc si on a l’envie et « un certain niveau de formation de base », ce n’est pas difficile d’y arriver, précise l’étudiant. Il qualifie le stage chez Yandex de « extrêmement utile » - non seulement du point de vue des compétences en programmation acquises, mais aussi du point de vue de l'organisation au sein d'une grande entreprise. Après le stage, Egorov s'est rendu compte qu'il ne se considérait pas comme un employé ordinaire d'une grande entreprise. « J'ai toujours été prêt à travailler sensiblement plus et mieux que les autres, mais j'attends également de meilleurs résultats », explique un ancien étudiant de l'Université d'État de Saint-Pétersbourg. Les grandes entreprises n'ont pas suffisamment d'opportunités de croissance et de développement ; elles manquent d'une approche individuelle, déplore Egorov. Et cela s'applique non seulement à Yandex, mais aussi à d'autres géants de l'informatique comme Google. « Si vous souhaitez mener une vie tranquille, bénéficier d'un bon salaire et avoir confiance en l'avenir, les grandes entreprises informatiques constituent une excellente option. Mais ce n'est pas pour moi », déclare le champion du CIPC.

Immédiatement après la cérémonie de remise des prix, l'un des employés de VKontakte s'est approché d'Egorov et lui a proposé de rejoindre l'équipe. Quelques mois plus tard, l'étudiant est venu travailler sur le plus grand réseau social. Les perspectives pour lui sont évidentes : au printemps 2014, Pavel Durov a quitté VKontakte, suivi de nombreux développeurs qui ont quitté l'entreprise. « Malgré des dizaines de millions d'utilisateurs par jour, l'esprit startup était à nouveau dans l'air », sourit le champion. Moins d'un an plus tard, Egorov dirigeait le département, où il accéda à un poste privé. Il y a sept personnes dans son département : toutes ont participé au CIPC au cours des différentes années, quatre sont devenues champions du monde.

L'orientation du développement et de l'optimisation des bases de données est idéale pour les anciens participants aux Olympiades, en est sûr Egorov. Il y a quelques années, toutes les parties très chargées du site VKontakte ont été transférées vers les propres bases de données de l'entreprise, optimisées pour les besoins de l'entreprise, car toutes les solutions disponibles sur le marché se sont révélées inefficaces pour l'entreprise. "Si nous parlons dans un langage simple, alors je suis responsable de veiller à ce que les kilotonnes de chats utilisateurs ne se perdent nulle part », rit Egorov.

Un étudiant en master n'est pas prêt à évaluer le degré d'importance de son département pour l'entreprise : dans VKontakte, il est difficile d'identifier les départements de développement clés et secondaires. Pour un travail et un développement à part entière, tous les composants sont requis - bases de données, back-end, front-end et groupe administrateurs système et le développement mobile. Sans aucun de ces éléments, le site commencera à se dégrader assez rapidement, en est sûr Egorov. « Vous ne demandez pas quel organe humain est le plus important : le cerveau ou le cœur ? Sans aucun d’entre eux, une personne ne peut vivre que de plaisanteries », dit-il.

En règle générale, tous les gagnants des championnats ICPC peuvent choisir leur lieu de travail parmi une liste assez longue. Par exemple, lors de la cérémonie de remise des prix, le sponsor général du Championnat du monde, IBM, distribue une invitation à tous les gagnants pour qu'ils contactent leur service RH et discutent des postes vacants, se souvient Egorov. Pour sa part, il a immédiatement décidé qu'il ne voulait pas quitter la Russie.

«Pour de nombreux informaticiens, partir à l'étranger est une sorte d'obsession qu'ils cultivent les uns chez les autres», explique Egorov. Il ne regrette pas d'avoir choisi VKontakte comme employeur et qualifie la migration massive d'informaticiens à l'étranger de « désastre absolu pour le pays ».

Champ des possibles

Gleb Leonov, étudiant en première année à la Faculté de mécanique et de mathématiques de l'Université d'État de Saint-Pétersbourg, et deux amis ont vu une annonce sur le stand de l'université invitant les gens à participer au programme des Olympiades. Diplômé école de mathématiques— Le gymnase académique de l'Université d'État de Saint-Pétersbourg, où Pavel Durov a étudié, s'est intéressé. C’est ainsi qu’il s’est retrouvé dans la « classe » d’Andrei Lopatin. Leonov est devenu deux fois finaliste du CIPC et a remporté une médaille d'argent.

Pendant ses études à l'Université d'État de Saint-Pétersbourg, Leonov ne travaillait pas à temps partiel : cela n'était pas particulièrement nécessaire, et les études et la formation en programmation prenaient beaucoup de temps, se souvient-il. Après l'université, Leonov est entré aux études supérieures, mais l'a quitté un an plus tard : il voulait se concentrer sur la programmation.


Depuis son enfance, Gleb Leonov aimait résoudre des problèmes mathématiques et, déjà à l'université, il s'est intéressé à la programmation des Olympiades. (Photo : Askhat Bardinov pour RBC)

Aujourd'hui, les finalistes du CIPC reçoivent de nombreuses offres d'employeurs potentiels : il y a dix ans, leurs opportunités étaient plus modestes. Cependant, même à cette époque, Google appelait des programmeurs pour des entretiens. Leonov n'a jamais été attiré par la perspective de travailler dans l'une des plus grandes sociétés informatiques américaines.

Leonov assure qu'il n'est désormais plus difficile pour les participants du CIPC de partir à l'étranger et d'y trouver du travail : par exemple, le niveau d'anglais écrit des participants à l'Olympiade s'élève automatiquement à un niveau élevé, puisque lors des compétitions et des entraînements, toutes les conditions des tâches sont indiquées. sur langue anglaise. De plus, la majeure partie de la littérature pédagogique spécialisée se trouve uniquement dans cette langue, le médaillé du CIPC hausse les épaules.

Participer à des championnats et travailler en entreprise, ce n’est pas la même chose. Si nous parlons de programmation sportive, votre objectif est de résoudre le problème et d'écrire un programme le plus rapidement possible. Et lorsqu’on travaille en entreprise, le but d’un spécialiste est de développer des logiciels modifiables. Parfois, il est nécessaire de « couper » un programme en plusieurs parties et de remplacer l’une des « parties » sans toucher au reste. L’essentiel dans le travail d’un programmeur est donc la compétence pratique. Il est difficile de l'acquérir à l'université, explique Leonov. De plus, plus le poste est élevé, plus des compétences supplémentaires sont requises.

Leonov travaille pour JetBrains à Saint-Pétersbourg depuis sept ans. Créé en 1999 à Prague par les programmeurs russes Sergey Dmitriev, Evgeny Belyaev et Valentin Kipyatkov, JetBrains développe des logiciels destinés aux informaticiens. Désormais, outre Prague et Saint-Pétersbourg, la société possède des bureaux à Moscou, Munich, Boston et Novossibirsk. Leonov a lui-même obtenu un emploi chez JetBrains - il a demandé ses coordonnées aux employés de l'entreprise et a envoyé son curriculum vitae.

"Si un étudiant a atteint la finale du Championnat du monde, alors il en a très probablement la capacité et passera facilement un entretien pour le poste de programmeur junior", sourit Leonov.

Aujourd'hui, le finaliste du ICPC développe des outils, mais pas pour les programmeurs. Pour qui - Leonov a refusé de répondre, citant le règlement intérieur de l'entreprise. Plusieurs fois par an, il participe à des concours de programmation individuels organisés par Google, Facebook, Mail.Ru Group, etc. Les étapes de qualification se déroulent via Internet et les finalistes sont invités à l'étape finale dans différentes villes du monde. "Bien sûr, je n'entre pas en finale, parce que je fais plus pour moi-même", admet Leonov.

Google Core

Petr Mitrichev a hérité sa passion pour les mathématiques de son frère aîné, qui était également impliqué dans la programmation. Maman, chimiste de formation, a acheté à Peter des livres de mathématiques. Lorsqu'il n'y avait pas d'ordinateur dans la maison, Mitrichev Jr. lisait de la littérature sur la programmation et se rendit avec son frère au Centre de créativité des enfants et des jeunes, où ils étudièrent dans un cercle informatique. À l'âge de sept ans, il entre à l'école de district n° 827 et à 14 ans, il rejoint une classe spécialisée de l'école n° 57 de Moscou, puis postule à la Faculté de mécanique et de mathématiques de l'Université d'État de Moscou.

À l'école, un professeur d'informatique a suggéré à Mitrichev de participer à l'Olympiade de programmation du district nord-ouest de Moscou. "Une fois entré dans ce système, il est plus facile de participer à d'autres Olympiades", se souvient Mitrichev. Il a également participé à Olympiade panrusse pour les écoliers, je suis allé plusieurs fois dans des camps d'entraînement de deux semaines dans différentes villes, où ils forment, entre autres, les futurs participants du CIPC.


Petr Mitrichev participe chaque semaine à des concours de programmation en ligne. Après avoir remporté l'ICPC, c'est devenu son passe-temps. (Photo : Askhat Bardinov pour RBC)

Contrairement aux étudiants de l'Université d'État de Saint-Pétersbourg et de l'ITMO, Mitrichev et ses camarades de classe de la Faculté de mécanique et de mathématiques n'avaient pas un seul entraîneur. Agi en tant que mentors informels anciens membres CIPC qui ont partagé leurs expériences en ligne et lors de réunions. Evgeny Pankratiev, chercheur principal au Laboratoire de méthodes informatiques de la Faculté de mécanique et de mathématiques de l'Université d'État de Moscou, a contribué à la participation au concours : il a organisé des voyages et a aidé à remplir les formalités administratives. Mitrichev a atteint la finale du CIPC à deux reprises : en 2003 aux États-Unis et en 2005 en Chine, alors qu'il en était respectivement à sa première et à sa troisième année. Les deux fois, il a pris la deuxième place par équipe.

Pendant ses études, Mitrichev travaillait parfois à temps partiel, mais ne cherchait pas d'emploi à temps plein. Gagner l'ICPC ne garantit pas à 100 % de recevoir offre intéressante d'un employeur potentiel, il en est sûr. "Le CIPC sert davantage moyens sociaux lien entre un joueur professionnel et une bonne entreprise employeur », sourit Mitrichev. Les concours vous apprennent à bien programmer, après quoi tout travail dans votre spécialité devient possible, dit-il. Cependant, à l'Olympiade, il est important de programmer rapidement et sans erreurs, et vous pouvez prendre votre temps dans votre travail. En même temps, admet-il : la capacité d’écrire du code rapidement et sans erreurs signifie qu’il n’est pas nécessaire de refaire le travail plusieurs fois.

Les finalistes de l'ICPC peuvent être impliqués dans l'organisation de concours similaires au sein de grandes entreprises ou dans le domaine de l'analyse (par exemple, négociation d'actions). Mitrichev a envisagé lui-même cette dernière option après avoir obtenu son diplôme universitaire. « Là-bas, vous pouvez gagner de l'argent pour vos vieux jours en moins de temps », admet-il.

Cependant, depuis 2007, Mitrichev travaille chez Google - d'abord au bureau de Moscou et depuis 2015 au bureau suisse. Lors d'un entretien avec l'une des plus grandes sociétés informatiques du monde, Mittrichev a dû résoudre des problèmes similaires à ceux rencontrés lors de la finale du ICPC, se souvient le programmeur. Certes, il travaille actuellement sur le moteur de recherche du site Web de Google, et ce travail est davantage lié à la théorie des probabilités, que Mitrichev a étudiée à l'université. La vitesse acquise lors des compétitions est utile lorsqu'il faut, par exemple, créer un prototype d'un programme et comprendre s'il fonctionne.

Désormais, Mitrichev aide Google à organiser ses propres concours de programmation - Google Code Jam, et propose des tâches pour les tournois avec ses collègues. Mitrichev lui-même a participé à cette compétition à deux reprises et a pris la troisième place en 2005 et la première en 2006. Le programmeur admet avoir discuté d'une éventuelle coopération avec des représentants de VKontakte, Facebook et Yandex, mais il lui semble désormais que Google est la meilleure option, « parce que l'entreprise résout des problèmes intéressants et que ses employés personnes intelligentes, avec qui c’est un plaisir de travailler.

Après l'ICPC, Mitrichev participe chaque semaine à des concours en ligne. Selon lui, pour résoudre certains problèmes, il doit réapprendre : « Dans ce domaine, c’est plus facile pour la nouvelle génération : elle apprend immédiatement méthodes modernes la programmation". Aujourd'hui, Mitrichev est à la tête de l'un des principaux classements de la société américaine Topcoder.com, qui organise des compétitions de programmation sportive depuis 2001.

Il n'y a jamais trop de victoires ! Chaque suivant est encore plus doux que le précédent. L'équipe de l'Université des technologies de l'information, de la mécanique et de l'optique de Saint-Pétersbourg a remporté la coupe principale du Championnat du monde de programmation ACM ICPC 2017. Il s’agit de la septième victoire de l’ITMO dans le tournoi intellectuel le plus prestigieux destiné aux jeunes programmeurs.

Bataille du plus fort

Le concours des meilleurs étudiants programmeurs de plus d'une centaine de pays à travers le monde a débuté le 20 mai à Rapid City, dans le Dakota du Sud, aux États-Unis. 128 équipes y ont participé, dont 13 représentant la Russie et trois de Saint-Pétersbourg. La finale était attendue non seulement par les équipes, mais aussi par les supporters qui ont regardé la retransmission en direct. Pour devenir champions du monde, les jeunes programmeurs devaient résoudre correctement le plus grand nombre possible des 12 problèmes qui leur étaient assignés.

La bataille s'est avérée difficile. Les équipes se sont littéralement marché sur les talons. Après 40 minutes de compétition, les futurs champions n'ont résolu que trois problèmes et n'occupaient qu'à la neuvième place du classement. Mais ils y croyaient. Non. Ils savaient qu’ils pouvaient faire mieux et plus vite. Au bout de 20 minutes supplémentaires, l'équipe ITMO avait déjà résolu cinq problèmes et dépassé tous ses concurrents. Après huit tâches, le leader a changé. Mais le neuvième a de nouveau ramené l'équipe de Saint-Pétersbourg à la première place. Après dix problèmes résolus, les équipes se sont figées en attendant les résultats.


En attendant les résultats. Photo : Département de CT de l'Université ITMO "VKontakte"

Septuple champion

Les résultats du championnat étudiant de programmation sportive ACM ACPC-2017 viennent d'être connus. L'équipe de l'Université ITMO a pris la première place, ajoutant une de plus à ses six victoires, la bonne nouvelle a été annoncée sur la page officielle du réseau social de l'université à 01h36, heure de Moscou.

Les programmeurs de l'Université ITMO ont confirmé leur record du monde et la coupe gagnante du tournoi étudiant le plus prestigieux parmi les programmeurs se dirige à nouveau vers Saint-Pétersbourg.

L'équipe universitaire a réussi à résoudre correctement 10 problèmes sur 12, en y consacrant le moins de temps possible. C'est le temps qu'il a fallu pour résoudre les problèmes et le nombre réduit de tentatives infructueuses pour les résoudre qui ont permis à l'équipe de remporter la septième Coupe ACM ICPC, rapporte le service de presse de l'ITMO.

Les voici, les héros !

La septième victoire de l'Université ITMO de l'ACM ICPC, ayant résolu 10 problèmes sur 12 plus rapidement et avec plus de compétence que tous les concurrents, a été remportée par les étudiants du Département de technologies informatiques Ivan Belonogov, Ilya Zban et Vladimir Smykalov. L'entraîneur-chef de l'équipe gagnante est le professeur agrégé du Département de technologie informatique, candidat en sciences techniques Andrey Stankevich.




Lire aussi :