В начале октября команда Нижегородского государственного университета имени Н. И. Лобачевского выиграла чемпионат мира по программированию среди университетских команд ICPC (International Collegiate Programming Contest), став абсолютным чемпионом этого года. В этом престижном соревновании состязались студенты более 150 мировых технологических вузов из 60 стран. Один из тренеров команды-победителя — Владислав Епифанов — рассказал в интервью, как готовились студенты, зачем заниматься тренерской работой и как складывается его профессиональная карьера.
Опишите, пожалуйста, кратко свой путь в программирование: как и когда увлеклись этим занятием, где учились, по какому направлению, каких результатов добились?
Я начал заниматься программированием в 7-8 лет. Вместе со старшими братьями посещал спецкурс известного российского ученого, программиста, основателя нижегородской школы обучения олимпиадному программированию Владимира Лелюха. В старших классах школы ездил на международную олимпиаду по программированию для школьников, где получил две золотые и одну серебряную медаль (на 300 участников выдается 25 золотых, 50 серебряных и 70 бронзовых медалей).
Потом поступил на мехмат в ННГУ имени Н. И. Лобачевского (затем преобразованный в ИИТММ). В университете два раза участвовал в финале студенческого чемпионата мира, где получил серебряную (5-е место) и бронзовую (10-е место) медали. Также неоднократно участвовал в финалах личных соревнований по спортивному программированию, проводимых крупными компаниями (Google Code Jam, Facebook Hacker Cup, TopCoder Open, Yandex Algorithm, VK Cup, Russian Code Cup и другие).
Когда начали тренировать ребят?
На протяжении всей учебы в университете я так или иначе занимался подготовкой к олимпиадам с подрастающими школьниками и студентами. После участия в финале чемпионата мира в 2011 году мне необходимо было собирать команду для следующего соревнования (но есть ограничение — не более двух участий в финале), поэтому, помимо своих тренировок, начал проводить тренировки для других команд.
Из чего состоит тренировка и сколько тратите времени на нее?
Обычная тренировка заключается в прорешивании 3-5-часового соревнования (обычно берутся какие-то старые из архивов) и последующем разборе задач. Иногда проводятся лекции по конкретным темам по алгоритмам или структурам данным с последующим решением подходящих задач.
Выигрывали ли ранее чемпионаты по программированию?
Настолько серьезное достижение в качестве тренера — это, пожалуй, моя первая победа.
Где вы работали ранее и чем занимались?
Я был разработчиком в команде библиотек алгоритмов машинного обучения международной технологической компании. Потом перешел в Сбер — здесь собралась хорошая команда разработчиков в новом интересном проекте, тематика которого была достаточно близка мне. Также интересно было поработать с продуктами, непосредственно взаимодействующими с реальными пользователями.
Какие впечатления от работы в Сбере?
Мне нравится то, что в Сбере развита система нематериальной мотивации сотрудников, которая заключается в профессиональном развитии IT-специалистов. Почти все новички проходят обучение в буткемпе, чтобы освоить профессиональные треки с погружением в культуру и атмосферу компании. В Сбере существует 26 тематических сообществ со своими кураторами, общением, социальными связями, которые очень здорово помогают как в разработке новых продуктов, так и в формировании прочных связей внутри команды. Периодически проводятся митапы с мировыми экспертами. Например, не так давно нам удалось послушать известного создателя методологии экстремального программирования Кента Бека.