Research Engineer в Ring Ukraine — о том, как совмещать две учебы, работу фултайм и победы на олимпиадах по программированию
В конце октября в Виннице состоялся финал Всеукраинской студенческой олимпиады по программированию, который совпал с полуфиналом Международной студенческой олимпиады по программированию ACM ICPC. Всего на двух площадках в Украине и Румынии соревновалось 85 команд технических вузов из Восточной и Южной Европы. Команда из трех студентов НТУ «ХПИ» обошла соперников из Киева и Львова и заняла первое место по Украине и четвертое — по Юго-Восточной Европе. Один из троих победителей, Владислав Мац, рассказал DOU, как ему удается совмещать учебу с участием в олимпиадах и постоянной работой в Ring Ukraine в Киеве. А также об олимпиадном движении в целом и учебе в Школе «Яндекса».
Школа и университет
— Когда и как к тебе пришло увлечение программированием? Это семейное?
Нет, родители не особо близки к технологиям, но они всегда поддерживали меня во всех начинаниях. В детстве много чего перепробовал: ходил 9 лет на тхэквондо, с
Долго не мог решить, кем я хочу быть. Наверное, только ближе к
Когда выбирал университет, в политехе понравилось то, что тут было соотношение предметов больше в пользу математики, чем программирования, мне это было ближе. И многие знакомые, с кем бывал на олимпиадах, самые крутые ребята, собирались туда поступать, и это тоже стало ориентиром.
— Ты сейчас учишься на 5-м курсе в Харьковском политехе, на специальности «Прикладная математика». Сложно было поступить?
У меня были довольно высокие баллы по ВНО — 199,5 баллов по физике и математике, но я поступил не в первую волну. Именно на нашей кафедре был очень высокий проходной балл. Туда набирали всего 13 человек, причем среди желающих было много олимпиадников, а за первые места на олимпиадах давали дополнительные баллы. У конкурентов уже были победы международного уровня, а у меня только МАН по физике, но это не считалось. Поэтому я едва прошел по баллам. В любое другое место поступал спокойно, но очень рад, что попал именно в такую сильную группу. Она маленькая, но сильно выделяется из всего университета.
— Ты доволен образованием, которое дает этот вуз, или все достижения — это больше самостоятельная работа?
Я попал в очень крутое место, хотя надо сказать, что решает не университет, не направление и не кафедра, а преподаватели — те
И одногруппники тоже важны. У меня была обычная школа, там было просто и не очень интересно, а тут я оказался среди очень умных и крутых ребят середнячком, и это очень мотивирует. У меня всегда был дух соперничества и азарта, я начинал с ними соревноваться в более слабой команде. Но много занимался, и в итоге мы их пару раз победили, и так я оказался в сильной команде.
Олимпиады
— Расскажи про олимпиаду в Виннице. Как готовился, сложно ли было попасть в полуфинал и выиграть?
Это была большая ежегодная олимпиада, студенческий чемпионат мира по программированию, полуфинал. В Виннице соревновались команды из Восточной Европы, параллельно в Бухаресте проходил полуфинал для студентов из Южной Европы. Мы заняли первое место из команд по Украине и
— Это командное соревнование, кто был с тобой в команде?
Нас всего трое, участвовали еще два моих одногруппника (Михаил Бабенко и Андрей Черевко — ред). Они оба тоже сейчас работают в одесском офисе Snapchat. В таком составе мы сравнительно недавно. Один член команды, тоже наш одногруппник, выбыл, так как бросил университет, не закончив бакалаврат, а олимпиада только для студентов. Зато он сумел попасть на стажировку в Google.
На полуфинале Международной студенческой олимпиады по программированию ACM ICPC (Владислав по центру)
— А некомандные олимпиады бывают?
Бывают, это в основном школьные, но я тогда еще в них не участвовал. Есть взрослые, они меньшего масштаба, но и уровень очень высокий. Там, как правило, одни и те же люди ездят на финалы. Чемпионат мира среди студентов считается самым крупным из командных соревнований и самым серьезным.
— Сколько всего на твоем счету олимпиад? Это достижение самое серьезное?
С первого курса участвовал в десятках олимпиад разного уровня. Эта, наверное, самая серьезная. Первые два года университета выиграть ее было моей самой большой мечтой в жизни. Она известна во всем мире, и пройти в финал очень сложно. На финале в Португалии будут представители со всего мира. Возможно, от Украины поедет еще одна команда, которая в полуфинале заняла
Из менее серьезных соревнований, но тоже значимых — два года назад ездил в Париж на финал Google HashCode, был в Польше в Катовице на финале чемпионата Deadline 24. Тогда я вообще впервые в Европе побывал, это был интересный опыт. Было второе место на Moscow Code Festival и третье на KPI-Open.
— Как нужно готовиться, чтоб выиграть олимпиаду такого уровня, сколько времени?
Раньше я занимался этим очень много, почти каждый день решал задачи. Потом, когда на
Еще бывают специальные сборы по подготовке к олимпиадам, которые проводят в Москве и Петрозаводске. Туда со всего мира съезжается несколько сотен команд, все соревнуются и готовятся. Скоро будет такой сбор, целых 9 дней — соревнования в формате олимпиады, разбор задач, лекции. Я дважды ездил на такие сборы в Москву и раз в Саратов в летнюю школу. Пару недель там учился в очень высоком темпе.
— Как проходит сам конкурс и что нужно, чтобы выиграть?
Формат такой: есть один компьютер, 3 человека,
Все происходит в очень быстром темпе, значительно быстрее, чем на работе. Важна только скорость и корректность работы кода, что иногда негативно влияет на его качество. Но в итоге топовые команды начинают писать хороший код, иначе потом, если будет ошибка, ее не найти. Решение — это код, который ты отправляешь в тестирующую систему. Сложность обычно подобрана так, что никто не может решить все, но каждую задачу кто-то решает. В Виннице, к сожалению, было не так и 3 задачи не решил никто.
— Какие-то материальные бонусы тебе это приносит, кто оплачивает эти поездки?
Оплачивает поездки чаще всего университет. Сейчас мы уже все работаем, поэтому в последней поездке в основном все оплачивали сами, снимали квартиру вместо общежития. Кое-что оплачивают на работе, например, ближайшую поездку на подготовку в Москву. Ring Ukraine в разных форматах постоянно спонсирует какие-то соревнования.
Из материальных бонусов — это призы спонсоров. На винницком этапе были такие спонсоры, как Snapchat, Facebook, Huawei. Подарили смартфоны, фотоаппараты, электронику разную. Snapchat в качестве подарка оплатил билеты на финал и проживание в Порту.
— Что для тебя в целом это олимпиадное движение? Тусовка и определенный круг людей, технический азарт сам по себе или возможность в будущем построить успешную карьеру?
Последние пару лет олимпиады для меня — это просто хобби. Все-таки то, что ты делаешь на соревновании сильно отличается от того, что делаешь на работе. Это что-то гораздо более творческое. Конечно, олимпиады полезны и для работы, но там нечасто встретишь похожие по сложности и типу задачи. В то же время, участвуя в олимпиадах, ты очень сильно прошариваешься в алгоритмах и математике, что очень помогает и на работе, и в жизни.
В целом, думаю, многие неправильно относятся к олимпиадам. Заниматься этим с надеждой, что это когда-то принесет тебе деньги, — довольно глупо. Если ты хочешь денег — стоит заниматься тем, за что платят, это немного другие вещи. Но мне лично олимпиады помогли попасть в свое время в Ring Ukraine. На самом деле я чувствую, что большей части того, что у меня есть, я обязан олимпиадам, как бы это странно ни звучало. И университет, и работа, и школа анализа данных «Яндекса» — все это я вряд ли получил бы без соревнований.
Школа «Яндекса»
— Расскажи подробнее об этой школе.
В «Яндексе» есть курсы, называются ШАД — Школа анализа данных. Школа бесплатная и в основном рассчитана на магистров, но я туда поступил после
Обучение длится два года. Основные темы: машинное обучение, компьютерное зрение, алгоритмы и все в таком духе. Туда поступить непросто, со всего СНГ набирают
— Как они проходили?
Отбор в три этапа: сначала пишешь онлайн-тест, он простой, потом — письменный экзамен. Последнее, самое сложное и самое нервное, — это собеседование с сотрудником «Яндекса». Мне повезло, что меня собеседовал очень известный олимпиадник из Беларуси. Было очень приятно полтора часа поговорить с человеком, которого часто видел в топе на соревнованиях.
— Много людей училось из Украины?
В этом году закончили школу 5 украинцев, а набрано было, кажется, около 15.
— Получается, ты учился одновременно и на бакалаврате, и в ШАД? Как удавалось совмещать?
Да, причем второй год обучения совмещал еще и с фултайм работой. Это непросто, чаще там совмещают с магистратурой, что полегче. Многие говорили, что такое почти невозможно. На самом деле возможно, потому что в университете к моим пропускам относились очень лояльно. Все время после работы уходило на то, чтобы делать домашки в ШАД, около 30 часов в неделю. То есть полный день на работе, потом до 11 вечера и по выходным учеба. Было напряжно, но когда закончил — такая радость была, сразу столько свободного времени. Обычно из всего набора заканчивают человек
— Какие в школе дисциплины и преподаватели?
Во многом благодаря знаниям, полученным там, я попал потом на работу. На самом деле в университетах в Украине очень слабо преподается машинное обучение — как раз то, чем я занимаюсь в Ring Ukraine. Конечно, можно самому выучить, но когда тебя учат самые крутые, самые известные в России специалисты — это очень классно. Преподавательский состав в основном был из сотрудников «Яндекса» и преподавателей МГУ, МФТИ и Высшей школы экономики. Само машинное обучение вел Константин Воронцов, это очень известный человек, наверное, один из лучших лекторов, которых я видел, хотя это на любителя. Учили алгоритмы, языки — Python, С++, — было много математики — дискретная математика, теория вероятности, — все это на уровне гораздо выше, чем в университете. Часть предметов можно выбирать, как в западных университетах, — то, что тебе интересно. В семестр получалось от 3 до 5 предметов, всего 4 семестра.
— Как проходило заочное обучение?
Каждый день я смотрел лекции онлайн, потом делал домашнее задание на компьютере и отправлял им, они проверяли. Во время учебы не ездил в Москву ни разу, кроме как на сборы по подготовке к олимпиадам. Потом был выпускной, «Яндекс» оплатил нам перелет в Москву. С большинством однокурсников я познакомился только там, до этого лишь в чатах общались.
— Выпускные экзамены были?
Как таковых не было, потому что мы постоянно делали домашние и контрольные. В этом большое отличие ШАДа от университета, где полгода между сессиями многие ничего не делают. А в ШАДе если на месяц забьешь — тебя выгоняют. Поэтому нужно постоянно работать в высоком темпе, как на сессии, и смысла в финальных экзаменах нет. В целом я бы всем советовал туда попробовать поступить, потому что, думаю, как минимум в плане machine learning в СНГ ничего лучше нет.
Работа и совмещение с учебой
— Ring Ukraine — не первое твое место работы. Какое было первым?
Это было в Харькове на втором курсе. Парттайм работал 8 месяцев в небольшой компании, около 10 человек. Меня туда пригласил мой одногруппник, который тоже там работал. Писал код под Android, ушел, когда начал готовиться к поступлению в Школу «Яндекса».
— А как попал в Ring Ukraine? Целенаправленно искал возможность совмещать учебу с работой?
Не сказал бы, что целенаправленно. Все тот же друг знал моего теперешнего тимлида, Сашу Обедникова, и его зареферили. А потом и меня, и еще одного нашего общего друга. Нас всех взяли, но один из них ушел в Snapchat, второй уехал в Google, а я пошел сюда. Собственно, это те самые мои партнеры по команде на олимпиадах. Когда я попал в Ring Ukraine на собеседование, в феврале 2017, это была еще довольно маленькая компания, человек 50. Но пришел работать я только в мае, потому что тогда у меня были олимпиады в Париже и Польше, и я заканчивал
— Как в компании относятся к совмещению? Работа на первом месте?
Хорошо относятся. Я стараюсь, чтобы мои увлечения и учеба никак не вредили работе, а только помогали. Сложно сказать, на первом ли месте. Но я никогда не просил парттаймов или чего-то в таком духе и все успевал. Я очень благодарен Ring Ukraine за то, что они всегда меня поддерживают с олимпиадами, например, как сейчас с оплатой участия в сборах в Москве, и за то, что всегда без проблем отпускают в университет, когда нужно. Езжу на олимпиады в основном за счет своего отпуска. Давно не ездил просто так куда-то отдыхать, хотя, если бы была возможность, — думаю, все равно выбрал бы поездку на какие-то сборы. Это самый интересный отдых для меня.
— Твоя должность здесь называется Research Engineer. Что она подразумевает?
Хоть это и вполне логичная формулировка, сложно сходу объяснить... Наверное, больше подошло бы название Machine Learning Software Developer. Мы разрабатываем в основном machine learning и немного пишем backend, занимаемся нейронными сетями, компьютерным зрением. Исследуем, изучаем, какие вещи в мире появляются в этих направлениях и как их можно применить к нашему продукту. Это распознавания лиц, детекторы движения и т. д. Учим нейронные сети, например, отличать предметы, чтобы по-разному на них реагировать. Программа позволяет отличить, человек на видео или кошка, или может передать важное сообщение — например, мама пришла.
— Чем существенно Ring Ukraine отличается от твоей первой компании? Какие особенности работы здесь?
Отличается, наверное, все. Например, мои задачи — там я писал под Android, это была более простая и механическая работа. Не было ни математики, ни алгоритмов, ни машинного обучения. В Ring Ukraine все иначе, применяются крутые штуки, и здесь продукт, у которого большое количество пользователей. Все это создает большую ответственность, и при этом много интересного в работе. Есть большой простор для творчества, часто можно самому решать, чем ты хочешь заниматься и как ты хочешь это делать, чтобы сделать продукт лучше. Здесь много математики, и то, что я учил в ШАДе и на олимпиадах, мне очень помогает.
— Хотелось бы тебе еще поучиться или поработать за границей?
Сейчас я поступил на магистратуру, и нужно сначала как минимум ее закончить. Может быть, потом и еще где-то поучился бы. Насчет работы — не знаю, на самом деле даже за границей найти что-то интересное и по душе — сложно. Я общаюсь со своими сокомандниками тут и со студентами из ШАДа, людьми, которые работают по всему миру в самых крутых компаниях. И убеждаюсь, что мне очень повезло с местом работы.
— А каким видишь рост для себя здесь?
Я работаю в окружении экспертов. Здесь по любой теме найдется человек, который очень хорошо и профессионально этим занимается и у которого можно что-то спросить. У большинства, конечно, опыта намного больше, чем у меня, поэтому возможностей для развития хоть отбавляй.
— Посоветуешь книги, которые были особенно для тебя полезны или как-то значимо на тебя повлияли?
По машинному обучению есть дефолтная книга «Deep Learning» Йана Гудфеллоу, она мне очень понравилась. Я читаю много книг по математике, и, наверное, больше всего мне понравилась книга «Конкретная математика» Дональда Кнута. Еще мне очень нравится формат полухудожественных математических книг, например, «Структура и случайность» Теренса Тао. Из недавних понравились «Вероятностный метод» Н. Алона, Дж. Спенсера и «Proofs from the book» — это сборник очень красивых математических доказательств разных теорем. Он написан живым, интересным языком.