Research Engineer в Ring Ukraine — о том, как совмещать две учебы, работу фултайм и победы на олимпиадах по программированию

В конце октября в Виннице состоялся финал Всеукраинской студенческой олимпиады по программированию, который совпал с полуфиналом Международной студенческой олимпиады по программированию ACM ICPC. Всего на двух площадках в Украине и Румынии соревновалось 85 команд технических вузов из Восточной и Южной Европы. Команда из трех студентов НТУ «ХПИ» обошла соперников из Киева и Львова и заняла первое место по Украине и четвертое — по Юго-Восточной Европе. Один из троих победителей, Владислав Мац, рассказал DOU, как ему удается совмещать учебу с участием в олимпиадах и постоянной работой в Ring Ukraine в Киеве. А также об олимпиадном движении в целом и учебе в Школе «Яндекса».

Школа и университет

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

Нет, родители не особо близки к технологиям, но они всегда поддерживали меня во всех начинаниях. В детстве много чего перепробовал: ходил 9 лет на тхэквондо, с 6-го класса — на кружок по математике «Эврика» при Харьковском университете, закончил музыкальную школу, занимался все время с репетитором английским.

Долго не мог решить, кем я хочу быть. Наверное, только ближе к 10-му классу определился, что склоняюсь к математике и программированию. В школьных олимпиадах участвовал, но не очень серьезно. Например, занял 3-е место на Всеукраинском турнире по физике в Ивано-Франковске и 2-е место на Всеукраинском конкурсе защиты Малой академии наук.

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

— Ты сейчас учишься на 5-м курсе в Харьковском политехе, на специальности «Прикладная математика». Сложно было поступить?

У меня были довольно высокие баллы по ВНО — 199,5 баллов по физике и математике, но я поступил не в первую волну. Именно на нашей кафедре был очень высокий проходной балл. Туда набирали всего 13 человек, причем среди желающих было много олимпиадников, а за первые места на олимпиадах давали дополнительные баллы. У конкурентов уже были победы международного уровня, а у меня только МАН по физике, но это не считалось. Поэтому я едва прошел по баллам. В любое другое место поступал спокойно, но очень рад, что попал именно в такую сильную группу. Она маленькая, но сильно выделяется из всего университета.

— Ты доволен образованием, которое дает этот вуз, или все достижения — это больше самостоятельная работа?

Я попал в очень крутое место, хотя надо сказать, что решает не университет, не направление и не кафедра, а преподаватели — те 5-6 лучших, которые у нас ведут. Например, по матанализу, наверное, самый офигенный преподаватель, какой у меня был в жизни. Когда мы готовились ко Всеукраинской олимпиаде по математике, она с нами много занималась, мы ходили готовиться к ней домой. Не уверен, что многие преподаватели на такое способны — по субботам у себя дома готовиться со студентами.

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

Олимпиады

— Расскажи про олимпиаду в Виннице. Как готовился, сложно ли было попасть в полуфинал и выиграть?

Это была большая ежегодная олимпиада, студенческий чемпионат мира по программированию, полуфинал. В Виннице соревновались команды из Восточной Европы, параллельно в Бухаресте проходил полуфинал для студентов из Южной Европы. Мы заняли первое место из команд по Украине и 4-е в общем зачете. Участвовали в этой олимпиаде уже четыре раза, с 1 курса, но еще не заходили так далеко. Теперь в марте поедем на финал в Португалию.

— Это командное соревнование, кто был с тобой в команде?

Нас всего трое, участвовали еще два моих одногруппника (Михаил Бабенко и Андрей Черевко — ред). Они оба тоже сейчас работают в одесском офисе Snapchat. В таком составе мы сравнительно недавно. Один член команды, тоже наш одногруппник, выбыл, так как бросил университет, не закончив бакалаврат, а олимпиада только для студентов. Зато он сумел попасть на стажировку в Google.

На полуфинале Международной студенческой олимпиады по программированию ACM ICPC (Владислав по центру)

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

Бывают, это в основном школьные, но я тогда еще в них не участвовал. Есть взрослые, они меньшего масштаба, но и уровень очень высокий. Там, как правило, одни и те же люди ездят на финалы. Чемпионат мира среди студентов считается самым крупным из командных соревнований и самым серьезным.

— Сколько всего на твоем счету олимпиад? Это достижение самое серьезное?

С первого курса участвовал в десятках олимпиад разного уровня. Эта, наверное, самая серьезная. Первые два года университета выиграть ее было моей самой большой мечтой в жизни. Она известна во всем мире, и пройти в финал очень сложно. На финале в Португалии будут представители со всего мира. Возможно, от Украины поедет еще одна команда, которая в полуфинале заняла 6-е место в общем зачете, из университета Шевченко.

Из менее серьезных соревнований, но тоже значимых — два года назад ездил в Париж на финал Google HashCode, был в Польше в Катовице на финале чемпионата Deadline 24. Тогда я вообще впервые в Европе побывал, это был интересный опыт. Было второе место на Moscow Code Festival и третье на KPI-Open.

— Как нужно готовиться, чтоб выиграть олимпиаду такого уровня, сколько времени?

Раньше я занимался этим очень много, почти каждый день решал задачи. Потом, когда на 3-м курсе пошел на работу, времени, конечно, стало меньше. К полуфиналу в Виннице мы готовились примерно два месяца: по выходным решали задачи-тренировки из интернета, с сайтов по спортивному программированию. Они похожи на формат самой олимпиады, позволяют к нему привыкнуть и отработать его. То есть занимались примерно по два часа в день по буднях и делали по две 5-часовые тренировки на выходных, в целом около 20 часов в неделю. Но мне и просто нравится постоянно читать про алгоритмы и математику, и это тоже помогает в подготовке, а теперь и еще работа.

Еще бывают специальные сборы по подготовке к олимпиадам, которые проводят в Москве и Петрозаводске. Туда со всего мира съезжается несколько сотен команд, все соревнуются и готовятся. Скоро будет такой сбор, целых 9 дней — соревнования в формате олимпиады, разбор задач, лекции. Я дважды ездил на такие сборы в Москву и раз в Саратов в летнюю школу. Пару недель там учился в очень высоком темпе.

— Как проходит сам конкурс и что нужно, чтобы выиграть?

Формат такой: есть один компьютер, 3 человека, 10-13 задач. Причем у организаторов на их подготовку много месяцев, а у команды — всего 5 часов на их решение. На полуфинале было 11 задач, мы решили 6, больше не решил никто. К счастью, для победы достаточно просто решить больше задач, чем остальные, а не решить все.

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

— Какие-то материальные бонусы тебе это приносит, кто оплачивает эти поездки?

Оплачивает поездки чаще всего университет. Сейчас мы уже все работаем, поэтому в последней поездке в основном все оплачивали сами, снимали квартиру вместо общежития. Кое-что оплачивают на работе, например, ближайшую поездку на подготовку в Москву. Ring Ukraine в разных форматах постоянно спонсирует какие-то соревнования.

Из материальных бонусов — это призы спонсоров. На винницком этапе были такие спонсоры, как Snapchat, Facebook, Huawei. Подарили смартфоны, фотоаппараты, электронику разную. Snapchat в качестве подарка оплатил билеты на финал и проживание в Порту.

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

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

В целом, думаю, многие неправильно относятся к олимпиадам. Заниматься этим с надеждой, что это когда-то принесет тебе деньги, — довольно глупо. Если ты хочешь денег — стоит заниматься тем, за что платят, это немного другие вещи. Но мне лично олимпиады помогли попасть в свое время в Ring Ukraine. На самом деле я чувствую, что большей части того, что у меня есть, я обязан олимпиадам, как бы это странно ни звучало. И университет, и работа, и школа анализа данных «Яндекса» — все это я вряд ли получил бы без соревнований.

Школа «Яндекса»

— Расскажи подробнее об этой школе.

В «Яндексе» есть курсы, называются ШАД — Школа анализа данных. Школа бесплатная и в основном рассчитана на магистров, но я туда поступил после 2-го курса. У них есть около десятка филиалов в РФ и Беларуси, но главный центр — в Москве. Студенты из Украины учатся заочно.

Обучение длится два года. Основные темы: машинное обучение, компьютерное зрение, алгоритмы и все в таком духе. Туда поступить непросто, со всего СНГ набирают 200-300 человек в год, — все зависит от того, сколько людей успешно пройдут собеседование. Для меня это то место, куда сложнее всего было поступить. Я несколько месяцев готовился к экзаменам и собеседованиям.

— Как они проходили?

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

— Много людей училось из Украины?

В этом году закончили школу 5 украинцев, а набрано было, кажется, около 15.

— Получается, ты учился одновременно и на бакалаврате, и в ШАД? Как удавалось совмещать?

Да, причем второй год обучения совмещал еще и с фултайм работой. Это непросто, чаще там совмещают с магистратурой, что полегче. Многие говорили, что такое почти невозможно. На самом деле возможно, потому что в университете к моим пропускам относились очень лояльно. Все время после работы уходило на то, чтобы делать домашки в ШАД, около 30 часов в неделю. То есть полный день на работе, потом до 11 вечера и по выходным учеба. Было напряжно, но когда закончил — такая радость была, сразу столько свободного времени. Обычно из всего набора заканчивают человек 70-80. Также там есть возможность взять академку, если очень тяжело, и растянуть удовольствие, но я смог закончить без этого.

— Какие в школе дисциплины и преподаватели?

Во многом благодаря знаниям, полученным там, я попал потом на работу. На самом деле в университетах в Украине очень слабо преподается машинное обучение — как раз то, чем я занимаюсь в Ring Ukraine. Конечно, можно самому выучить, но когда тебя учат самые крутые, самые известные в России специалисты — это очень классно. Преподавательский состав в основном был из сотрудников «Яндекса» и преподавателей МГУ, МФТИ и Высшей школы экономики. Само машинное обучение вел Константин Воронцов, это очень известный человек, наверное, один из лучших лекторов, которых я видел, хотя это на любителя. Учили алгоритмы, языки — Python, С++, — было много математики — дискретная математика, теория вероятности, — все это на уровне гораздо выше, чем в университете. Часть предметов можно выбирать, как в западных университетах, — то, что тебе интересно. В семестр получалось от 3 до 5 предметов, всего 4 семестра.

— Как проходило заочное обучение?

Каждый день я смотрел лекции онлайн, потом делал домашнее задание на компьютере и отправлял им, они проверяли. Во время учебы не ездил в Москву ни разу, кроме как на сборы по подготовке к олимпиадам. Потом был выпускной, «Яндекс» оплатил нам перелет в Москву. С большинством однокурсников я познакомился только там, до этого лишь в чатах общались.

— Выпускные экзамены были?

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

Работа и совмещение с учебой

— Ring Ukraine — не первое твое место работы. Какое было первым?

Это было в Харькове на втором курсе. Парттайм работал 8 месяцев в небольшой компании, около 10 человек. Меня туда пригласил мой одногруппник, который тоже там работал. Писал код под Android, ушел, когда начал готовиться к поступлению в Школу «Яндекса».

— А как попал в Ring Ukraine? Целенаправленно искал возможность совмещать учебу с работой?

Не сказал бы, что целенаправленно. Все тот же друг знал моего теперешнего тимлида, Сашу Обедникова, и его зареферили. А потом и меня, и еще одного нашего общего друга. Нас всех взяли, но один из них ушел в Snapchat, второй уехал в Google, а я пошел сюда. Собственно, это те самые мои партнеры по команде на олимпиадах. Когда я попал в Ring Ukraine на собеседование, в феврале 2017, это была еще довольно маленькая компания, человек 50. Но пришел работать я только в мае, потому что тогда у меня были олимпиады в Париже и Польше, и я заканчивал 3-й курс в университете.

— Как в компании относятся к совмещению? Работа на первом месте?

Хорошо относятся. Я стараюсь, чтобы мои увлечения и учеба никак не вредили работе, а только помогали. Сложно сказать, на первом ли месте. Но я никогда не просил парттаймов или чего-то в таком духе и все успевал. Я очень благодарен Ring Ukraine за то, что они всегда меня поддерживают с олимпиадами, например, как сейчас с оплатой участия в сборах в Москве, и за то, что всегда без проблем отпускают в университет, когда нужно. Езжу на олимпиады в основном за счет своего отпуска. Давно не ездил просто так куда-то отдыхать, хотя, если бы была возможность, — думаю, все равно выбрал бы поездку на какие-то сборы. Это самый интересный отдых для меня.

— Твоя должность здесь называется Research Engineer. Что она подразумевает?

Хоть это и вполне логичная формулировка, сложно сходу объяснить... Наверное, больше подошло бы название Machine Learning Software Developer. Мы разрабатываем в основном machine learning и немного пишем backend, занимаемся нейронными сетями, компьютерным зрением. Исследуем, изучаем, какие вещи в мире появляются в этих направлениях и как их можно применить к нашему продукту. Это распознавания лиц, детекторы движения и т. д. Учим нейронные сети, например, отличать предметы, чтобы по-разному на них реагировать. Программа позволяет отличить, человек на видео или кошка, или может передать важное сообщение — например, мама пришла.

— Чем существенно Ring Ukraine отличается от твоей первой компании? Какие особенности работы здесь?

Отличается, наверное, все. Например, мои задачи — там я писал под Android, это была более простая и механическая работа. Не было ни математики, ни алгоритмов, ни машинного обучения. В Ring Ukraine все иначе, применяются крутые штуки, и здесь продукт, у которого большое количество пользователей. Все это создает большую ответственность, и при этом много интересного в работе. Есть большой простор для творчества, часто можно самому решать, чем ты хочешь заниматься и как ты хочешь это делать, чтобы сделать продукт лучше. Здесь много математики, и то, что я учил в ШАДе и на олимпиадах, мне очень помогает.

— Хотелось бы тебе еще поучиться или поработать за границей?

Сейчас я поступил на магистратуру, и нужно сначала как минимум ее закончить. Может быть, потом и еще где-то поучился бы. Насчет работы — не знаю, на самом деле даже за границей найти что-то интересное и по душе — сложно. Я общаюсь со своими сокомандниками тут и со студентами из ШАДа, людьми, которые работают по всему миру в самых крутых компаниях. И убеждаюсь, что мне очень повезло с местом работы.

— А каким видишь рост для себя здесь?

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

— Посоветуешь книги, которые были особенно для тебя полезны или как-то значимо на тебя повлияли?

По машинному обучению есть дефолтная книга «Deep Learning» Йана Гудфеллоу, она мне очень понравилась. Я читаю много книг по математике, и, наверное, больше всего мне понравилась книга «Конкретная математика» Дональда Кнута. Еще мне очень нравится формат полухудожественных математических книг, например, «Структура и случайность» Теренса Тао. Из недавних понравились «Вероятностный метод» Н. Алона, Дж. Спенсера и «Proofs from the book» — это сборник очень красивых математических доказательств разных теорем. Он написан живым, интересным языком.

Похожие статьи:
16 січня Верховна Рада ухвалила законопроєкт № 10062, який стосується цифровізації Збройних сил України. Передбачалося, що із цим...
Привет, дорогой друг! Меня зовут Леонид Чернышев, и я работаю Senior Test Automation Engineer в EPAM Systems. Уже несколько лет я преподаю курсы...
IncubateX Ukraine — международный продуктовый хакатон со свободной темой, который пройдёт 27-28 августа в киевском офисе ZEO Alliance. Для...
Мобильный поиск Яндекса начал учитывать при ранжировании, оптимизирована страница для смартфонов или нет. Если сайт не...
У травні має запрацювати електронний кабінет військовозобов’язаного. Він буде окремим сервісом, авторизація...
Яндекс.Метрика