luckyea77 (luckyea77) wrote,
luckyea77
luckyea77

Categories:

Профессия «топ-кодер»: как опыт спортивного программирования помогает строить карьеру



С соревнований по спортивному программированию когда-то начинали топ-менеджеры Facebook и Zappos, выдающиеся разработчики «ВКонтакте», «Яндекса», JetBrains и Huawei. За «спортсменами» охотятся HR-отделы лучших IT-компаний, а задачи с контестов используют на собеседованиях.

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


В школьные годы Сергей Федоров каждый день решал задачи по программированию — на это хобби у него уходило по 20 часов в неделю. В 2009 он получил золотую медаль на Международной олимпиаде по информатике (IOI), а в 2012 и 2013 — «бронзу» на чемпионате мира по спортивному программированию ICPC. Сегодня Федоров разрабатывает беспилотные автомобили в «Яндексе», а за его плечами — оффер от Facebook и работа в крупном хедж-фонде.

Такие карьерные траектории — не редкость для топ-кодеров, которые еще со школы занимаются спортивным программированием. Среди бывших победителей соревнований, таких как HashCode, VK Cup и Russian Code Cup, — основатели и топ-менеджеры крупнейших IT-компаний, ведущие разработчики и инженеры, бизнесмены и инвесторы.

Кодовую базу «ВКонтакте» и Telegram писали спортивные программисты, в том числе Николай Дуров, брат Павла Дурова. С контестов начинал свою карьеру Адам Д'Анджело, бывший техдиректор Facebook и основатель Quora, а также Крейг Сильверстейн — первый сотрудник Google, который впоследствии получил должность CTO.

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

В России спортпрограммирование набирает все большую популярность: страна стабильно входит в тройку лидеров по количеству «спортсменов» на платформе Codeforces, а российские программисты регулярно побеждают на международных соревнованиях: Россия лидирует по числу наград на Google Code Jam и Facebook Hacker Cup и входит в тройку лидеров первенства TopCoder Open.

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

Несмотря на растущую популярность, спортивный опыт по-прежнему высоко ценится на рынке труда. Участие в международных контестах — отличный пункт в резюме, но можно выделить еще как минимум пять преимуществ, которые помогают топ-кодерам строить успешную карьеру.



Знание лайфхаков на собеседованиях

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

Обычный программист в таких условиях испытывает стресс, а для «спортсмена» это привычная среда.

На начальных этапах изучения программирования требуется выработать стиль мышления, иногда называемый «алгоритмическим мышлением». Спортивное программирование — очень эффективная тренировка алгоритмического мышления. Владение базовым уровнем спортивного программирования является надежным признаком минимально необходимой квалификации программиста.

Александр Кленин, преподаватель ДВФУ, директор четвертьфинала ICPC на Дальнем Востоке, научный руководитель Тихоокеанских школ по информатике.


Интересно, что многие спортивные программисты создают стартапы в сфере HR. Например, основатели платформы CodeSignal, которые привлекли $12,4 млн, прежде участвовали в олимпиадах по информатике и математике. Они разработали собственную методику оценки программистов, которая присуждает каждому персональный рейтинг. По нему работодатель отбирает сотрудников с нужным уровнем.

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

Умение решать нерешаемое

Для спорпрограммиста нет понятия нерешаемой задачи — он знает, что ответ всегда можно найти. Вопрос только в том, насколько эффективным и «элегантным» будет решение. Участие в чемпионатах прокачивает гибкость и адаптивность — топ-кодеры умеют менять стратегию и выбирать оптимальные инструменты. И чем богаче их опыт участия в контестах, тем более широким инструментарием они владеют.

Не зря именно «олимпиадников» в компаниях ставят на проекты, которые нуждаются в прорыве. По словам Сергея Федорова, разработчика беспилотников в «Яндексе», он занимается задачами, которые пока еще никто не научился решать. Например, учит автомобиль избегать аварийных ситуаций и следовать ПДД в автономном режиме.

Как ни парадоксально, но олимпиадное программирование с его жесткими регламентами и стандартами развивает еще и творческие способности. Это заметил лектор МФТИ и тренер по спортпрограммированию Филипп Рухович, за плечами которого победы на различных соревнованиях по алгоритмическому программированию.

Развивается творческое мышление, умение придумывать новые алгоритмы, а еще упорство. Это помогает и в работе, и в жизни.

Филипп Рухович, лектор МФТИ, тренер по спортивному программированию


Мастерство дебаггинга

Кодинг на 90% состоит из устранения багов и только на 10% — из написания кода, утверждал создатель протокола BitTorrent Брэм Коэн. Его часто цитируют в программистских пабликах и на форумах.

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

Почему? Причина, опять же, в специфике чемпионатов: конкурсанты должны выпустить работающее решение во что бы то ни стало. А значит, предусмотреть любые баги еще на стадии разработки.

У меня на поиск и устранение багов действительно уходит меньше времени. Бывает, что пишу что-то строк на 200 и оно с первого раза работает — просто магия.

Сергей Цаплин, инженер Huawei и финалист VK Cup, победитель финала Северного Евразийского региона


Связи с сообществом

Участники сборов и чемпионатов по спортивному программированию отмечают, что им часто предлагали работу как в крупных IT-компаниях, так и в перспективных стартапах. Соревнования считаются отличным инструментом хантинга – для этого Google организует свои первенства Code Jam и Hash Code, а Facebook и VK проводят турниры под своим брендом.

Офферы от IT-гигантов — большой плюс, но есть и другие преимущества. Важную роль в карьере топ-кодера играет сообщество: команда единомышленников, которые мотивируют совершенствоваться и прокачивать навыки.



Обычно соревнования по программированию командные — по три человека.

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

Олег Христенко, главный судья Moscow Workshops, методист, преподаватель и технический координатор фестиваля Rucode


Бывший CTO Facebook и основатель Quora Адам Д'Анджело признавал, что добился успехов в кодинге благодаря поддержке друзей на платформе Topcoder.

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

Адам Д'Анджело, экс-CTO Facebook, основатель Quora


Широкий кругозор и открытость миру

За свою карьеру среднестатистический чемпион успевает объехать весь мир: он участвует в региональных соревнованиях, посещает сборы, такие, как Moscow Workshops, в Европе, Америке и Азии, выступает на чемпионатах, которые каждый год проводятся в разных городах — от Беверли-Хиллс до Екатеринбурга.

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

Руслан Гатин, финалист ICPC 2013 в составе команды ИжГТУ, разработчик в ижевском филиале СКБ «Контур»


Его конкуренты — это лучшие «олимпиадники» со всего мира, которые владеют разными языками и принадлежат к разным культурам. Но в решении задач все пользуются одним понятийным языком и мыслят одинаково — это сближает и стирает границы. Разработчики с опытом спортивного программирования умеют находить общий язык с разными людьми, работать в команде и ясно излагать свои идеи и мысли.

Пять преимуществ спортивного программирования для карьеры

1. Опыт решения сложных задач, который помогает с легкостью проходить собеседования в крупнейше IT-компании. Участие в международных контестах хорошо смотрится в резюме и дает преимущество перед другими соискателями.
2. Изобретательность и умение находить оптимальные решения с помощью алгоритмического мышления. Минимум инструментов и жесткие ограничения по времени не помешают «олимпиаднику» справляться с задачами.
3. Способность писать чистый код и развитые навыки «редактирования» — дебаггинга. «Спортсмен» умеет быстро создавать продукт, который потом не придется полностью переделывать.
4. Поддержка единомышленников, которая заставляет постоянно учиться, совершенствоваться и прокачивать навыки.
5. Насмотренность и широкий кругозор, которые развиваются в процессе сборов и чемпионатов благодаря общению с программистами со всего мира. «Олимпиаднику» легко работать в команде — он не ставит свое эго на первое место и всегда помнит об общих целях. Кроме того, спортпрограммисты обычно хорошо знают английский и умеют работать в удаленном режиме, что позволяет им работать в международных компаниях.

Источник

Tags: программирование
Subscribe

Posts from This Journal “программирование” Tag

promo luckyea77 june 19, 23:05 10
Buy for 10 tokens
Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Март 2018 года Индустриализация стала основным инструментом достижения экономического богатства стран, начиная с появления прядильных машин в конце XVIII века; при смене технологических укладов менялись местами мировые промышленные лидеры. Какой…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 9 comments