В мае команда студентов механико-математического факультета Пермского университета Indigenous отправится в Америку на престижные соревнования по программированию – чемпионат ACM-ICPC. В городе Рапид Сити (Южная Дакота, США) 21-летний Илья Кучумов, 24-летний Михаил Майоров и 23-летний Богдан Прищенко будут бороться за золотые медали со 131 командой-конкурентом из разных стран. Готовит ребят к чемпионату тренер Юрий Айдаров.
Молодые программисты рассказали 59.ru, как готовятся к олимпиаде, сколько времени тратят на тренировки и где мечтают работать после окончания учебы в университете.
В команде Indigenous только Миша – пермяк. Богдан и Илья приехали в столицу Прикамья специально, чтобы войти в сильную команду и принять участие в мировом первенстве.
– Три года я учился в УрФУ в Екатеринбурге, а в сентябре 2016-го перевелся сюда, потому что знал – в Перми хорошая подготовка в сфере олимпиадного программирования. Мне важно было тренироваться вместе с сильными участниками, такими, как Миша, – рассказывает Илья.
Илья приехал в Пермь из Екатеринбурга
Богдан, который недавно вошел в топ-20 лучших программистов мира, приехал к нам из Украины, из города Новый Раздол Львовской области. Диплом бакалавра он получил в Львовском национальном университете. А в магистратуру поступил в Пермь.
– Две главные причины переезда. Первая – здесь есть и финансовая, и идейная поддержка. Многие компании Перми стали нашими спонсорами. В Украине, например, порой негативно относятся к таким олимпиадам, говорят, что это никому не нужно. Вторая причина – для соревнований нужна хорошая сильная команда. Каким бы крутым ни был участник, в одиночку ему выступать сложно. А здесь был Миша, один из сильнейших спортивных программистов мира, – говорит Богдан.
Богдан (слева) говорит, что приехал в Пермь, чтобы участвовать в соревнованиях по программированию в одной команде с Мишей (справа) – одним из сильнейших спортивных программистов мира
По словам Миши Майорова, в нашем городе хорошая довузовская подготовка.
– Я учился в школе №9, где всегда много учеников-победителей олимпиад по информатике. Наша учительница Галина Михайловна Шульгина много внимания уделяет подготовке школьников, организовывает поездки в лагеря, – рассказывает Михаил. – До приезда ребят я не участвовал в командных соревнованиях, только в одиночных.
Спортивное программирование – это интеллектуальные соревнования, в которых участники с помощью компьютера решают алгоритмические задачи за ограниченное время.
Классический формат таких соревнований – олимпиада по программированию ACM ICPC, генеральным спонсором которой выступает компания IBM. Командам предоставляются компьютеры и задачи (в среднем около 12). На все – пять часов. Содержание задач сводится к описанию входных данных и того, что требуется получить на выходе. Команда предоставляет решение в виде программы на одном из установленных языков программирования. Организаторы проверяют решение с помощью набора тестов. Побеждает команда, решившая как можно больше задач за наименьшее время. Отборочные соревнования в России проводятся с 1996 года, с самого начала в них участвуют команды Пермского государственного национального исследовательского университета.
– Расскажите подробнее о чемпионате в США.
Илья: Чемпионат мира состоит из нескольких этапов. 1/8, четвертьфинал, полуфиналы и финал. Чтобы гарантированно попасть на финал, нужно было войти в число лучших в общей таблице по итогам всех этапов. К тому же, есть ограничение – не больше одной команды от вуза. В рейтинге мы, Indigenous, были выше еще одной команды ПГНИУ «Moi Kod Idealen». Поэтому мы прошли, они – нет, – говорит Илья.
Богдан: В Америке состоится одно пятичасовое соревнование. Всего приедет около 100 команд со всего мира. Организаторы дадут всем по 12 задач, которые нужно решить правильно и быстро. Кстати, к компьютеру каждого участника подключат вебкамеру, так что за нами можно будет следить в прямом эфире, – поясняет Богдан.
По словам ребят, тактики, специально разработанной для этих соревнований, у них нет. Программисты определятся, кто и какие задачи будет решать, как только получат вопросы.
Илья: Обычно читаешь задачу и понимаешь – не мое. Тогда ты передаешь ее, а сам выбираешь другую. Мне, например, лучше всего удается решать задачи, связанные с геометрией.
Богдан: Главное – добиться того, чтобы команда быстрее сдала работу. У меня хорошо получается оптимизировать решения, превращать почти правильные – в правильные. Например, есть решение задачи, которое занимает немного памяти, но работает медленно. Тогда я смотрю его и переписываю код, чтобы оно было не тяжелым и работало быстро.
Миша: Я больше люблю теорию. Придумываю код. А ребята уже пишут его.
Илье больше нравится решать задачи, связанные с геометрией. У Богдана хорошо получается оптимизировать решения. А Миша любит прорабатывать теоретическую часть
– Задачи на этом чемпионате – практико-ориентированные. То есть их решения могут пригодиться в реальной жизни. Вы знаете, что именно предложат вам организаторы?
Богдан: Например, могут дать данные какой-нибудь карты города, а мы составим оптимальный маршрут для разносчика пиццы. Это будет программа, принимающая любые входные данные. Для проверки правильности решения организаторы подготовят набор тестовых данных. Если при их вводе программа сработает, значит все получилось.
Илья: Есть два класса задач. На олимпиаде ICPC, где мы будем соревноваться, задачи уже решили до нас, а это значит, есть точное решение. Существуют другие классы соревнований, где дают задачи, над которыми работают прямо сейчас представители крупных компаний.
Студенты говорят, что готовятся каждый день. Иногда даже не хватает времени на учебу. Илья, Миша и Богдан днем тренируются вместе в университете, а по вечерам – поодиночке дома.
Илья: Прошло уже очень много соревнований такого уровня, поэтому в интернете много подходящих для тренировки задач.
Миша: Для того чтобы было больше мотивации, я не просто тренируюсь, а участвую в виртуальных соревнованиях – раза три в неделю по два часа. Энтузиастов спортивного программирования очень много, поэтому и разных турниров в интернете достаточно.
Богдан: Я пытался посчитать, сколько времени уходит у меня. Оказалось, около 10-11 часов в день. Это и тренировки в университете (5 часов), и дома. Дело в том, что наши занятия не похожи на спортивные. Они не заканчиваются никогда. Мы думаем о решении задач на прогулках, во время поездки домой или в университет.
– Как вы оцениваете своих конкурентов?
Богдан: Среди самых сильных – американцы и китайцы.
Миша: Кстати, большинство участников команд США – этнические китайцы. Они представляют Америку, переехали туда учиться, но родом из Китая.
Богдан: Азиатам нравится решать задачи.
Илья: И, кстати, участники других стран не пренебрегают конкурентами из России. У нас очень сильные программисты. Шесть (!) последних чемпионатов выигрывали команды из санкт-петербургских вузов.
– На таких чемпионатах присутствуют представители крупных компаний, которые выбирают себе потенциальных работников?
Богдан: Конечно. Достаточно сказать, что и Google, и Facebook проводят свои собственные соревнования по спортивному программированию с финалами прямо у них в офисах. Они заинтересованы в победителях как в будущих сотрудниках.
– То есть победителям таких соревнований крупные компании предлагают проекты или работу.
Богдан: Компания IBM (американская компания со штаб-квартирой в Армонке, один из крупнейших в мире производителей и поставщиков аппаратного и программного обеспечения, а также ИТ-сервисов и консалтинговых услуг. – Прим. ред.), спонсирующая олимпиаду в Америке, предлагает всем золотым медалистам трудоустройство в любом подразделении.
Кроме того, Google и Facebook рассылают письма с приглашениями на собеседования всем, кто попадает в топ-1000 лучших программистов мира по результатам их соревнований. Миша, например, вошел в топ-25 и получал предложения о работе.
Миша: Писем пять в год нам точно приходит – как от крупных мировых и всероссийских компаний, так и от местных.
Илья: Но пока мы участвуем в соревнованиях и учимся, у нас нет времени работать постоянно. Поэтому от предложений пока отказываемся.
Ребята говорят, что минимум пять раз в год им приходят предложения о работе от крупных IT-компаний
– Но вы ведь не будете все время участвовать в олимпиадах по программированию. Какие там ограничения?
Богдан: Есть базовые требования – участник не может участвовать более чем в двух финалах, более чем в пяти отборочных циклах. Он должен быть студентом очной или заочной формы обучения. Возраст – до 23 лет. Но организаторы часто делают поблажки. Например, для тех, кто был в армии и до 23 лет, не успел поучаствовать.
– Какие перспективы у программистов в Перми и России? Вы уже определились, где хотите работать после окончания вуза?
Илья: Есть отличные компании «Яндекс», «ВКонтакте». Там работают многократные чемпионы по спортивному программированию. Но из нас пока никто не работал на фултайме (полный рабочий день), сказать, где я хочу трудиться в 30 лет, не могу. Будем пробовать.
– Сегодня престижно быть программистом, а хорошие специалисты в этой области быстро находят работу?
Богдан: Программистов много, одни уходят в маленькие стартапы, другие – в большие корпорации и спецслужбы. Последним нужны высококвалифицированные специалисты (которых в разы меньше), ведь цена ошибки там выше.
Миша: Последние пять-десять лет – да. Изменилось представление о программистах. Если раньше в общественном сознании это был бородатый чувак в растянутой футболке, то сейчас это представительный и серьезный человек.
Богдан: Многие до сих пор плохо представляют, чем занимаются программисты. Но понимают, что без них никуда. Программу установить, компьютер починить, сайт сделать – все это к нам.
– Как программисты становятся хакерами?
Богдан: Все зависит от характера программиста.
Миша: Это специфическая область. Но не значит, что все хакеры – плохие. Есть «белые» хакеры, есть «черные». В любом случае, те, кто взламывают, получают большой адреналин. Им нравится рисковать.
Ребята отправятся на олимпиаду по программированию в мае. До этого практически все время у них расписано – участие в чемпионате Урала по спортивному программированию, сборы финалистов ACM ICPC. Портал 59.ru желает пермским студентам удачи в соревнованиях!
– Сейчас ребята занимаются поддержанием формы. Навык решения задач нужно постоянно актуализировать. Я думаю, что на финале будет много достаточно простых задач и Миша, Богдан и Илья смогут решить все. Главное, чтобы хватило времени. У нас хорошие шансы попасть в топ-12 и получить медали, – говорит Юрий Айдаров, тренер Indigenous. Он готовит команды к олимпиадам с 2001 года. – Даже пройти в финал – очень непростая задача. И то, что пермяки смогли – это здорово.
– Есть вузы, которые предоставляют индивидуальное образование для таких учеников. В Перми мы тоже создаем ребятам условия для нормальной учебы. Они сдают экзамены по индивидуальному плану, – поясняет Андрей Геннадьевич Кузнецов, декан механико-математического факультета. – Наши программисты показывают, что пермский вуз дает подготовку не хуже, чем в Москве или в Питере. Пермь воспитывает чемпионов мира. Пермь благодаря этим ребятам рекомендует себя как университетский центр, где можно получать отличное образование. В Перми сейчас успешно работают много телекоммуникационных и IT-компаний, основу которых составляют выпускники пермских вузов (например, Владимир Бугай, руководитель компании Knoema. – Прим. ред.) и которые жизненно заинтересованы в молодых, амбициозных, перспективных профессионалах. Вот эти компании, в итоге, и образовали некий «консорциум», приняв на себя все затраты, связанные с участием команд из Перми в чемпионате. Огромное им спасибо! И естественно, что эти кампании вправе рассчитывать, что лучшие выпускники выберут эти компании для продолжения своей профессиональной карьеры (в Перми это Knoema, «Ростелеком», «Хитон», «ИВС-Сети», DartIT, «Мобильный актив», Carrot quest и «Бионт»).