«Это не мир интровертов». Как и зачем школьникам участвовать в IT-олимпиадах
«Это не мир интровертов». Как и зачем школьникам участвовать в IT-олимпиадах
Зачем будущим программистам участвовать в IT-соревнованиях? А поступить в вуз или найти работу такие олимпиады помогут? Об этом и многом другом «Мелу» рассказал директор по дистанционным программам МФТИ, руководитель тренерского штаба сборной России по информатике Алексей Малеев. Спойлер: ничего общего с мемом про вечеринку сисадминов такие конкурсы не имеют.
Чтобы создать широкую сеть авиалиний, король тридевятого царства решил запустить рейсы, позволяющие добраться из одного города до любого другого — напрямую или с пересадками. Нужно выяснить, сколько существует способов соединить города в царстве таким образом.
Это типичный пример заданий, которые предлагаются участникам чемпионата по программированию Moscow Programming Contest. Условия задач могут быть любыми, главное — само решение, которое требует математического мышления и умения кодить. Соревнования по программированию, зародившись в 70-х годах, сейчас превратились в крупнейшую индустрию, которая объединяет сотни тысяч разработчиков по всему миру и привлекает технологических гигантов от Google до Amazon.
Участники чемпионатов создают алгоритмы для решения нестандартных задач, используя для этого популярные языки программирования. Это гораздо более сложная вещь, чем обычная разработка: здесь нет времени, чтобы посидеть и подумать, решение нужно найти как можно быстрее — и сделать это максимально элегантно.
Нужно уметь предвидеть ошибки, включать творческое мышление и использовать нетривиальные методы — а все это требует долгой глубинной подготовки. Но айтишники вкладывают столько сил не только ради победы: в IT-чемпионатах огромное значение имеет и само участие. Поэтому конкурсы по программированию хороши как для профессионалов, так и для начинающих: пока одни борются за первые места, другие знакомятся с программированием и пробуют решать свои первые задачи. Вот несколько основных причин попробовать свои силы в этой области.
Прокачать навыки
Как и Олимпийские игры, олимпиады по программированию требуют максимальной концентрации усилий. Участники должны уметь быстро находить решения сложных задач, проявлять смекалку и изобретательность, находить нестандартные решения, писать чистый код и предвидеть ошибки — не говоря уже о знании языков программирования. Все это результат многих месяцев тщательной подготовки, в процессе которой участники постоянно прокачивают свои навыки. Именно поэтому работодатели так охотятся за чемпионами IT-конкурсов: чтобы занять первое место, нужно быть настоящим профессионалом.
Кроме того, соревнования — это отличный шанс получить опыт решения реальных индустриальных задач, поскольку часто конкурсные задания разрабатывают компании: партнеры или организаторы конкурсов. Так, на первенстве Google Hash Code участники должны справиться с кейсами, над которыми работают программисты Google.
Наконец, некоторым чемпионатам предшествуют онлайн-курсы и интенсивы, где можно подготовиться к выступлению. Например, так делает RuCode, который приглашает участников на полноценные бесплатные обучающие программы: в этом году к курсу «Быстрый старт спортивное программирование» организаторы добавили два новых — «Быстрый старт в искусственный интеллект» и «Быстрый старт в язык программирования С++».
Получить престижную работу
Состязания по программированию — отличный карьерный лифт. Крупные компании в России и за рубежом внимательно следят за участниками соревнований, чтобы сделать победителям предложение на хороших условиях. За специалистами на чемпионатах охотятся крупнейшие корпорации. Некоторые из этих компаний (например, Google, Facebook, а в России — Mail.ru, «Яндекс» и «ВКонтакте») запускают собственные состязания для хантинга перспективных молодых айтишников. Так, участники, попавшие в топ Yandex Cup, могут устроиться в «Яндекс» по упрощенной схеме собеседований.
Впрочем, чтобы повысить свои шансы на перспективную работу, не обязательно занимать первые места в рейтинге: уже одно участие в соревнованиях высокого уровня говорит работодателю о компетенциях кандидата. В 2017 году исполнительный директор крупнейшей студенческой олимпиады ICPC Билл Паучер изучил данные о 20% участников чемпионата и выяснил, что более 3,5 тысячи из них стали директорами компаний, 570 — партнерами, 260 — топ-менеджерами. 20% работают или работали в международных IT-корпорациях.
Но самые сильные спортивные программисты и постоянные призеры редко устраиваются наемными работниками: чаще всего они уходят в собственный бизнес. Так, чемпионами IT-соревнований в свое время были Николай Дуров (программист и брат Павла Дурова) и Андрей Лопатин, стоявшие у истоков «ВКонтакте» и Telegram, основатель Zappos.com Тони Шей, бывший директор по технологиям Google Крейг Силверстайн и сооснователь Facebook Адам Ди Анджело. А вот Марк Цукерберг, который тоже участвовал в чемпионатах, титулованным спортсменом не стал.
Школьникам же IT-соревнования могут сильно упростить процесс поступления в вуз. Например, победители и призеры олимпиады «Технокубок» получают возможность поступать в российские вузы на привилегированных условиях.
Попасть в среду
Вокруг IT-чемпионатов сформировалось обширное комьюнити, объединяющее участников, тренеров, организаторов, представителей компаний и других увлеченных людей со всего мира. Поэтому участие в любом чемпионате — это возможность не только пообщаться с единомышленниками, но и завести полезные знакомства, найти будущих партнеров по бизнесу, работодателей, встретиться с интересными людьми и лучше погрузиться в рынок.
Многим соревнованиям предшествуют тренировочные сборы, которые помогают готовиться к различным этапам чемпионатов, и это еще один способ влиться в комьюнити.
Может сложиться впечатление, что соревнования предназначены только для сильных опытных программистов. Но это не так: существуют IT-чемпионаты для участников самого разного уровня — для студентов и школьников, для продвинутых и начинающих. Так что познакомиться с IT-тусовкой на конкурсах могут даже новички и подростки.
Развить мастерство дебаггинга
Поиск ошибок (багов) в коде, своем или чужом, — одна из самых долгих и муторных вещей в работе программиста. Но постоянные участники IT-соревнований редко испытывают эти трудности: поскольку время на решение конкурсных заданий ограниченно, а за неверный код назначаются штрафы, волей-неволей им приходится учиться не допускать ошибок, а если это случилось — как можно быстрее находить их и устранять. Кроме того, в некоторых соревнованиях мастерство дебаггинга позволяет получить дополнительные очки: например, участники Topcode Open могут зарабатывать баллы за ошибки, найденные в коде других участников.
Компании, где работают олимпиадники, часто признают, что они намного быстрее находят баги, чем остальные программисты, то же самое признают и сами участники соревнований. Это действительно очень ценный навык, который помимо прочего позволяет сэкономить огромное количество времени.
Усилить гибкие навыки
Хотя часто несправедливо считается, что IT-мир — это сообщество замкнутых интровертов, соревнования по программированию, как ни странно, отлично тренируют гибкие навыки. Во-первых, многие чемпионаты проводятся в командном формате, поэтому участие в них развивает умение работать в коллективе и навыки коммуникации. Во-вторых, конкурсы помогают прокачать личный тайм-менеджмент: как правило, их участники могут сразу оценить, сколько времени потребует у них решение той или иной задачи. Заодно соревновательная среда хорошо прокачивает стрессоустойчивость и способность действовать в конкурентных условиях.
Наконец, чемпионаты — это отличная возможность подтянуть английский: без знания языка невозможно принять участие в международных соревнованиях или тренировочных сборах при подготовке к ним. Так, Moscow Workshops регулярно проводит не только российские, но и зарубежные сборы: в Испании, Сингапуре, Китае, Индии, Омане и других странах. К тому же документация и многие мануалы, книги и видеоуроки по программированию написаны именно на английском.
Фото: Moscow Workshops / facebook