Почему одни из лучших программистов мира живут и работают в ЕкатеринбургеКоманда студентов Уральского федерального университета стала серебряным призером чемпионата мира по спортивному программированию в Таиланде. Это лучший для Екатеринбурга результат за всю историю. IMC встретился с самым опытным игроком команды команды Олегом Меркурьевым, тренером Михаилом Рубинчиком и деканом матмеха Магазом Асановым. В нашем интервью – рассказ о самом чемпионате, победителях, перспективах работы в Facebook и Google и многом другом.
18+

«В Facebook и Google мы не пойдем»

Почему одни из лучших программистов мира живут и работают в Екатеринбурге

9 Июня, 14:30
Автор: Андрей Варкентин

Команда студентов Уральского федерального университета стала серебряным призером чемпионата мира по спортивному программированию в Таиланде. Это лучший для Екатеринбурга результат за всю историю. IMC встретился с самым опытным игроком команды команды Олегом Меркурьевым, тренером Михаилом Рубинчиком и деканом матмеха Магазом Асановым. В нашем интервью – рассказ о самом чемпионате, победителях, перспективах работы в Facebook и Google и многом другом.

Это действительно один из самых лучших результатов УрФУ за всю историю?

Михаил Рубинчик: У нас было три бронзовые медали за всю историю, и теперь серебро.

Михаил, сколько лет вы уже тренируете?

Михаил Рубинчик: Я начал заниматься со студентами и школьниками 10 лет назад. На финал как тренер ездил всего два раза. Поэтому можно сказать, что на высоком уровне занимаюсь тренировками только два-три года.

А почему именно в этот раз УрФУ показал лучший результат? Звезды сошлись?

Михаил Рубинчик: Команда у нас звездная. Олег, Леша и все остальные очень сильные ребята. Олег сейчас на шестом курсе, начал заниматься на втором, но уже к третьему у него был приличный уровень. Он был лучшим в УрФУ к третьему курсу, вырос буквально за год. Никита взял золото на школьной международной олимпиады в одиннадцатом классе. Леша позанимался математикой, физикой, мы его переманили в программирование. И соответственно, если у человека хорошо получается математика, то программирование, скорее всего, тоже хорошо получится. У него получилось.

И какая была ваша основная задача в этой команде звезд?

Михаил Рубинчик: Основная задача у ребят была — много-много тренироваться. Моя работа – где-то сбоку посмотреть, помочь, если они ссорятся, помирить как-то. Во всем остальном заслуга ребят.

В полуфинале ЧМ УрФУ занял первое место?

Михаил Рубинчик: Да, полуфинал мы выиграли. Мы не умеем точно оценивать, как все это работает. Осенью наша команда явно была лучше всех. Почти на всех соревнованиях выигрывали. Остальные почему-то выступали хуже.

То есть, непонятно чего не хватило на финале в Таиланде?

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

Последние пять лет на ЧМ побеждают российские вузы. Я так понимаю, что, например, Массачусетский университет, наверное, сильнее, чем наши, но мы побеждаем. Почему?

Михаил Рубинчик: По рейтингам MIT, естественно, сильнее. Почему? Версии разные бывают. Есть версия, что просто русскому менталитету нравится соревноваться. А американцы настроены больше на работу. Может, у них нет каких-то амбиций. Возможно, у нас просто конкуренция за ребят меньше. Вот есть спортивное программирование, CTF (соревнования по компьютерной безопасности), математические бои, еще есть и робототехника. Это, наверное, все активности, которые конкурируют за ребят, а в Америке больше вариантов, в основном это бизнес, стартапы. Тут надо для справедливости сказать, что все американские команды, которые сильно выступают, у них в составе….

Китайцы, да?

Михаил Рубинчик: Этнические китайцы, да. То есть они не обязательно родились в Китае. Но родители или дедушки/бабушки прибыли из Китая.

Я один раз был на чемпионате, там на какую команду ни посмотришь – большинство либо китайцы, либо из Индии…

Михаил Рубинчик: Индия имеет довольно большое представительство, в ЧМ участвует много команд из этой страны. Но при этом о сильных результатах Индии я вообще ни разу не слышал. Не знаю, может быть, у них просто уровень образования ниже. На примере Америки можно наблюдать, потому что туда едут со всего мира. Там тоже очень много индусов и поменьше славян и китайцев. При этом индусов не так много на высоких позициях, правда я не знаю официальной статистики. Это всё по рассказам знакомых.

Давайте поговорим немного про сам чемпионат. Три человека в команде. Один компьютер. Почему один? Почему не три?

Михаил Рубинчик: Жюри когда-то так решило. Это было тридцать лет назад.

Олег Меркурьев: Тогда, возможно, были еще дополнительные причины, которых сейчас нет. И тогда даже по компьютеру на команду – это было много, а на человека уж совсем.

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

Про распределение. Как вы распределяете роли? Каждый в чем-то силен? Кто-то больше в программировании, кто-то больше в математике?

Олег Меркурьев: Примерно так и есть. В нашей команде в математике сильнее были я и Леша. А Никита гораздо лучше в программировании.

Михаил Рубинчик: Он взял золото на школьной международной олимпиаде по информатике.

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

Михаил Рубинчик: Со стороны это выглядит так: один человек сидит за листочком, думает, может быть, где-то черкается, формулы какие-то выписывает. Через некоторое время он рассказывает другому – вот есть такой алгоритм, тот должен осознать его, придумать, как его запрограммировать. Есть идея, которая словами описана, возьмем эти числа, вычтем из них вот те, там нарисуем вот такой маршрут. Термин «придумывать» у нас означает сочинить словесное описание алгоритма.

Получается, это можно назвать идеей?

Михаил Рубинчик: Да, идея, она ближе к математике, чем к программированию. Задача второго члена команды, который должен это написать, продумать, как это реализовать. Не всегда пишут и придумывают разные люди. Бывает, что сам придумал, сам написал. Единственное, так как это командное соревнование, он должен рассказать коллеге, прежде чем принять решение, чтобы убедиться, что оно правильное. Потому что один человек может ошибиться, если двое знают решение – уже меньше рисков ошибиться. Нельзя сказать, что работа программиста – она более тупая… она просто другая. Один приводит из задачи математическую идею, другой из математической идеи реализацию… Совсем жестких разграничений ролей сейчас не бывает. Просто потому что соревнования настолько серьезные, что если будет, например, один человек, который вообще не садится за компьютер, то это риск. На ЧМ можно пользоваться принтером. Первый человек сел, написал какое-то решение, оно не заработало. Ему нужно найти ошибку. Читать с компьютера – это дорого, у нас же ресурс один. Поэтому распечатывают на принтере и читают на листочке.

Проверяют?

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

Олег Меркурьев: Может, это связано ещё с тем, что очень популярны личные соревнования, и почти все участвуют в них. Поэтому слабые стороны и приходится развивать.

Михаил Рубинчик: Да, если ты играешь в личных, тебе нельзя что-то оставить недоразвитым.

А задачи действительно приближены к жизни?

Михаил Рубинчик: Стараются это делать. Не всегда получается. Бывают и чисто математические задачи.

Ваша команда решила сколько задач?

Олег Меркурьев: Девять, а всего их 13.

Михаил Рубинчик: В этом году был довольно стандартный набор из восьми задач. Очень много команд решили восемь задач. Это задачи средней сложности. Дальше довольно резкий скачок. И вот все, кто решил еще одну – получили медаль. Как мы. Одной команде правда не повезло, они из Канады, Ватерлоу, у них тоже девять решено, но при этом очень плохое, 13 место, а медалей 12 дают. Чемпионы решили на три больше.

Кстати, много тренируетесь вообще? Сколько уходит на подготовку?

Михаил Рубинчик: Первая команда у нас тренируется примерно два раза в неделю.

Тоже в таком агрессивном темпе?

Михаил Рубинчик: Есть вузы, в которых гораздо более фанатично тренируются. СПбГУ, которые чемпионами стали, там три командных тренировки в неделю, по-моему. Каждая пятичасовая. И еще личных несколько. Мы не настолько фанатичны. В Саратове чуть ли не каждый день играют.

Олег Меркурьев: Этими двумя тренировками и мы не ограничиваемся. Есть много коротких, двухчасовых личных соревнований.

Расскажите про сам ЧМ в Таиланде. Много было зрителей, болельщиков?

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

А в интернете есть данные, сколько смотрят онлайн-трансляцию?

Михаил Рубинчик: Однажды была какая-то дикая популярность, когда в Китае ЧМ проводили. Дело в том, что они на одном из своих центральных каналов включили трансляцию. На всех остальных турнирах был просто отдельный сайт. В этот раз смотрели около 40 тысяч пользователей. Большинство из них так или иначе имеют отношение к программированию или хотя бы знакомые участников.

Но за самой таблицей там тоже интересно следить. Даже те, кто не понимает.

Михаил Рубинчик: Интересно, если у тебя там есть человек, за которого ты болеешь.

За своих. Как всегда.

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

Михаил Рубинчик: Организаторы пытаются развить зрелищность, сами трансляции появились лет десять назад всего. А чемпионату уже 40! В этом году сделали крутой шаг вперед – отличную инфографику. Как в биатлоне, если можно сравнивать. Показывали зал, в уголке команда сидит с веб-камерой. По центру – все задачи, галочками помечено, что они сдали, что они пытались сделать и не получилось. Это уже интересней смотреть. Можно уже просто смотреть на то, как красочно люди ругаются, радуются там и так далее.

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

А конфликты какие-то бывают в команде?

Михаил Рубинчик: В нашей команде точно были. Это от характера же зависит. Это не связано с программированием

Как это выглядит? «Ты чего тормозишь?» Или как?

Михаил Рубинчик: Бывает, да. Один человек объяснил другому решение, рассчитывал, что напишет за 20 минут, а тот пишет 40. Конечно, конфликт.

Драк на чемпионате не было, да?

Олег Меркурьев: У нас не было.

Михаил Рубинчик: На многих соревнованиях перед этим были конфликты. Кто-то будет просто высокомерно говорить, кто-то будет агрессивно реагировать на то, что ему не понравилось. Где-то в командах демократия. Когда три человека – легко голосовать. Не может быть равенства.

А девушек в команде УрФУ никогда не было?

Михаил Рубинчик: На финале одна была, дважды ездила на финалы. Появляются девушки, но мало.

А в других командах?

Михаил Рубинчик: На весь чемпионат с десяток. Всего 128 команд, около 400 участников и среди них 10 девушек. Я не знаю, с чем это связано. Может, все-таки традиции по-прежнему живы. Может, это со временем будет меняться.

Действительно ли первые 12 команд (медалисты) сразу становятся объектом внимания иностранных компаний – Facebook, Google? К вам уже проявили какое-то внимание эти большие компании?

Олег Меркурьев: Эти компании проявляют внимание не только к первым двенадцати командам. Кажется, что они может даже в большей части смотрят на другие соревнования, которые сами проводят.

Михаил Рубинчик: Более того, на самом деле я думаю, что выход в этот финал – это уже достаточно. Любому финалисту писала хотя бы одна компания из этого списка. Google, Facebook, Microsoft и так далее.

Тебе писала?

Олег Меркурьев: Они периодически пишут.

Михаил Рубинчик: Они частенько пишут. Мне, например, еще когда я участвовал, наша команда тоже взяла медаль, писали из Google, Facebook, Samsung. И до медалей писали. И после этого тоже периодически пишут, чаще конечно менее известные компании.

Вы не согласились на их предложения? Почему?

Михаил Рубинчик: Мне образовательная сфера интересней. Я занимаюсь с ребятами.

Какую должность предлагали? Просто программист в компании?

Михаил Рубинчик: Изначально они зовут на собеседование. Потом работаешь программистом, если быстро умеешь обучаться, то растешь по карьерной лестнице.

Из нашего УрФУ есть сотрудники в таких больших компаниях?

Михаил Рубинчик: Да, конечно, в том числе бывшие олимпиадники. Но большинство финалистов из УрФУ не уезжают, работают в СКБ «Контур», местном филиале Яндекса, в других компаниях. Но есть и те, кто уезжает. Могу сказать по моей команде – один теперь работает во «ВКонтакте», другой в Google, там же и тренер наш.

Магаз Асанов: У Google была своя программа. Они оплачивали поездки 40 лучшим командам мира, в том числе всем россиянам. Возили на специальные сборы, такое знакомство, в Ирландию, в Сан-Франциско. Просто проводили, рассказывали про себя и все. Никакой рекламной кампании не было. У нас один замминистра РФ сказал, что программистов в России вообще готовить не надо, так как они все равно уезжают в Америку. Это неправда. По крайней мере, в отношении Екатеринбурга и УрФУ. У нас 25 человек в разные годы участвовали в мировых финалах.

Вот в этих командных чемпионатах мира по программированию?

Магаз Асанов: Из этих 25 трое пока еще студенты, их можно не считать. Остаются 22. Из них 15 работают в России. Почти все работают в Екатеринбурге, один в Первоуральске. А уехали семь человек. Из них в Америке Никита Шамгунов, Сергей Пупырев, Леша Самсонов.

А в каких компаниях?

Магаз Асанов: Никита, во-первых, владелец собственной компании, до этого в Microsoft и Facebook работал. Сейчас у него собственная компания, штат 75 программистов.

Круто.

Магаз Асанов: Леша Самсонов в Google работает, Сергей Пупырев в исследовательском отделе Microsoft работал, теперь в каком-то университете, остальные в Москве и Питере.

С чем вы это связываете? Почему остаются в России, в Екатеринбурге?

Магаз Асанов: В Екатеринбурге можно найти хорошо оплачиваемую работу. И интересную.

Более оплачиваемую, чем в США?

Михаил Рубинчик: В абсолютном выражении, конечно, нет, а в относительном сравнивать уже сложно.

Я читал, что в крупной компании, может быть, и круто работать, но там нет полета. То есть, тебя нанимают на должность обычного такого программиста, которых сотни.

Михаил Рубинчик: В любом случае, в мелкой компании меньше ограничений… Естественно, в стартапе больше свободы, но больше риска. Большая компания – это стабильность. Каждый выбирает, что ему по душе.

Тебе что ближе? Стартап? Или большая компания?

Олег Меркурьев: Я вообще нигде не работал. И в ближайшие полгода работать нигде не собираюсь. Пойду в аспирантуру, наукой надо немного позаниматься, а то я вообще все свое время тратил на спортивное программирование.

Чем ты еще занимаешься? Чем увлекаешься? Какие интересы есть, кроме спортивного программирования?

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

А спортивное программирование вообще много дает?

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

С каждым годом задачи усложняются или они примерно на одном уровне?

Михаил Рубинчик: Размер кода, который нужно написать, наверное, растет немного. Не знаю, насколько сильно. То есть раньше, условно, задача занимала 200 строк, и она была сложной, а сейчас нормальная. Сейчас сложная – это уже 600 строк.

Олег Меркурьев: Если сравнить с десятилетней давностью, то кажется, что задачи стали сильно сложнее…

Михаил Рубинчик: Тем, алгоритмов становится больше, которые нужно знать. Раньше знали пять алгоритмов и придумывали всевозможные задачи на эти пять алгоритмов, потом 10, 40. Сейчас, не знаю, 150 алгоритмов. И все нужно знать. На турнирах никогда не дают задачу, для которой нужно взять и применить стандартный алгоритм в готовом виде. Обычно применяют комбинацию двух-трех стандартных алгоритмов. Но все равно чаще всего нужно что-то свое придумать.

Я понимаю, высокие результаты, а где их применение? Например, в Екатеринбурге уже очень долго пытаются запустить умные светофоры. И почему-то приглашают компанию из Италии. Вы можете применить знания для написания программы по умным светофорам?

Михаил Рубинчик: Это же довольно узкая специализация. Скорее всего, там не привычные языки программирования, а все программируется на каких-нибудь микрочипах.

Магаз Асанов: Тут есть вещи, которые вообще никакого отношения к программированию не имеют.

Михаил Рубинчик: Это все бюрократия, взаимодействие с госструктурами и так далее. Но мне лично бизнес-процессы не очень интересны. Мы способны этим заниматься, но нам все-таки больше интересно программировать… Безусловно, мы никогда не станем участвовать в таком тендере. Но если появится работодатель, который нас позовет и сам будет участвовать в тендере, почему бы и нет?

Это было бы так патриотично. Екатеринбургские студенты придумали, как победить пробки в городе.

Михаил Рубинчик: Эта задача выглядит интересной, но она не кажется очень сложной.

Фото: Антон Сметанин

Реклама

Реклама