Comment les Russes apprennent-ils codage concurrentiel?

Tout le monde sait que des codeurs de Russie/Ukraine/Belarus sont très bons dans le codage concurrentiel. Comment ils commencer à l’apprendre? Quel est l’environnement en Russie pour les rendre très bon?

Réponse

Source : je suis originaire de Russie et savoir quelque chose sur les événements de l’ensemble du pays.
AVERTISSEMENT : je vais décrire les choses comment ils vont en général à Saint-Pétersbourg (et, probablement, à Moscou). Je suppose que cela se réfère également à d’autres grandes villes à travers la Russie et l’ex-URSS (par exemple, Kiev, Ekaterinbourg, Saratov).
Par exemple, en disant: « populaire » je veux dire « populaire à Saint-Pétersbourg ou Moscou » et ainsi de suite.

Tout d’abord, il y a des Cercles de Math et écoles spécialisées math (le plus célèbre est Saint-Pétersbourg lycée 239, je suppose). Les cercles de Math commencent généralement à l’école secondaire (juste après les préliminaires). Par exemple, 239 a son propre cercle math, qui a lieu deux fois par semaine. Tout élève de 5ème (la première année de collège) peut assister à elle si il résout certains nombre de problèmes au cours de l’entrée Olympiade. Élèves reçoivent l’enseignement des mathématiques discrètes, combinatoire, algèbre, etc.. Par exemple, l’induction mathématique est enseignée dans le camp d’été de trois semaines après la première année et les nombres complexes sont introduits après la deuxième année (j’étais environ 12 ans à cette époque). Ainsi, tous ceux qui s’intéresse aux mathématiques obtient une chance de bien étudier. C’est une source de bons codeurs concurrentiels (je vais y revenir plus tard).

Aussi, il y a un bon nombre de cercles de programmation aussi bien. Voilà où j’ai appris le Logo écrivain à l’âge de sept ans. Si vous faites bien et demander de plus en plus d’apprendre, enseignant éventuellement vous enverra au cercle math (« parce que les maths sont très importants pour un programmeur » a été mon inspiration) ou au cercle de programmation concurrentielle. Si vous l’appréciez, vous commencez à apprendre, résoudre les problèmes, participer à des concours et ainsi de suite. En général, cercles forts sont dirigés par des gens qui sont bons codeurs eux-mêmes (George, darnley et beaucoup d’autres). Par exemple, mon premier cercle de programmation concurrentielle était George, que je me souvienne. Nous avons résolu des problèmes, nous avons contesté de l’autre solution, à la fin de la classe et c’était vraiment amusant.

Par maintenant vous savez qu’il y a beaucoup de cercles en mathématiques et en programmation, mais étudiants généralement besoin de motivation pour participer à des compétitions. Pour moi c’était principalement l’intérêt et l’esprit du concours - j’ai vraiment apprécié de résoudre les problèmes. Je n’aimais pas beaucoup de math, mais il m’a vraiment aidé sur la programmation des concours - DP est sorte d’applied math induction, théorie des graphes apparaît beaucoup sur les compétitions, les maths sont un grand train pour votre cerveau global, etc.. Donc, même si vous n’aimez pas beaucoup de math, mais veulent être bon en programmation, vous serez probablement envoyé au cercle math par votre professeur (comme si j’étais).

OK, mais pourquoi quelqu'un voudrait aller aux cercles, même s’il n’est pas vraiment passionné à ce sujet? Olympiades de sciences de l’école (site en russe). Il y a un système énorme des Olympiades de russe dans différentes matières (mathématiques, informatique, physique, astronomie, littérature, géographie, etc.). Beaucoup d’étudiants s’affrontent là. Meilleurs interprètes viennent chaque année à une ville et participer sur place, déplacements, hébergement, excursions et annexe sont organisés et payés par le gouvernement. Ainsi, vous pouvez, à tout le moins, voir différentes villes et frimer devant vos amis non-ainsi-lucky. Mais il n’y a plus : Si vous obtenez le diplôme (quelque chose comme haut - 45 %) sur la phase finale, vous aurez très probablement faire accepter dans une Université de votre choix (lié au sujet de l’Olympiade, bien sûr). Il n’y a aucune garantie, mais la Loi exige des universités acceptent des médaillés avant tous les autres. Ainsi, la seule situation dans laquelle vous ne parvenez pas à entrer à l’Université est qu’il n’y a plus médaillés d’appliquer à la même université que l’Université peut accepter. En fait, l’ensemble du processus de l’application de programmes de premier cycle en Russie est semi-standardisés et très simple (ne vous une fausse impression que le privilège est de ne pas écrire des lettres d’accompagnement ou d’essais, parce que personne ne fait), mais qui n’est pas liée à la question.

Mais il n’y a encore plus ! L’Olympiade de toute la Russie en informatique (ROI) détenus par le ministère de l’éducation et de la Science n’est pas la seule Olympiade, vous pouvez devenir un médaillé et vous garantit une place dans une université. Il y a beaucoup plus, certains d'entre eux sont également énormes (comme l' Olympiade ouverte) et vous donnent certains privilèges trop (vous êtes également admis dans une université, mais votre priorité est inférieure à celui des médaillés de retour sur investissement). Cette Olympiade est préparé par des gens qui préparent des problèmes pour le retour sur investissement. Autres Olympiades se déroulent également, mais leur priorité est plus faible. Quelques Olympiades en informatique sont en fait en informatique, programmation pas concurrentielle (c'est-à-dire vous devriez savoir ce qui est adresse IP), médaillés de ceux-ci également obtenir certains privilèges. Ainsi, obtenir une médaille sur une Olympiade est non seulement amusant, mais il va vous garantit une place dans une université, à moins que vous essayez d’entrer dans un endroit très fantaisie, où tous les médaillés sont candidates (comme ITMO)

OK, nous avons finis avec les deux principaux facteurs de motivationnels (AMHA): intérêt et aptitude aux soins éperdument à EGE scores (ses sujets examens, qui est « général » méthode d’application à l’Université). J’ai également parlé à votre sujet cercles de toutes sortes, qui permet à chacun d’apprendre la programmation concurrentielle. Une dernière chose.

C’est LKSH (école d’été en informatique). C’est un camp d’été international de trois semaines (Eh bien, la majorité des étudiants viennent de Russie). Les étudiants apprennent les algorithmes, apprennent au code, participent au concours et ont beaucoup de plaisir. Non seulement de l’éducation lui-même : LKSH a beaucoup de traditions et de diverses activités extrascolaires : football, matin dance classes au lieu d’obligatoires physical jerks, performances sur scène cinéma club, les élèves et les enseignants (avec la lumière, la musique et tout ce que le personnel que vous voyez dans le théâtre)... Tonnes d’eux. Cette année, 70 % des médailles sur le ROI ont été prises par d’anciens élèves LKSH. Presque tous ceux qui ont été en LKSH veut retourner en raison de l’atmosphère et le plaisir. Programme scolaire est également très forte. Je voudrais la liste de trois personnes qui vont en général à LKSH comme enseignants chaque année : Andrew Stankévitch (entraîneur des équipes de SPb ITMO légendaires sur ACM ICPC), Sergey Kopeliovich, Pavel Kunyavskiy. Dans l’ensemble, LKSH est une excellente occasion pour les étudiants enthousiastes de petites villes à venir et d’apprendre auprès des meilleurs des meilleurs.

Donc, à partir de l’école nous avons incroyable camp d’été, bonne motivation, beaucoup de cercles, de bons exemples et d’inspirations (programmation concurrentielle est l’un des domaines où les russes sont vraiment bons). D’autres questions? :)


Tags: Apprendre à programme, Programmation informatique, Programmation concurrentielle, TopCoder, Appartenance ethnique russe et le peuple, Codeforces, CodeChef