Если верить известному американскому программисту и автору Эрику Реймонду, «обучение программированию не может научить быть экспертом, так же, как изучение кистей и красок не может превратить кого-либо в художника». Практика — вот ключ к развитию истинного навыка. В мире ИТ под этим подразумевают написание кода и решение задач. К сожалению, академической программы часто не достаточно. Путь профессионала лежит за пределами зоны комфорта и часто проходит через спортивное программирование.
Программирование заявило о себе как о спорте еще в 70-х годах прошлого века. Спонсорами международных турниров становились такие гиганты, как IBM, Apple, Microsoft. В цифровую эпоху, которую открыл 21 век, быстро растет число участников движения в целом и отдельных конкурсов в частности. Например, на участие в соревнованиях Hashcode от Google в 2016 году было подано чуть больше тысячи заявок, а уже в 2019 году — 6,6 тысяч.
Российское олимпиадное движение зародилось спустя десятилетие после западного: школьники впервые соревновались между собой в Москве в 1981 году. Чуть позже оно охватило и студентов.
Глобальное олимпиадное пространство
Сегодня в мире проводятся сотни чемпионатов по спортивному программированию — от любительских до профессиональных, от локальных до мировых. Организаторами выступают как университеты, некоммерческие фонды и организации, так и игроки ИТ-рынка. Это хорошая возможность для компаний улучшить позиционирование HR-бренда в профессиональной среде программистов, а также вовремя выявить и «завербовать» юные таланты. Так, Google проводит Google Code Jam, Hashcode, не отстают и отечественные игроки — «ВКонтакте», например, запустили VK Cup.
Российские университеты активно поддерживают движение: оно объединяет сотни вузов, включая первопроходца — Санкт-Петербургский Университет ИТМО. В академическом мире признают позитивное влияние олимпиадного движения на уровень знаний и навыков студентов.
«Спортивное программирование учит людей самому важному навыку — быстро находить эффективное решение предложенной задачи. Соревнования прекрасно развивают и навыки быстрого кодирования, парного программирования. Впоследствии участники реже допускают ошибки, связанные с граничными случаями для их задач, корректно обрабатывают ситуации, когда данных для работы программы недостаточно или они просто отсутствуют. Многие компании обращают внимание на резюме соискателей, если в них указаны успехи даже на региональных соревнованиях», — отмечает Сергей Виденин, заведующий кафедры «Информационные системы» Института космических и информационных технологий СФУ.
Количество и масштаб игр в области спортивного программирования увеличиваются пропорционально растущему спросу на специалистов в ИТ-индустрии. Молодые программисты стремятся попасть на такие состязания, как Topcoder Open и соревнования от Google, а совсем юные — на международную олимпиаду школьников по информатике (IOI). В этот турнир вовлекается все больше стран в последние годы: в прошлом году было 87, а четыре года назад — 80.
При этом Россия остается одной из немногих стран, которая способна создать по-настоящему глобальные образовательные площадки. Так, например, всего за месяц из-за ситуации с коронавирусом мы были вынуждены перевести в онлайн-формат очный всероссийский фестиваль по искусственному интеллекту и спортивному программированию RuCode Festival, который должен был пройти в 10 городах от Владивостока до Москвы. И в этих обстоятельствах нам удалось привлечь более 2 000 человек со всей России, а также команды из ведущих университетов 58 стран мира, включая Польшу, Канаду, Израиль, Южную Корею, Швейцарию.
А это значит — за нашими инициативами не просто внимательно следят, но они могут привлекать значительное количество участников по всему миру, открывая качественно новые перспективы для экспорта образования.
Чего добились российские ИТ-спортсмены?
Россию можно по праву назвать сокровищницей ценных ИТ-ресурсов. Наши молодые программисты не перестают удивлять своими результатами. Взять прошлый год: российская сборная завоевала 4 золотые медали на Международной олимпиаде школьников IOI в Баку. А команда МФТИ заняла первое место в Международной открытой студенческой олимпиаде KPI-OPEN 2019.
Российская школа спортивного программирования в мире — это как отечественное фигурное катание: мы, объективно, в этом очень сильны. Например, в рамках ICPC наши участники стали абсолютными рекордсменами: с 2000 года они завоевали 33 золота. Это на 20 медалей больше по сравнению с Европой, и на 26 — с США. Победители — выходцы вузов со всей страны. Хотя университеты из крупных городов лидируют (команда Университета ИТМО выигрывала чемпионский титул 7 раз, из СПбГУ — 4, МГУ — 2 раза), регионы тоже не отстают: Саратовский государственный университет принес победу в 2006 году.
Мировое лидерство вызвано историческими обстоятельствами, считает Иван Смирнов, финалист Google Code Jam, золотой и серебряный медалист ICPC. «Утрируя — американцы поколениями играют в баскетбол, шведам и канадцам почти нет равных в хоккее, а у нас ещё с советских математических школ сильное олимпиадное направление. Дальше обратная связь: на волне успехов товарищей новые школьники и студенты учатся решать задачи, растёт массовость, появляются школы, сборы, кружки. Это в свою очередь ещё сильнее помогает участникам расти и выигрывать, и так по кругу. Для молодых людей соревнования — это возможность быстрого старта. Того, кто прошел этот путь, уже не нужно учить базовым вещам. На самом деле, победы не так важны: задачи, характерные для олимпиад, на работе встречаются крайне редко. Важно другое: чтобы человек в процессе приобрел навыки обучаемости и саморазвития», — говорит разработчик Яндекса.
Действительно, соревнования не должны проходить в вакууме. Они приносят реальную пользу, если сочетаются с обучением. Именно передача навыков от профессионалов подрастающему поколению — главная задача Moscow Workshops (где, кстати, Иван Смирнов участвует в качестве преподавателя). Этот образовательный проект родом из России, сочетающий в себе онлайн-обучение, лагерь для школьников и короткие тренировочные сборы, приобрел международное значение. В прошлом году он привлек практически 900 участников в 10 точках мира, включая Южную Америку и Азию. Обратная связь от студентов говорит о том, что каждый второй очень высоко оценивает уровень полученных знаний.
Спортивное программирование как драйвер развития рынка
Олимпиадное сообщество способствует развитию индустрии в целом, а не только повышает качество специалистов на рынке труда. «Аккумулирование мозгов» в одном месте позволяет создавать действительно прогрессивные решения и самодостаточные продукты. Яркий пример — Looksery Inc, где команда «олимпиадников» разработала приложение, позволяющее примерять AR-маски, которое было продано Snapchat за $150 млн.
Snap также недавно купил AI Factory, одним из основателей которого является Александр Машрабов — многократный финалист соревнований по спортивному программированию. По его собственным словам, своим успехам он во многом обязан олимпиадам: они помогают научиться эффективно писать код на языке C++, который, в свою очередь, важен для работы с нейронными сетями. Все дело в возможности отработать навыки алгоритмического решения разнообразных задач. В реальной жизни, например, пригодятся такие алгоритмы, как Ахо-Карасик, Дейкстры и другие. «Работа в команде на соревнованиях помогает выработать эмпатию и понимание, что у каждого есть слабые и сильные стороны. А еще спортивное программирование — это способ познакомиться с интересными людьми», — заметил Александр Машрабов.
Если посмотреть на чемпионаты с позиции работодателя, то они помогают найти зарождающихся звезд в мире программирования и «воспитать» их с целью дальнейшего найма. С увеличением разрыва между спросом на интеллектуальные кадры и реальным предложением на рынке, компании используют любую возможность для развития собственного HR-бренда и повышения экспертизы будущих специалистов.
«Мы активно поддерживаем внешние чемпионаты, например студенческий командный чемпионат мира по программированию ICPC (на всех этапах) или фестиваль RuCode, программу которого составляют эксперты МФТИ. В этих соревнованиях принимают участие сильные программисты, лучшие из них, как правило, продолжают свой путь в крупных российских и международных компаниях, в том числе и в нашей», — поделился Алексей Толстиков, руководитель Яндекс.Алгоритм.
Видимый эффект от олимпиадного движения можно наблюдать уже сегодня. Молодые программисты не только достойно представляют страну на мировой ИТ-арене, но и способствуют развитию инноваций. Это результат эффективного взаимодействия трех заинтересованных сторон: компаний, университетов и участников.