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» — это сборник очень красивых математических доказательств разных теорем. Он написан живым, интересным языком.

Похожие статьи:
Buying flowers for Mother’s Day is often a difficult thing to do. It is the one time of year where you become a flower expert, wondering which ones are the best and deciding whether your mother would indeed like the bouquet that you are thinking...
Would you like working in an office space with a boring and dull looking interior? Obviously, you would like to work in a space having an atmosphere that gives positive vibes. Thus, adding charm and elegance to your office’s interior is...
У новому випуску DOU Podcast обговорюємо віддалену роботу, продуктивність, перехід робочої комунікації Mono в Slack та «Founder Mode». Нумо...
Всім привіт! Мене звати Дмитро, я працюю AQA інженером в компанії Intellias на automotive проєкті. У цій статті я хочу розказати про...
DOU регулярно публікує списки запитань для співбесід — і цього разу наша стаття присвячена професії User Experience Designer (UI/UX)....
Яндекс.Метрика