Блог пользователя gKseni

Автор gKseni, 9 лет назад, По-русски

Журнал «Секрет Фирмы» поговорил с тренером Андреем Лопатиным, который год готовил студентов к олимпиаде.



Тренер команды СПбГУ по программированию объясняет, почему русские кодеры сильнее китайских

— Что всё-таки сильнее — СПбГУ или ИТМО?

— Это вечный вопрос. Зависит от того, у кого спрашивать. СПбГУ четыре раза выигрывал, ИТМО — шесть.

— Расскажите немного о себе. Читала, что вы закончили легендарный лицей №239 в Санкт-Петербурге, где учились многие известные люди от Григория Перельмана до Бориса Гребенщикова и познакомились там с Николаем Дуровым (сооснователь «ВКонтакте» и Telegram. — Прим. «Секрета»).

— Да, было дело. Лицей №239 — один из лучших в Санкт-Петербурге. Там много известных людей училось, в одно время с нами, например, Инна Друзь. Но я его не закончил, с 8-го по 10-й класс там учился, а закончил 11-й класс в языковой школе №238. С нашим набором проводили эксперимент: мы учили английский, французский, латынь, древнегреческий и другие языки, проходили философию, востоковедение, античную культуру.

Мои родители — преподаватели. Мать преподавала математику в школе, а отец — военный преподаватель, он командовал ротой в АСО (аварийно-спасательный отряд).

— Когда вы увлеклись программированием?

— Началось с того, что мне в руки попала книжка про язык Basic, я её прочитал, но никакого практического применения найти не смог. С компьютерами я познакомился в начале 90-х, нам привезли их в языковую школу, и я попытался по памяти воспроизвести какие-то программы из книги. С удивлением узнал, что в Basic есть множество разных диалектов и то, что я знаю про язык из этой книжки, плохо работает на компьютерах. Я начал изучать разные языки программирования, а в алгоритмы серьёзно погрузился в девятом классе.

В восьмом классе я писал какие-то программы, в основном на Assembler — сейчас это звучит довольно дико, это самый низкоуровневый машинный язык, но тогда вариантов особо не было. Например, писал компилятор языка Forth — программу, которая записывала звук с магнитофона. — Вы хотели заниматься научной работой, связанной с программированием и математикой?

— Ещё в школе я был участником сборной России по информатике и ездил на международные олимпиады для школьников. Потом поступил в СПбГУ, там нам много рассказывали про алгоритмы, я уже серьёзно ими занимался.

В науке я успел поработать, но не очень долго, после университета я больше занимался практическими вещами. Например, тренерством команды по программированию, работал над «ВКонтакте» и Telegram, занимался проектом в сфере транспортной логистики Veeroute. Во «ВКонтакте» я работал с 2008 года, когда перестала справляться стандартная архитектура, пришлось сделать свою, мы вместе с Николаем её создавали.

— В каких олимпиадах вы выигрывали?

— Студенческий финал чемпионата мира 2000 и 2001 года, мы в компании с Николаем Дуровым, в 2009 году я выиграл марафон Topcoder. Тогда это были очень важные мероприятия, а сейчас как-то уменьшили влияние.

— У них же там и Facebook, IBM и другие компании в партнёрах.

— Facebook сейчас проводит свои соревнования. Возможно, они немного их поддерживают, я не вдаюсь в тонкости взаимоотношений Topcoder и Facebook, ну работает — и хорошо. Ребята участвуют активно в Topcoder, я тоже иногда вспоминаю былое, мне полезно участвовать, просто не всегда хватает времени. Цифры говорят за себя: раньше они приглашали 72 человека только по алгоритмам на финал, а сейчас всего 8-12. Может, конкуренции не выдержали.

У нас в России есть сильный проект Code Forces, который, на мой взгляд, стал популярнее в мире, чем Topcoder, его делает Миша Мирзаянов из Саратовского университета. Это хороший кейс — как человек из алгоритмического программирования создал ведущий мировой проект в своей сфере. Там в каждом раунде участвует тысяч пять программистов.

— Вы готовите студентов в первую очередь к международной студенческой олимпиаде? Это самая важная олимпиада в мире?

— Да, в первую очередь это чемпионат мира ACM ICPC. За последние 16 лет команды из Питера девять раз занимали первое место — либо мы, либо ИТМО. Этот чемпионат считается самым престижным. Там соревнуются университеты со всего мира, по три человека в команде. Допускаются аспиранты, потому что по-английски это называется Ph.D. Но есть ограничения по возрасту и количеству попыток: в полуфинальных и четвертьфинальных соревнованиях можно не больше пяти раз участвовать, в финальных — не более двух.

— Видела, что Саратовский университет тоже побеждал.

— Да, Саратовский университет выигрывал как раз с тренером Мишей Мирзаяновым.

— А до 2000 года очень много американских университетов, тогда в России никого не было?

— Раньше это было такое локальное мероприятие, а потом пришёл IBM со спонсорством, они развернули очень активную кампанию по привлечению людей. Российские команды начали участвовать с 1995 года.

— Какие у нас основные конкуренты? Китайцы?

— Зависит от года, но обычно поляки, китайцы, студенты MIT. У поляков очень сильная школа в Варшаве. Они несколько раз выигрывали, и в этом году в фаворитах (интервью проходило до чемпионата, команда Варшавского университета заняла пятое место. — Прим. «Секрета»).

— У программистов есть денежная мотивация для участия в олимпиадах или это скорее желание решить какую-то задачу и доказать себе, что смог это сделать?

— Денежная мотивация тоже присутствует. Плюс участие в олимпиаде помогает строить карьеру. Сразу начинают сыпаться приглашения от разных фирм.

— Но есть теоретические программисты, а есть те, кто решает прикладные задачи?

— В командах встречаются люди, которые занимаются теоретической математикой и тем, что называется computer science, но часто и в компаниях нужны такие математики. В бизнесе тоже приходится и интегральчик посчитать или что-нибудь такое, задачи по оптимизации иначе не решаются. Теория важна, но люди чаще хотят решать практические задачи.

— Как повлиял технологический бум на профессию программиста? Сейчас спрос вырос?

— Эта профессия всегда была престижной, были уже всякие бумы доткомов и прочее. Уже в конце 90-х за программирование в России получали очень хорошие деньги в долларах. Некоторые уезжали на Запад — например, мой школьный тренер уехал по приглашению Microsoft в США ещё в 1997 году. Когда я был в старших классах, многие думали о карьере программиста, чтобы иметь хороший заработок, но мне просто было интересно. Сейчас компьютер и мобильная техника прочно вошли в нашу жизнь, программисты нужны везде, и сейчас, как и тогда, люди получают хорошие зарплаты.

— Сейчас больше людей уезжает?

— Мне кажется, примерно столько же. Одно время, по ощущениям, меньше уезжало — это период с 2004 по 2012 год. Помню, как в 2005-м Google проводил мероприятие и сразу приглашал финалистов олимпиад [на работу], и мы считали с ребятами, сколько от зарплаты останется после вычета налогов, затрат на жизнь. Выходило, что особого смысла ехать ради денег нет. Сейчас из-за курса доллара уезжать стали, наверное, чаще.

Я бы сказал, что уезжают 30-50% [олимпиадников]. Некоторые хотят заниматься наукой, они уезжают в американские, канадские, немецкие университеты, некоторые потом возвращаются.

— Как часто проходят тренировки?

— Командные — три раза в неделю по пять часов, плюс сборы несколько раз в год. Есть ещё всякие соревнования — уже упомянутые TopCoder, Codeforces, конкурсы Facebook, Google, «ВКонтакте», «Яндекса», — всего и не упомнишь. Ребята в них участвуют, чтобы не терять форму. Это уже спортивное мероприятие, где нужно не только, чтобы голова работала. Вот есть шахматы: кто-то говорит, что это помогает планировать, просчитывать ходы людей — я сам занимался шахматами, мне кажется, что мне это помогло участвовать в других соревнованиях, потому что у меня уже был опыт соревнования. Хотя программирование — гораздо более приближённый к реальности интеллектуальный вид спорта.

— Где обычно проходят сборы?

— Иногда собираемся в Петрозаводске, в начале апреля ездили на сборы в МФТИ, наша команда выиграла, хотя там были и участники из Шанхая. Не было, к сожалению, команды из Варшавы, которая нас обыграла на предыдущих сборах в Петрозаводске. Было бы интересно снова встретиться и посмотреть, как мы прокачались. В 2007 году у них была очень сильная команда. Она обыгрывала всех на голову и выиграла чемпионат мира. В 2008 году эта команда прыгнула на недосягаемую высоту по результатам всех сборов, тренировок, даже не было мысли, что кто-то другой может выиграть. И вот в прошлом году у этой команды с одной задачей не заладилось в финале и они не получили ни одной медалей, хотя медали даются 12 лучшим командам — четыре золота, четыре серебра и четыре бронзы.

— Драйв и адреналин как в большом спорте?

— Нагрузка очень высокая, участников вырубает на долгое время, хотя, когда я стал тренером, я понял: быть участником — это ещё не самое страшное. Участник хотя бы может что-то сделать, а тренера просто изолируют и он ничего не может, когда хочет подсказать. Это очень нервно.

— Потом эти люди, как правило, устраиваются в крупные компании?

— Часто. Помню, когда команда в 2010 году взяла серебряную медаль, их устроили работать во «ВКонтакте». Мне кажется, это было для них полезно, потому что они узнали, что такое ответственность, когда работаешь на большую компанию и большую задачу. Это помогло им в финале чувствовать себя более уверенными, они получили золотую медаль и стали чемпионами Европы в 2011 году. Сейчас люди из той команды работают во «ВКонтакте» и Telegram.

Большие компании постоянно предлагают работу и ребятам, и мне. Не так давно мне пришло письмо от Google примерно в такой форме: скажите, пожалуйста, в каком офисе бы вы хотели работать? В Лондоне или в Цюрихе? Я как-то участвовал в году 2003 в Олимпиаде, которую Samsung спонсировал, они до сих пор периодически присылают письма: может быть, вы всё-таки хотите?

— Вы вообще такие варианты не рассматриваете?

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

— Есть ощущение, что программисты — это такое закрытое сообщество людей, которым комфортно друг с другом и не всегда с окружающим миром. Есть такое?

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

— А вы замечаете, что происходит омоложение профессии? 20-летние программисты выигрывают конкурсы и устраиваются в крупные компании.

— Талантливая молодёжь всегда есть, периодически появляются люди, которые в раннем возврате показывают очень хорошие результаты. Например, когда я учился в 11-м классе, семиклассник Петя Митричев из 57-й школы чуть было не помешал мне пройти на международную олимпиаду школьников. После Пети Митричева был Гена Короткевич, которому в пятом классе не хватило несколько баллов до золотой медали на той же международной олимпиаде.

— Но всё-таки есть какая-то ценность в тех, кто писал код 30 лет назад? Или им пора на покой?

— Опыт помогает какие-то спецэффекты исправлять быстрее, он играет роль, но дело в том, что языки, на которых пишут программисты, меняются очень быстро. Знание современных технологий и умение адаптироваться играет большую роль.

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

— Чем компания может привлечь программиста кроме решения интересных задач и зарплаты?

— Мне кажется, компаниям стоит быть более открытыми и участвовать в конкурсах и олимпиадах. Нужно, чтобы люди из компаний постоянно встречались и общались с программистами. Ведь что такое олимпиада? Это один из путей становления программистов. Олимпиады многие критикуют, будто они оторваны от реальности. Это не так, задачи, которые решаются на соревнованиях, — часть каких-то больших задач.

— Вы замечаете среди программистов людей с предпринимательским мышлением, людей, которые хотят открыть своё дело?

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

  • Проголосовать: нравится
  • +168
  • Проголосовать: не нравится