Вступление
Привет, Хабр. Недавно я получил оффер от Яндекса за один день и, не буду скрывать, я этому очень рад. Поэтому мне захотелось поделиться с сообществом своим опытом и мыслями относительно One Day Offer от Яндекса (в дальнейшем ОДО).
Начну с того, что название сия мероприятия вполне описывает его суть. За один день ты проходишь два собеседования и несколько финалов (о них поговорим позже) и в тот же день, если со всем справился, получаешь оффер. Звучит хорошо, но так ли оно на самом деле? Оказалось, что да, все происходит именно так. Никакого ожидания по несколько месяцев и никакой неопределенности по количеству интервью. Всё действительно происходит так быстро, и это, я считаю, очень круто.
Что это
One Day Offer - это относительно молодое мероприятие. Яндекс активно начал его проводить лишь с весны этого года, поэтому оно только набирает обороты, но уже понятно, что формат будет жить и процветать. ОДО проводится по одному из ключевых направлений: фронту, бэку, мобилкам или аналитике. Помимо основной цели - поиск новых кадров - ОДО также служит доказательством, что в Яндекс можно попасть всего за день.
Лично я участвовал в ОДО для мобильщиков, поэтому буду рассказывать про опыт участия именно с точки зрения мобильщика :)
Контест
На самом деле, чтобы попасть на ОДО, нужно для начала успешно пройти несложный контест. Времени на него дается предостаточно: с момента регистрации на ОДО до того дня, когда будут проводиться собеседования.
В моем случае контест состоял из двух задач: одна алгоритмическая и одна на платформу. По ощущениям, алгоритмическая задача была на уровне easy задач с литкода, так что с ней я справился примерно минут за 30. Правда потом потратил ещё 20 на попытку оптимизировать написанное, поскольку у задачи был follow up - написать решение, которое будет использовать константное количество памяти. Такое решение у меня написать не получилось, но это оказалось не критично. Перейдем к более интересному - задаче по платформе. Поскольку я Android разработчик, задание у меня было, что логично, по андроиду. Само по себе задание абсолютно не сложное, но очень интересное. Передо мной был код активити и нужно было перечислить все ошибки, допущенные в этих 30 строчках кода. Разбираться в коде я люблю, поэтому задание принесло мне сплошное удовольствие, и я сидел с ним все оставшееся время, дабы найти вообще все недочеты, которые там есть, и пояснить каждый. Не уверен, что нашел все, но, тем не менее, с заданием я справился и меня пригласили на ОДО.
Приветствие
Ни одно хорошее мероприятие не обходится без вступительного слова от людей, которые как-то с ним связаны. И ОДО не исключение.
На приветствии Дима Макаров (руководитель группы Android в Маркете) и Юра Кочарян (руководитель группы Android в Дзене) рассказали немного про Яндекс и провели для нас небольшую Q&A сессию. А ещё мы увидели вот такой вот интересный кадр
После приветствия началось первое собеседование - платформа. И мы плавно переходим к нему.
Собеседование по платформе
Собеседование по платформе состояло только из теоретических вопросов. Причем их спектр был довольно широк. Приведу примерный список тем, по которым мне задавали вопросы:
Классы в Kotlin
Clean Architecture in Android
Способы хранения данных (простые и сложные вопросы)
Жизненный цикл View и его API
Intents
Приоритеты OOM Killer
Асинхронная работа в Android
Serializable vs Parcelable
Производительность базовых ViewGroup
MV* паттерны
RxJava
WorkManager и Services
Все вопросы были +- стандартные, и напрягся я только на вопросах по Rx и многопоточности, поскольку в этих темах я не очень хорошо разбираюсь. В общем, если знал - отвечал, если не знал - честно признавал это.
В целом собеседование получилось интересным. Особенно порадовало, что интервьювер общался на равных, благодаря чему складывалось впечатление, что я не прохожу собеседование, а веду диалог с коллегой. И это относится ко всем интервью ОДО, а не только к платформе, но об этом я ещё упомяну далее.
Собеседование по кодингу
Кодинг интервью началось у меня с приключений. Ссылка на зум не работала, поэтому пришлось подключаться через идентификатор конференции. Но и это получилось только со второго раза, потому что в первый раз я никого не слышал.
Наконец началось то, чего я, наверное, боялся больше всего: собеседование по кодингу. Все же слышали эти страшные истории про задачи на алгоритмы, оторванные от реальности, да? Так вот у меня их не было.
Вообще, тут стоит сделать небольшой оффтоп и сказать, что кодинг интервью зависит от того, куда и на какую должность ты идешь. Где-то алгоритмов больше, где-то меньше, где-то их вообще нет. Все зависит от специфики команды и задач, которые перед ней стоят. Это логично, но почему-то многие об этом забывают, и поэтому у нас появился устоявшийся стереотип о том, что на кодинге в Яндексе всегда спрашивают алгоритмы.
Вернемся к собеседованию. Поскольку меня собеседовал Дима Макаров из маркета, у меня, как я уже сказал, не было задач на алгоритмы. Но это не значит, что собеседование было легким. Оно было средней сложности. Тут опять сыграл недостаток знаний по Rx и потокам, и первые пару задач я худо-бедно решил с подсказками интервьюера. Но с последними двумя задачами - на понимание кода и на рефакторинг - я справился достаточно хорошо.
Этот этап ОДО также получился не очень сложным (а по сравнению с моими ожиданиями даже легким). На нем я даже узнал что-то новое во время обсуждений задач. Общение все также было приятным и достаточно не официальным. В общем, этот этап ОДО мне понравился даже больше, чем предыдущий.
Финалы
После небольшого ожидания, мне сообщили, что я успешно прошел оба собеседования, и можно назначать время финала. Финал - это общение с командой, в которой ты будешь работать в случае метча. В первой части финала ты рассказываешь о себе, своем опыте, интересах и т.п. После, интервьюер рассказывает про Яндекс, его плюшки и команду. Финал, так же как и предыдущие два собеседования, занимает час (хотя наверное можно уложиться и в меньшее время) и является, наверное, самой лайтовой частью ОДО. По сути это обычное общение. Вообще финалов может быть несколько, лично у меня могло бы быть до трех финалов включительно. То есть я мог поговорить с тремя из пяти (я могу что-то путать, и их могло быть четыре) команд, участвующих в ОДО. То есть у кандидата есть выбор из нескольких команд, и он может выбрать любую, которая больше понравится. Но, поскольку я шел целенаправленно в маркет, у меня был только один финал.
И уже через полтора часа после завершения финала я получил заветный оффер от Яндекса.
Заключение
Вот, как-то так и прошел мой One Day Offer. Также я нигде не упомянул, что на протяжении всего мероприятия на связи были рекрутеры Яндекса, которые сообщали фидбэк по собеседованиям и расписание, за что им отдельное спасибо. Ещё одним приятным бонусом стал промокод на Яндекс Еду, чтобы "ожидание обратной связи было приятным". В общем, мероприятие крутое, и я всем советую в нем участвовать. Надеюсь мой опыт и впечатления от ОДО будут полезны будущим кандидатам и помогут организаторам сделать это мероприятие ещё лучше.
А ещё я не могу не воспользоваться случаем и не поделиться своим телеграмм каналом, на котором я буду рассказывать про свой путь в IT и делиться разными материалами. Мне только 17, и я лишь в начале своей карьеры, но уже получил оффер от Яндекса на позицию мидла. Поэтому, думаю, мой канал может быть интересен как начинающим, так и опытным разработчикам. В общем, если я вас заинтересовал, жду на канале.