Программисты из МАИ проявляют фантазию на олимпиадах и метят в Google
29 декабря 2016Предметная олимпиада стойко ассоциируется с чем-то школьным, уделом отличников-вундеркиндов, которые всё своё время тратят на учёбу, а потом поступают в вуз без экзаменов. Олимпиада для программистов — зверь вообще непонятный для нас, привыкших к классическим математике, физике или литературе. А ведь на самом деле олимпиада по программированию — это не просто тренировка для мозга, а хорошее начало успешной карьеры.
Подготовка
В России история олимпиад по программированию насчитывает около 40 лет — пионерами были физико-математические школы, к которым присоединились впоследствии и вузы. МАИ в то время в них участвовал постольку-поскольку и не рассматривал как важное направление.
Обратили внимание в нулевых, и сразу стало понятно, что к олимпиадам даже самую талантливую молодёжь нужно специально готовить. Тренировки на факультете «Прикладная математика и физика» идут в два потока. Студенты раз в неделю слушают дополнительные лекции, затем их ждёт двухчасовой контест (соревнования — прим.), разбор и домашнее дорешивание. В конце семестра — олимпиада, дающая бесценные бонусы на экзамене. Но самый главный бонус — попадание в сборную МАИ. Воскресенья студенты тратят на кодирование, что тоже своего рода тренировка — на некоторых олимпиадах на решение задач отводится 24 часа. Хочешь — спи, хочешь — решай.
В рамках практики студенты формируют собственные команды для участия в различных соревнованиях с ребятами из других стран. Уровень выше — крупные престижные конкурсы типа майкрософтского Imagine Cup, в которых от вуза участвуют две-три команды со своими проектами. И у МАИ здесь есть все шансы повторить успех 2005 года — тогда команда MAILabs с системой Fibra — инструментом для описания, анализа и оптимизации интеллектуальных бизнес-процессов — заняла второе место в номинации Office Designer.
Участие
Профессор кафедры «Вычислительная математика и программирование» МАИ Валентин Зайцев признаёт: маёвцы пока уверенно держатся на третьих-пятых местах. Однако все предпосылки для того, чтобы перебраться на первые-вторые и потеснить лидеров-петербуржцев (СПбГУ и ИТМО) есть. Особенно если учесть регулярные призовые места в полуфинале и прохождения в финал ACM International Collegiate Programming Contest — мирового чемпионата по программированию. В последнем чемпионате команда МАИ заняла 26-е место из 128, обойдя участников из нескольких десятков стран.
Для студентов МАИ на олимпиадах, в первую очередь, оттачиваются навыки практики решения программистских задач, и здесь победа действительно не самое главное. Участвуют в олимпиадах около ста человек со всего факультета: примерно каждый шестой. Ядро — около сорока старшекурсников. Серьёзная подготовка включает в себя и некоторые преференции — в частности, участники олимпиад обучаются по индивидуальным планам, а само участие в них и конкурсах засчитывается за практику, лабораторные и курсовые работы. Однако не стоит думать, что всё ограничивается поверхностными мерами — в сам учебный план внесены изменения, позволяющие буквально за год ребят со средними способностями поднять практически до уровня чемпионов из ведущих IT-вузов.
— Мы добавили больше часов программирования и несколько урезали математику, одновременно усилив её дискретную часть, — поясняет Валентин Зайцев. — Это позволяет делать упор на практические занятия и решение задач.
Результат
Второй важный резон участия в олимпиадах — карьерные перспективы. IBM, Oracle, Google, Facebook, Yandex, Mail.ru — все IT-гиганты внимательно присматриваются к успешным участникам олимпиад. Победителям мировых соревнований практически гарантирован оффер от одного из них, а участники уже знают, какие задачи они будут решать в рамках отбора на вакансию. В программистской среде ходит известная байка про собеседование в Google. Позвонившему претенденту зачитали условие задачи, а возникшую паузу прервали словами: «Ну что же вы молчите, диктуйте код!».
Видимо, похожее собеседование проходили работающий специалистом по надёжности сайта в Google маёвец Дмитрий Федорук, эксперт по технологиям разработки программного обеспечения Microsoft Константин Кичинский, руководитель отдела мультимедийных поисковых сервисов «Яндекса» Дмитрий Беляев, руководитель разработки поисковой системы Mail.ru Дмитрий Калинин и ещё десятки маёвцев, применяющих полученные в вузе знания в крупнейших мировых IT-холдингах.
Написанные в оперативном режиме коды решений, конечно, применимы только в «идеальных» условиях олимпиад — на практике поддерживать их вряд ли получится. Однако, как отмечает член сборной МАИ по программированию — студент четвертого курса факультета «Прикладная математика и физика» Игорь Григорьев, это «история про большой спорт». Точнее, для создателя стартапа Jetway главное здесь — возможность совершенствоваться.
— Интересно решать сложные задачи и применять разнообразные алгоритмы. Плюс, это помогает оттачивать на практике свои скиллы. Код, конечно, меняется, но схема остаётся та же, поэтому ты видишь с каждым следующим соревнованием, как улучшается твой результат. Код ты написал и через два часа его забыл, а теоретическая алгоритмическая база расширяется. Грубо говоря, ты раз за разом пробуешь и совершенствуешь свои решения — то, что каждый день в реале делает любой разработчик.
«Отточить скиллы» маёвцы планируют уже следующей весной — им предстоит борьба за призовые места на престижных международных соревнованиях Challenge24, Deadline24, Vekua Cup. Ребята усиленно тренируются, полностью отрываясь от олимпиадных задач только на время сессий. Такая напряжённая работа, уверяет Валентин Зайцев, принесёт очевидные плоды — как минимум одна команда мирового уровня у МАИ будет.