Женщины, которые меняют мир
О том, как у них получилось открыть свое дело, а после — найти настоящую суперсилу. Сегодня...
Спортивное программирование — уникальная область, где спорт, логика и компьютерное программирование сочетаются вместе. Оно открывает большие возможности как для школьников и студентов, так и для профессиональных разработчиков. О том, почему ведущие IT-компании мира ценят спортивных программистов и с изучения каких навыков можно начать свой путь в этом направлении, редакции STEPPE рассказала генеральный секретарь Федерации спортивного программирования в Казахстане Адина Магавина.
— Что такое спортивное программирование?
— Спортивное программирование — это интеллектуальный вид спорта, в котором нужно решать алгоритмические и логические задачи. Фишка состоит в том, что решение нужно написать в виде компьютерной программы, используя один из языков программирования.
Спортивное программирование — это про то, как улучшать скорость выполнения программ. Можно придумать такую программу, которая будет выполняться сто лет, а можно написать код для той же задачи, который отработает буквально за секунду. Для этого используются алгоритмы, структура данных, математика, которые помогают сделать решение более эффективным.
В сентябре прошлого года в Нью-Йорке состоялась встреча главы государства с ребятами из IT-сообщества Digital Nomads Kazakhstan. Там они поделились различными проектами в сфере IT, которые можно развивать в Казахстане. Среди них было спортивное программирование. Нашу инициативу поддержали, и в феврале 2023 года мы организовали Федерацию по спортивному программированию. Президентом Федерации является министр цифрового развития, инноваций и аэрокосмической промышленности Багдат Мусин.
— В чем заключается практический смысл спортивного программирования?
— Спортивное программирование помогает системно мыслить и разбивать задачи на более простые компоненты и шаги. Подобное развитие критического мышления очень нужно разработчикам. Так они учатся решать задачи последовательно .
Во время участия в соревновании приходится писать код на разных языках программирования. Вследствие этого улучшаются навыки в разработке.
Спортивное программирование подразумевает получение командного опыта, так как не все соревнования проходят индивидуально. Существуют и такие, где участвуют по два или три человека. Соответственно, развиваются коммуникативные навыки.
Между тем, у школьников есть возможность выигрывать гранты в университеты. Некоторые высшие учебные заведения проводят соревнования по спортивному программированию, по результатам которых предоставляют гранты на обучение. Например, в университете МУИТ проводится предметная олимпиада IT NATION, а в Astana IT University — AITU iCode.
Спортивное программирование также может стимулировать карьерный рост. Многие IT-гиганты как Meta, Amazon, Apple, Netflix, Google и другие проводят свои технические интервью, используя алгоритмическое программирование. И у спортивных программистов зачастую есть необходимый опыт и знания, чтобы решать подобные задачи.
— Какими знаниями в программировании нужно обладать для участия в соревнованиях?
— Во-первых, нужно уметь кодить и знать синтаксис языков программирования. Большинство спортивных программистов участвуют в соревнованиях на языке C++, потому что у него достаточно богатая стандартная библиотека, он позволяет писать высокоэффективный быстрый код. Но в целом начинать погружаться можно и с других языков программирования. В частности, с Python-а. Сейчас он даже входит в обязательную школьную программу. С него вполне можно начинать свое погружение в спортивное программирование.
Также нужно изучать алгоритмы, структуры данных и математику. Школьникам, начинающим заниматься спортивным программированием, я советую начинать с решения нестандартных математических задач, чтобы развивать этот навык.
— Как развивается спортивное программирование в Казахстане?
— На сегодняшний день мы работаем над несколькими проектами. Один из них — это чемпионат Казахстана по спортивному программированию. Мы уже провели два отборочных этапа и сейчас готовимся к финалу, который состоится в августе в Астане. Это первый подобный чемпионат в нашей стране. На него зарегистрировалось 3450 участников. В нем могут принимать участие как граждане, так и иностранцы, обучающиеся или работающие на территории Казахстана.
Одной из особенностей соревнования является то, что принимать участие может любой желающий от 14 лет: и школьник, и студент, и взрослый.
Чемпионат Казахстана — личное соревнование. В начале участники проходили процесс регистрации, а после — два отборочных тура. В каждом отборочном туре им начисляются очки, в зависимости от того, как они выступили на соревновании. Очки участников за все отборочные туры складываются и формируется рейтинг. В финал в этом году прошли 32 участника и еще восемь человек по региональной квоте. Итого у нас получилось 40 финалистов.
Помимо этого, наша Федерация подала заявку на проведение в Казахстане чемпионата мира по спортивному программированию ICPC — самого масштабного и престижного командного соревнования по спортивному программированию для студентов.
Недавно мы встретили комиссию ICPC в составе шести человек в Казахстане. Ее возглавил сам Президент ICPC Билл Паучер. Они прибыли, чтобы ознакомиться с объектами и локациями в городах Астана и Алматы. Сейчас мы работаем над тем, чтобы наша страна стала главным кандидатом для проведения финала в 2024 году.
Чтобы участвовать в таком престижном соревновании, университетам необходимо зарегистрировать свои команды и пройти региональный отбор в своей стране. В Казахстане — это Kazakhstan Regional Contests. После лучшие команды ВУЗов проходят на следующий этап, где все страны мира разбиты на восемь регионов. Так, Казахстан входит в регион в Northern Eurasia Finals. А вместе с ним такие страны, как Армения, Азербайджан, Россия, Грузия, Кыргызстан, Узбекистан и Беларусь. По результатам этапа, только лучшие 12-14 команд проходят в финал. Таким образом, из всех участников по всему миру отбирается около 100-130 команд, хотя изначально участвуют порядка 50-60 тыс. студентов из 110 стран мира.
— Какие еще цели стоят у Федерации на этот год?
— У нас есть цель популяризировать направление спортивного программирования, поэтому мы работаем с регионами. Наша задача — открыть 11-12 представительств по спортивному программированию в областях Казахстана.
Мы развиваем экосистему спортивного программирования в региональных университетах. На сегодняшний день в проекте участвует семь высших учебных заведений. Мы отобрали студентов, предоставили им тренеров по спортивному программированию и подготавливаем их к соревнованиям. Все это делается на бесплатной основе для региональных университетов.
Также у нас есть очень важный проект по разработке материалов по спортивному программированию на казахском языке. Так как сейчас большинство из них доступны на русском и английском языках, мы хотим, чтобы и казахскоязычная аудитория имела возможность изучать спортивное программирование.
Помимо этого, есть проект по организации учебных тренировочных сборов для студентов. Они состоятся в Astana IT University в конце июля. Планируется участие около 80 человек.
— Как новичок может начать участвовать в соревнованиях?
— Республиканский научно-практический центр «Дарын» при Министерстве просвещения организовывают крупные соревнования для школьников. Они начинаются осенью, в школах собирают заявки среди учеников. В начале им нужно пройти школьный этап, после идут районный и областной. В конце школьники с лучшими результатами переходят на республиканский уровень. По результатам этой олимпиады призеры награждаются грамотами и медалями.
Далее — республиканские сборы, на которые приглашают 12 лучших школьников по результатам школьных олимпиад в течение года. Цель сборов — отобрать четверку, которая будет представлять Казахстан на International Olympiad in Informatics (IOI). У каждого школьника своя цель — кто-то мечтает дойти до IOI, а кто-то хочет показать лучший результат в области или получить грант в университете.
Получай актуальные подборки новостей, узнавай о самом интересном в Steppe (без спама, обещаем 😉)
(без спама, обещаем 😉)