Текст уведомления здесь

Закодированные на победу

Как заставить хедхантеров ИТ-компаний драться за твою голову

Победы в соревнованиях по программированию для школьников — возможность поступить в вуз без конкурса, для студентов — получить работу в ИТ-компании. Что такое спортивное программирование и как начать им заниматься, рассказала Лидия Перовская, тьютор кафедры компьютерных технологий университета ИТМО и куратор академических программ «Яндекса».
Добавить в закладки
Комментарии
Что такое спортивное программирование

Классическим промышленным программированием занимаются ИТ-компании. У них есть крупные проекты, над которыми работают команды программистов. Каждый из них пишет часть кода для общего проекта. В спортивном программировании участники выполняют отдельную часть работы: они получают узкую задачу, исходные данные и выдают решение.

Задачи

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

Есть разные мнения, насколько спортивное программирование полезно человеку, который собирается работать программистом в ИТ-компании. Некоторые считают, что сосредоточенность на решении коротких задач, характерная для спортивного программирования, только мешает работе над настоящими проектами.

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

Кто и зачем проводит соревнования

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

Команда СПбГУ победила на ICPC в этом году
Команда СПбГУ победила на ICPC в этом году. Фото: icpc.baylor.edu
Что дает участие

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

«Многие ИТ-компании — тут я точно могу сказать про «Яндекс», Google и Facebook, но думаю, что и многие другие, — ищут ребят, хорошо разбирающихся в алгоритмах, потому что это основа основ в программировании. Такие компании следят и за результатами олимпиад типа ICPC, и за соревнованиями других компаний, и проводят свои чемпионаты», — рассказала Лидия.

«Я участвую в соревнованиях уже довольно давно, так что меня заметили все, кто хотел заметить. Рекрутеры Google и Facebook пишут уже не первый год, в «Яндексе» я и так работаю, периодически падают в почту приглашения от разных стартапов, несмотря на то что я не свечусь на сайтах для поиска работы. Могу сказать, что медаль финала ICPC может быть неплохой строчкой в резюме и плюсом к репутации, но быть замеченным проще в онлайн-соревнованиях», — рассказал Иван Смирнов, студент МФТИ, завоевавший в составе команды института «золото» на ICPC в 2016 году.

«Прямо предложения редко поступают, но соревнования — это большой плюс в резюме. Кроме того, на собеседованиях часто бывают полезны знания из спортивного программирования», — отметил его коллега по команде Артем Жук.

Как проходят турниры

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

Часто соревнование начинается с онлайн-тура. «Только ICPC может позволить себе собрать в очном туре 400 участников — это очень дорого. Обычно все соревнования либо целиком проходят онлайн, либо проводят в сети отборочные туры, и только самые лучшие участники проходят в очный тур», — пояснила Лидия.

Утешительная статистика

Российские студенты часто побеждают в крупных международных соревнованиях по программированию. Например, недавно выпускник ИТМО Геннадий Короткевич третий раз стал победителем соревнований Google Code Jam. Команды ИТМО и СПбГУ побеждают на ICPC с 2012 года, команды других российских университетов также часто выходят на призовые места в этих соревнованиях.

Что нужно для победы

Спортивные программисты, которые выходят в финал крутых соревнований, начинают писать программы еще в школе.

«Я попробовал решать задачки классе в седьмом, целенаправленно пошел на кружок в десятом, а в одиннадцатом достиг некоторых успехов. Почему — сложно сейчас уже вспомнить. Отец подарил книжку по основам программирования, я заметил, что у меня что-то получается, и понеслось», — сказал Иван.

Команда МФТИ на чемпионате Урала, который ежегодно проходит в УрФУ
Команда МФТИ на чемпионате Урала, который ежегодно проходит в УрФУ. Фото предоставлено Алексеем Малеевым

В ИТМО во время подготовки к финалам студенческого командного чемпионата мира по программированию, тренировки проходят два-три раза в неделю по пять часов. Не менее интенсивно готовятся к соревнованиям на Физтехе.

«Каждую неделю один или два раза мы с командой собираемся и проходим какое-нибудь старое соревнование в режиме, приближенном к боевому», — пояснил Иван.

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

Начать с нуля

Попробовать себя в спортивном программировании могут все желающие. Задачи для решения можно найти на сайтах чемпионатов:

ICPC

,

TopCoder Open

, «

Яндекс.Алгоритм

»,

Facebook Hacker Cup

,

Сodeforces

.

«Для того чтобы начать, полезно знать какой-нибудь язык программирования хотя бы на самом базовом уровне, а если есть желание изучить предмет подробнее, можно обратиться к книге «

Алгоритмы. Построение и анализ

», — объяснила Лидия.

Добавить в закладки
Комментарии
Вам понравилась публикация?
Расскажите, что вы думаете, и мы подберем подходящие материалы

Интересное кино

Как и на чем показывают трехмерные фильмы

Около года назад кинотеатры начали обзаводиться лазерными проекторами, а сейчас подоспели и новые киноэкраны. «Чердак» узнал о том, какие же они — экраны нового поколения.
Добавить в закладки
Комментарии

Последние несколько лет самыми кассовыми становятся киноленты, выпущенные в формате 3D. И, похоже, трехмерное кино не собирается сдавать свои позиции: эксперты считают, что еще более десяти лет 3D будет на коне. Попробуем разобраться, как же это работает.

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

Сегодня рынок 3D-систем в киноиндустрии делят между собой несколько компаний: XpanD, Dolby3D и RealD. Есть еще IMAX.

XpanD [ ... ]
Читать полностью

Дмитрий Федянин об электронике и оптических элементах компьютера

О работе современных процессоров, преимуществе оптических элементов перед привычными нам электронными компонентами компьютера и сложностях на пути их создания в эфире программы «Ученый свет» рассказал Дмитрий Федянин из лаборатории нанооптики и плазмоники МФТИ.
Добавить в закладки
Комментарии
Добавить в закладки
Комментарии
Вам понравилась публикация?
Расскажите, что вы думаете, и мы подберем подходящие материалы

Дмитрий Федянин о новых процессорах

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