«Глубинные изменения произошли в школьном образовании, а не в университетах»

Это интервью корреспондент D-Russia.ru взял у тренера команды Саратовского государственного университета по спортивному программированию, двукратного серебряного призёра чемпионатов мира (ACM ICPC, International Collegiate Programming Contest) по спортивному программированию среди университетских команд 2002 и 2003 годов, создателя самой популярной в мире платформы Codeforces для проведения соревнований программистов Михаила Мирзаянова и выпускника этого же университета, чемпиона ICPC 2006 года Ивана Романова в день финала ACM-ICPC 2016.

Иван Романов (слева) и Михаил Мирзаянов
Иван Романов (слева) и Михаил Мирзаянов. Фото (с) Андрей Анненков

— Расскажите о Codeforces.

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

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

Начали проект лет восемь назад, заработал он с 2010 года.

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

На старте был экспоненциальный рост пользователей, в 2010 году на каждое последующее соревнование участников приходило в полтора раза больше, чем на предыдущее. До сих пор приток новых людей не прекращается. И, если сравнить с данными годовой давности, то можно сказать, что на 25-35%, по разным метрикам, мы прибавили в прошедшем году.

— А в абсолютных цифрах?

ММ Зарегистрированных пользователей – более 400 тысяч. А тех, кто приходит и регулярно решает задачи – считаем тех, кто принял участие в рейтинговом раунде за последние полгода хотя бы раз – таких около 25 тысяч человек. На каждое соревнование приходит 4-6 тысяч, в зависимости от удобства времени, от того, есть ли призы. Можно так сказать, что среди участников, которые здесь (на финале ICPC 2016. — АА) 90% зарегистрированы на Codeforces и регулярно туда приходят. Это та часть аудитории, которая хорошо умеет решать задачи, доходит до финала чемпионата мира. Когда приезжаю на полуфинал, общаюсь с ребятами на полуфинале в Санкт-Петербурге, также вижу, что практически все зарегистрированы на Codeforces. Это приятно.

— Codeforces принимала участие в финансировании мероприятий, связанных с российскими соревнованиями. Проект зарабатывает?

ММ Нет, мы сами нуждаемся в спонсировании. Как и во множестве вещей, связанных с образованием, каких-то больших денег для соревнований по программированию нет. Есть компании, которые нас регулярно поддерживают. В 2010 году, осенью, у меня состоялась встреча с Павлом Дуровым, договорились о поддержке Codeforces компанией «ВКонтакте». Это оказалось реально здорово и дало возможность двигаться вперёд. Потом естественным образом эта поддержка перешла на сторону компании Telegram (как и «ВКонтакте», эта компания тоже создана Павлом Дуровым. – ред.), которая сейчас является нашим основным спонсором. С «ВКонтакте» мы тоже дружим, проводим совместные мероприятия.

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

— Зачем Codeforces поддержка, когда всё уже сделано и работает?

ММ Теперь, когда площадка сделана и работает, главная сложность – подготовка задач. Каждое соревнование – уникальный новый комплект задач, который должен быть подготовлен очень тщательно.

Условия задач мы традиционно публикуем на русском и английском языках, чтобы держать в привилегированном положении русскоязычную аудиторию. Ну и, конечно, очень долгая работа для тех, кто готовит задачи – комплект тестов, авторские решения, тесты для выявления ошибочных решений и т.п. Со стороны Codeforces у нас есть координатор задач, Глеб Евстропов, дважды вице-чемпион мира по программированию. Он курирует работу с внешними авторами, и у нас получается регулярно предлагать задачи сообществу. Недавно к работе был подключен второй координатор – мой студент в Центре олимпиадной подготовки СГУ Данил Сагунов.

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

— Что с высшей школой у нас сейчас происходит? Интересует обучение точным наукам и вообще то, что связано с программированием и со спортивным программированием.

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

Подготовка к соревнованиям по программированию предполагает полную самоотдачу и постоянную работу над собой, в том числе, и даже особенно, во время каникул. Летом – сборы. У нас, в СГУ, тоже проходят тренировки. Те, кто пытается совмещать три направления: учебу, первые шаги в профессии, т.е. работу, и тренировки по программированию, конечно, полноценно не успевают. Я вижу, каких усилий многим нашим студентам, которые хорошо учатся, стоят хорошие оценки.

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

— Какие?

ММ Школы вынуждены ориентироваться на подготовку к ЕГЭ. Сам я выпускник физико-технического лицея № 1 Саратова, это главный поставщик абитуриентов нашего профиля в Саратове, хотя среди наших студентов и тех, кто в Саратовском университете выходил в финалы на чемпионатах мира, не так много выпускников именно ФТЛ. Вот, например, чемпион мира по программированию 2006 года, Иван Романов, выпускник лицея прикладных наук.

Недавно был юбилей у школы, я был на открытых уроках и убедился, что занятия по математике во многом построены на том, чтобы прорешивать старые ЕГЭ, тренироваться на решении конкретных задач. Хотя, конечно, учителя стараются этого избегать. Значительно сократилась отчётность в виде устных ответов.

— Это в физико-математических школах?

ММ Да. Мне кажется, в обычных школах в ещё большей степени идёт ориентация на конкретные формы отчётности. На предварительные тесты к ЕГЭ.

— Достоверно знаю историю о школьной задаче про цену 15 яблок по 3 рубля каждое – оказывается, надо перемножать 15 на 3, за 3х15 снижают оценку.

ММ Видел такое в Facebook. Не думаю, что это типичная история. Это вопрос терминологии, по-английски это называется А times В. Я не являюсь экспертом по начальной школе, но мне это не очень понятно, да. Наверняка приличные учителя пытаются такого избегать. И всё же пример показателен.

— Качество абитуриентов не снижается вследствие этого?

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

Плюс, конечно же, экономическая разница столицы и провинции невооруженным взглядом видна. Это наш внутрироссийский результат глобализации, она приводит к ожидаемому эффекту – лучшие школьники уезжают в лучшие университеты.

— А потом и из страны?

ММ Статистики у меня нет, но, конечно, среди программистов такая тенденция присутствует.

— Что является стимулом? Деньги, интересная задача, что-то специфическое?

ИР Я девять лет живу в Швейцарии. Недавно ещё думал, что, может быть, программирование – это не дело всей моей жизни. Были ужасно скучные задачи, ужасно скучная работа. Например, небольшой швейцарский банк Швейцарии наличностью вывозит на самолетах деньги из Кубы, конвертирует их и кладёт на счета кубинских жителей, которым, собственно, эти деньги и принадлежат. Американские банки такого делать не могли, по крайней мере, до последнего времени, а в Швейцарии – без проблем. Ну мы и делали для этого банка программу, которая считает эти наличные деньги в разных валютах, считает наличное золото.

Сменил несколько мест, каждые два-три года менял в последнее время, пока, наконец, два года назад не попал в Google. Опять стало интересно.

Если попадается действительно интересная задача, и у тебя есть все необходимое для её решения, за счёт большой концентрации умных программистов очень удобно работать. По моему характеру, по моему складу мне интересно решать прикладные задачи, когда у меня есть удобные инструменты. Инструменты разработчика в Google – это лучшее, что я видел за 10-15 лет работы в разных компаниях.

— Что вы делаете в Google?

ИР Я разработчик инструментария для размещения рекламы в YouTube. Та самая реклама, которая так нервирует пользователя. В прошлом году работал над инструментами для планирования рекламы, которые позволяют оценить, насколько реклама в YouTube эффективнее, чем реклама на телевидении. У нас есть внутренние курсы для людей, которые продают рекламу, целый отдел, и меня неделю учили тому, как продают рекламу большие корпорации большим корпорациям. И уже с пониманием этого я делал инструмент для людей, которые продают рекламу.

— А там народ интернациональный? Русских много?

ИР Моя первая команда – 11 человек из 11 разных стран. Был один русскоговорящий из Киева, были парни из Бангладеш, из Индии, соседних стран ЮВА, но одинаковых стран не было. В цюрихском офисе Google русские и русскоговорящие составляют заметную долю сотрудников.

— В Цюрихе вы ведь в IBM начинали?

ИР Работал в цюрихском IBM, потом работал в местных консалтинговых компаниях, в банке, в телекоме.

— В России ведь тоже есть интересная работа? Сужу по воспитанникам СГУ, которые остаются в Саратове и в других городах России.

ИР Когда вижу выступления Германа Грефа, думаю: если бы я жил в Москве, побежал бы работать в Сбербанк. Мне кажется, Сбербанк, и ещё то, что делает «Тинькофф банк» – это суперинтересная работа.

ММ Можно пойти в крупную IT-компанию, например, в Яндекс, в Мэйл.ру. Именно в России очень хорошо развиты локальные игроки IT-рынка. Сложно указать ещё такую страну, у которой есть своя соцсеть, и даже не одна, которая по популярности обходит Facebook, есть своя почта, которая по популярности обходит Gmail, поиск, который по популярности сравним с Google.

С другой стороны, есть тема, связанная с небольшими компаниями, со стартапами. Зачастую это может быть очень интересная работа.

— Государство как-то заметно в сфере вашей деятельности, т.е. в том, что связано с подготовкой программистов высшей квалификации?

ММ В какой-то степени заметно. Например, финал (ICPC 2013 года.– ред.), который проходил в Санкт-Петербурге – во многом расходы были покрыты правительством города. Несколько лет назад была президентская программа по обучению IT-специалистов – в нескольких вузах

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

ИР Сейчас здесь (финал ICPC 2016. – ред.) участвует команда университета Иннополиса, хотя все трое её участников, скорее всего, получили образование в МФТИ и там всему научились. Но инициативу, попытку государства привлечь хороших студентов, настроить образование – отмечаю. Чем это закончится, не знаю, но есть заинтересованные люди, которые хотят построить там IT-образование нового уровня.

Много сдерживающих факторов. Множественные запретительные законы последнего времени оказывают значительное влияние на IT-индустрию. Google закрыл в России свои разработческие офисы. Некоторые мои знакомые автоматически взяли и переехали в другую страну. Хотя они не собирались это делать, они хотели продолжать работать в России.

— Какие запретительные законы?

ММ Много ограничительных законов вышло за последнее время – о митингах и собраниях, законы об иностранных агентах и СМИ, о чувствах верующих и пропаганде гомосексуализма. Как не вспомнить про пакет Яровой и суды за репосты.

Ещё из того, что расстраивает, введение подушного финансирования в университетах, когда преподаватели прекрасно знают, что, если 10 человек отчислят, то одного преподавателя кафедры уволят. Получается отрицательная обратная связь, которая ведёт к тому, что нет никакого резона требовать от студентов знаний. Это проблема.

— А за границей как дело обстоит?

ИР В России есть регулярно проводимые сборы по программированию, немало, с многолетней историей, в Петрозаводске, например. Обучение ребят, которые заинтересованы в подобных соревнованиях, очень хорошо устроено. Большое количество локальных соревнований проходит. Codeforces, между прочим, не единственный ресурс, сделанный силами российской части сообщества.

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

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

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

— А в Америке?

ММ В Америке все значительно менее централизовано, чем в России, и это создает определенные сложности. Например, у нас на всю Россию и страны ближнего зарубежья есть один полуфинал. Поэтому все приезжают в одно место, получается, все вместе соревнуются за одну квоту, и с большей вероятностью наиболее сильная команда проходит в финал. В США отбор значительно более фрагментирован, там большое количество небольших полуфиналов. Ну и да, там в меньшей степени такой образовательный процесс для студентов построен в вопросах, связанных с соревнованием по программированию.

Приведу пример, команда Carnegie Mellon University приезжала в Саратовский госуниверситет, перед финалом в 2013 году на неделю, специально, чтобы мы вместе потренировались. Мы совместно провели маленькие, но сборы. И в 2013 году как раз эта команда завоевала медаль на чемпионате мира, чему мы очень рады. У нас не получилось, а они завоевали. Говорили «спасибо» за то, что мы помогли.

Это нормально. У нас очень открытое сообщество. В России бывают сборы, где лекции читают на английском, приезжают участники со всего мира.

— Кто задачи придумывает? Напрашиваются аналогии с шахматной композицией – это отдельный вид творчества.

ММ Eсть ребята, их в сообществе немного, процентов пять, кому в голову регулярно приходят задачи, кто этим живёт. Вот они становятся авторами задач. Это довольно сильно коррелирует с умением непосредственно решать задачи, но одним и тем же навыком все же не является. Знаю очень сильных, мощнейших участников соревнований, не придумавших ни одной задачи, и знаю тех, кто задачи решает слабее, но придумал их не один десяток.

Это очень творческое дело. Я сам автор большого количества задач, и всегда это процесс поиска. Совсем другой навык, обратный в некотором роде соревновательному. Когда ты участник, тебе, наоборот, нужно сдать задачу, ты должен подумать, каких тестов проверки решения, возможно, нет у организаторов. И попытаться своё решение адаптировать в эту сторону, если совсем полного решения не придумал. А когда ты – автор задачи, то ты, наоборот, работаешь над тем, чтобы ни в коем случае не прошло какое-нибудь неправильное или неполное решение.

— Что делают судьи? Ведь решение проверяет компьютер.

ММ Работа жюри, по большей части, делается до соревнования.

Участники имеют возможность задать вопрос во время соревнования, уточнить условие задачи, например. Задача жюри – ответить. Здесь очень важно подходить беспристрастно и единообразно.

Автоматическое тестирование в финале чемпионата мира появилось не так давно, по-моему, не более пяти лет назад. До того использовался олдскульный метод – программа участников запускалась, и жюри видело разницу между ожидаемым выводом и выводом участника («выводом» — в смысле выводом результатов решения на монитор или печать. – ред.). Член жюри выносил вердикт.

— Китайцы не пытались Codeforces скопировать?

ММ Компетентных людей, мотивированных жить интересами сообщества, не очень много, и, видимо, они живут не в Китае.

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

Есть похожие проекты родом из Индии, примерно в одно время с Codeforces возник такой сайт, CodeChef, там тоже регулярно проходят соревнования, но это проект, поддерживаемый исключительно подразделением одной индийской IT-компании.

Есть стартап HackerRank в Кремниевой долине, который поднял не один раунд инвестиций и пытается строить вокруг подобных соревнований настоящий бизнес, выступает таким маркетплейсом между талантливыми программистами и компаниями, которые хотят нанять талантливых программистов. Codeforces тоже с этой стороны в некоторой степени с этим работает, мы неоднократно для нескольких компаний находили сотрудников. Но, в основном, та миссия, которую мы несем, связана с сообществом, а не бизнесом.

— Брать деньги с участников – это неправильная идея? Марафон же бегают за деньги.

ММ Скорее неправильная. Большая часть участников уйдёт на какие-то другие платформы. Участники — люди совсем разного достатка, есть из совсем небогатых стран, есть школьники, им сложно будет заплатить.

В прошлом году, в январе, Codeforces исполнилось пять лет, и по этому поводу я организовал краудфандинг с таким девизом: «Мы пять лет работали, поздравьте нас. Поддержите нас». Похожие краудфандинги компании каждый год делает Википедия, пытаясь собрать бюджет на год, и собирает. Подобную кампанию делала Mozilla. Умножил, поделил, получилось по прикидкам чуть больше 15 тысяч долларов, и я сказал: «Ну, цель, значит, 15 тысяч долларов собрать». Мы их собрали за неделю, после этого я отменил эту верхнюю границу, и получилось 30 тысяч долларов, со всего мира, Люди приходили со своим трудовым рублем, писали тёплые слова. Были люди, которые довольно большие деньги оставляли, например, один из участников из Соединенных Штатов, студент, взял и перевел тысячу долларов.

— Как Вам идея импортозамещения софта в России?

ММ Знаю, что Linux начали какой-то внедрять, свой дистрибутив по областным администрациям. Но не знаю, получится ли.

ИР Думаю, отказаться от гегемонии Microsoft Office было бы очень здорово. И тот же Microsoft Windows, как мне кажется, тоже особо не нужен. Средне подготовленный пользователь не увидит разницы. Я на своей жене проверял, поставил Linux вместо Windows. Не заметила. Браузер на том же месте – всё, больше ничего не нужно.

Мне недавно коллеги прислали документ Microsoft Office, сказали: «Прочти, дай комментарий». А мне его даже открыть нечем. Не открыл. Пришлось что-то загружать через Google Docs.

Если бы в России перестали пользоваться Microsoft Office, мне кажется, было бы хорошо.

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

Хотя это нормальная политика государства, пытаться что-то импортозамещать. Хочется, чтобы это происходило просто потому, что у нас создаются хорошие продукты. Например, я всё тот же пример приведу, нам не нужно импортозамещать соцсети, они и так у нас импортозамещены. Просто потому, что у нас есть хороший продукт, который развился в нашем государстве. Правильно было бы посмотреть на всех этих сильных игроков, которые развились, существуют. Тот же антивирус Касперского, «1С» – они же все без помощи государства строили все это.

В этой индустрии чем меньше вмешиваются, тем лучше, пока есть свободный неконтролируемый рынок – можно самостоятельно строить эти процессы, это хорошо работает. А вот при наличии контроля сверху, боюсь, это в плохую сторону будет работать. Я не знаю, как это будет происходить, пока у нас еще статистики такой нет.

— Спортивное программирование облегчает трудоустройство?

ИР Кто-то из ведущих специалистов по обучению Google утверждал, что успехи в соревнованиях по программированию негативно коррелируют с карьерными достижениями. Потом это очень хорошо объяснилось (речь шла исключительно о сотрудниках Google, а не просто о программистах). Дело в том, что Google во многом свой отбор строит на задачах, очень похожих на те, которые предлагаются на олимпиадах. И, конечно, люди, которые много лет участвуют в соревнованиях, решают подобные задачи в условиях стресса на скорость, имеют преимущества при прохождении интервью, но на промышленных задачах запредельной производительности не демонстрируют. Статистически так и должно быть. Руководство это обсудило и приняло решение: никак не использовать наблюдение на практике. Задачи на собеседовании никак не изменились после того, как этот результат был получен.

— Мне доводилось слышать, что люди, пришедшие в Google, сталкиваются с разными задачами, в том числе и с неинтересными, кто-то кнопочки рисует – это правда?

ИР Нет, ну, всё-таки, кнопочки рисовать – это отдельная специальность. А оверквалифайд случается, знаю лично такой пример. Видимо, так бывает. Но какая доля этого, сложно сказать.

В Google можно каждые полтора года менять проект без зазрения совести. Поэтому, если действительно хочешь поменять, ты можешь менять раньше, а уж через полтора года – точно.

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

Пхукет – Москва

Михаил Мирзаянов (слева) и Иван Романов
Михаил Мирзаянов (слева) и Иван Романов. Фото (с) Андрей Анненков