Восемь причин участвовать в соревнованиях по спортивному программированию
Восемь причин участвовать в соревнованиях по спортивному программированию

Восемь причин участвовать в соревнованиях по спортивному программированию

8 апреля, 20207 минут на чтение

Разработчики каждый год входят в топ самых востребованных профессий, но компаниям по-прежнему не хватает крутых специалистов. Сейчас лучший момент, чтобы освоить профессию программиста: спрос огромный, а карантин дает возможность наконец-то взяться за онлайн-курсы. Разобрали с основателем Moscow Workshops, проректором МФТИ Алексеем Малеевым главные плюсы программерских контестов для карьеры и жизни в целом.

Фото здесь и далее представлены пресс-службой МФТИ и Randy Piland

В 2020-м весь мир буквально за пару месяцев ушел в онлайн: школы, магазины, офисы и предприятия стали работать в digital-формате. Пока во многих странах люди теряют работу из-за карантина, спрос на IT-специалистов продолжает расти. У одних только Zoom и Slack количество вакансий увеличилось на 50-100%. Эпидемия коронавируса также показала – тысячи задач и процессов нуждаются в автоматизации, но потенциал до сих пор не реализован.

The companies that are hiring even as the global economy grinds to a halt
Groceries, healthcare companies, and remote work firms are gearing up for the coronvirus pandemic.

В этих условиях спрос на специалистов по искусственному интеллекту и работе с большими данными растет рекордными темпами. Как отмечали аналитики LinkedIn в недавнем отчете о будущем рынка труда: "Быть инженером/разработчиком выгодно всегда". Сейчас, в период масштабной digital-перестройки и массового перехода на удаленку, это высказывание актуально, как никогда.

Повышенный спрос на ИТ-специалистов рождает большое количество курсов, где учат программированию. И скоро уже будет совсем непросто выделиться знанием Java на рынке труда. Но есть отрасль, в которой можно себя проявить и прокачать навыки на новом уровне, – чемпионаты по спортивному программированию. Она быстро растет: на самой популярной в мире соревновательной платформе по спортивному программированию Codeforces по итогам 2019 года было более 800 тысяч зарегистрированных пользователей, из которых 500 тысяч сдали хотя бы одну задачу. Два года назад пользователей платформы было в два раза меньше.

Каждый год по всему миру появляются новые соревнования для школьников, студентов и профессиональных программистов. Миллионы людей увлеченно решают алгоритмические задачи, разбирают сложные кейсы из IT-индустрии и показывают чудеса кодинга за рекордный срок.

Кажется, что за этим стоит лишь азарт и "спортивный интерес". Однако спортивное программирование – это идеальная среда для ускоренной прокачки навыков, а также оптимальная отправная точка для старта карьеры. Разберемся, почему.

Знакомство с коммьюнити

В первую очередь соревнования по спортивному программированию – это среда единомышленников. За каждой победой стоят тысячи часов подготовки: это как индивидуальная работа, занятия с тренерами, так и сборы, как в привычном спорте. То есть участник постоянно взаимодействует с другими людьми, такими же увлеченными и талантливыми. Многие начинают еще со школьных олимпиад по математике и информатике.

У спортивного программирования сильное сообщество выпускников, многие из которых стали известными на весь мир программистами, основателями компаний. Те, кто уже выпустились из вузов и закончили соревновательную карьеру, продолжают взаимодействовать с коммьюнити, поддерживают следующие поколения, ищут себе в команду стажеров и сотрудников в этой среде, открывают вместе проекты и бизнесы. Например, сооснователи российского стартапа AI Factory Виктор Шабуров и Александр Машрабов участвовали в чемпионатах ICPC в разные годы. И горизонтальное движение очень распространено – хорошим ребятам предлагают новые интересные задачи внутри компаний.

Связь с бизнесом

Бизнес встроен в систему спортивного программирования: компании спонсируют контесты, хантят медалистов. Крупные чемпионаты посещают сотрудники таких IT-корпораций, как Google, Яндекс, Mail.ru Group, Сбербанк, МегаФон: они знакомятся с конкурсантами, а победителям часто предлагают работу. Для бизнеса соревнования по программированию - это еще и возможность получить экспертизу: какие тенденции есть в академическом сообществе, как выстраивать свои образовательные проекты, проводить лекции, соревнования. Так сохраняется баланс между академической средой и прикладными задачами, а классические программы обучения не становятся оторванными от жизни.

Навык командной работы

Обычно соревнования по программированию – командные, по три человека в команде. Когда вам нужно за несколько часов решить сложную задачу, на которую обычно требуется целый день, приходится подстраиваться друг под друга и быстро преодолевать конфликты.

Это полезное свойство, поскольку в корпоративной среде программисты всегда работают в связке с другими специалистами: маркетологами, аналитиками, продакт-менеджерами, поэтому без гибких навыков не обойтись. Командные соревнования помогают лучше понимать коллег, более грамотно делегировать задачи и решать конфликтные ситуации.

Сейчас быстрее развиваются те, кто умеет кооперироваться, вливаться в новые команды, уважительно относиться к другим людям и доносить свою точку зрения.  

Профессиональный рост

Попадая в систему соревнований по спортивному программированию, вы включаетесь в непрерывный интеллектуальный процесс. Здесь также действуют правила конкуренции. Кто быстрее придумал решение задачи, у кого это решение получилось более лаконичным и эффективным. Нужно постоянно совершенствовать свои навыки, работать быстрее и продуктивнее, чтобы на каждом турнире добиваться лучших результатов.

Опыт работы в условиях жестких ограничений помогает справляться со сложными проектами и комплексными задачами. В результате разработчики пишут более чистый и совершенный код, который не надо переделывать.

Достичь статуса победителя – это значит проделать колоссальную работу над собой. Но для профессионального роста не обязательно становится медалистом – участие тоже значительно развивает навыки. К тому же каждый год организаторы добавляют новые модули, тестируют новые технологии – благодаря этому участники легко ориентируются в последних тенденциях. Например, на российском фестивале спортивного программирования RuCode добавили трек по искусственному интеллекту, а в программу чемпионата вместе с Сбербанком и Аналитическим центром при Правительстве РФ включили задания с реальными датасетами.

Тем, кто хочет проявить себя, доступны множество путей и ресурсов в формате интенсивов, онлайн-курсов, семинаров и вебинаров. Бесплатные обучающие программы также есть у Стэнфордского университета и MIT. Кстати, карантин дает отличную возможность попробовать себя в новом направления и порешать задачи для эксперимента.

Не стоит забывать и о том, что участие, а тем более победа в крупном чемпионате по спортивному программированию – это хороший пункт в резюме. Бэкграунд и навыки олимпиадника ценятся во многих компаниях, а медалистам часто предлагают самые интересные и креативные задачи.

Бенчмаркинг

Новичкам бывает трудно объективно оценивать свои навыки. Особенно это касается школьников и студентов, которые пока еще не стали частью профессионального сообщества. Или программистов, которые давно работают на удаленке и хотят проверить, насколько их навыки отвечают современным требованиям. Для этого некоторые IT-специалисты ходят на собеседования в сторонние компании.

Участие в чемпионате – менее рискованный шаг, который одновременно поможет получить фидбек от коллег и наладить связь с единомышленниками.

Кроме того, любой контест позволяет определить сильные и слабые стороны. Например, понять, с какими языками программирования работать проще, какие задачи даются быстрее, а какие, наоборот, отнимают кучу времени. В результате повышается производительность, поскольку разработчик грамотнее расставляет приоритеты и эффективнее решает задачи.

Прокачка английского языка

Исследование американских ученых показало, что склонность к изучению языков – более ценный для программиста навык, чем базовое знание математики. Возможно, для некоторых задач в программировании это правило действительно работает.

Но для программирования в целом важнее даже просто знание английского языка. Во-первых, без него просто никуда. Во-вторых, знание открывает возможность заявить о себе в международном коммьюнити и свободного взаимодействовать с мировыми лидерами IT-индустрии. Даже на международных контестах без знания языка выступить не получится. Поэтому участие в чемпионате – хороший стимул для практики.

Возможность путешествовать

Пхукет, Рапид-Сити, Пекин, Порто - города проведения последних финалов чемпионата ICPC. Он, как и олимпиада по информатике IOI каждый год проводится в новом месте.

До пандемии коронавируса спортивное программирование давало возможность посмотреть мир, познакомиться с разными культурами и найти единомышленников из разных стран. Соревнований очень много: финал Google Hashcode проводится в Дублине, финалы Яндекс.Алгоритма, Google Code Jam, TopCoder Open, Facebook Hacker Cup кочуют из города в город, заключительный этап VK Cup базируется в Санкт-Петербурге. Там же проводится и чемпионат Северной Евразии Университетом ИТМО - это полуфинал чемпионата ICPC по регионам, в число которых входит Россия.

Чемпионаты по спортивному программированию проводят не только ИТ-компании, но и вузы, и студенты съезжаются на них из разных городов и стран: БГУИР организует чемпионат в Минске, открытый Чемпионат Урала проводят уральские вузы, последние три года - Уфимский государственный авиационный технический университет в Уфе, RuCTF  в Екатеринбурге делается силами Уральского федерального университета, Всесибирскую олимпиаду по программированию им. И.В. Поттосина проводит Новосибирский государственный университет, KPI-OPEN в Киеве организует Киевский политехнический институт. Для практики можно ездить и на хакатоны, одни из самых крупных - Junction в Хельсинки, HackZurich в Цюрихе.

Путешествовать можно и по международным сборам по программированию, - как в обычном спорте. Сборы Moscow Workshops, которые зародились на кампусе Физтеха, открываются все в новых и новых локациях: в Китае, Испании, Омане, Сингапуре, Бразилии, Латвии, в живописных местах России - на Дальнем Востоке и Байкале. Большинство программ короткие, поэтомы можно в течение года успеть побывать в нескольких локациях.

Стрессоустойчивость

Соревнования помещают разработчиков в конкурентную среду. Любой контест – это выход из зоны комфорта, за рамки привычной обстановки квартиры или офиса.

В результате развивается иммунитет к стрессовым условиям и прокачивается умение работать в непривычных условиях. Посторонний шум, горящие дедлайны, жесткая конкуренция – олимпиадное программирование учит работать даже под прессингом. В результате появляется не только стрессоустойчивость, но и гибкость – умение оперативно менять стратегию, экспериментировать и быстро подбирать новые решения.

8 апреля, 2020

Сейчас читают

Редакция рекомендует

Картина дня

Свежие материалы

Свежие материалы