Академия Яндекса изнутри
Недавно я рассказал про то, что все лето провожу в Академии Яндекса, качаю свои скиллы по мобильной разработке под iOS. Мне написали много вопросов, начиная от того, сколько это все стоит и заканчивая тем, вкусная ли еда в яндексовой кафешке.
Кратко
Еда вкусная, обучение бесплатное, темп быстрый, домашки сложные. А если серьезно, то вот как это все случилось.
Часть 1
Дисклеймер. Я подписал жесткий NDA, поэтому не все могу рассказывать. Если увидите что-то зачеркнутое, то знайте — это был секрет.
15 февраля я где-то увидел рекламу, что Яндекс запускает летом новый поток школы мобильной разработки, два направления — iOS и Android. Особо не вникал что там и зачем, просто с телефона заполнил краткую анкету, мол, мне любопытно. Таких же как я, любопытных, было ??? человек.
Параллельно с мобилками запускались еще 4 потока: бэкэнд, фронтенд, дизайн и менеджеры. В сумме на все потоки подалось ?? ??? человек.
Вступительное задание
Следом пришло письмо с двумя частями тестового задания. Первая часть проектная, надо было сделать приложение типа Тинькофф Инвестиций по готовым макетам. Подтягивать информацию по акциям из публичных API, рисовать графики и вот это все.
Для тех, у кого не нашлось макбука, но руки чешутся, дали альтернативу — написать консольный морской бой на Swift.
Проектная часть интересная, объемная. Некоторые из студентов рассказывали, что делали ее 3 недели каждый день. Для меня такое пристальное внимание к тестовому — перебор. На одной из конференций слышал (возможно, кстати, от кого-то из Яндекса), что на тестовое задание должно уходить не больше двух вечеров. Поэтому собрав за выходные рабочий прототип, решил успокоиться и отправить.
Вторая часть — алгоритмические задачки на скорость. Открываешь Яндекс.Контест (оболочка, где решать задачи), нажимаешь «Поехали», и стартуют твои 3 часа на 3 задачи. Задачки разные, в основном на логику и понимание каких-то базовых вещей, типа регулярок или рекурсий. Вводишь код, проверяются автотесты. На первые 10 тестов показывается, на чем упало, а на последующих приходится уже додумывать.
Лично я не успел сделать одну задачу из трех, т.к. напрочь забыл про существование регулярок на одной из задач и 40 минут писал тупой код проверки маски телефона. Когда доперло, что я что-то делаю не так, переписал все за 5 минут, но время уже было утеряно. Для одной задачи поэтому описал словами алгоритм, как бы я ее решал.
Дедлайн тестового был 29 марта, потом немного продлили еще. В целом, времени было более чем достаточно. Конкретно в мобилках сделали тестовое около 9% от подавших заявки. У менеджеров 40%, видимо, более ответственные ребята 🙂
И после отправки тестового началось ожидание результата. Через месяц мне написали, сказали что тестовое было хорошим, позвали прособеседоваться сразу на работу в Яндекс.
Про сам собес уже писал в канале, не буду на нем останавливаться.
Ну и в итоге, 12 мая, пришло заветное письмо — вы прошли, погнали учиться. Такое же письмо пришло еще 238 людям из начальных ?? ???.
Проживание
Я не москвич, поэтому меня ждало самое интересное. Всем иногородним оплачивали перелет и заселяли толпой в хостел. Хостел на Чистых Прудах, 40 минут пешочком до самого офиса Яндекса, или 10-15 на метро. Заселяли по 8 человек в номер, мальчики с мальчиками, девочки с девочками.
К хостелу лично у меня вообще никаких вопросов не было: чистенько, кайфовая общая зона для отдыха и, самое важное для меня, топовое местоположение.
Утром после первой ночи в хостеле я проснулся непривычно рано, около 6 утра. Взял в ближайшей азбуке вкуса булку с кофе, сел на лавочку около пруда и, смотря на уточек, наслаждался. Центр Москвы, отличная погода, окружение мотивированных на обучение людей и среда, стимулирующая развитие — не вижу причин грустить.
Это лаунж зона хостела, тут творится основной нетворкинг.
Есть нюансы, что на кухне в холодильник зачастую не засунуть свою еду, но это логично — много студентов. UPD: поставили второй холодильник, жить стало лучше, жить стало веселее.
Первые несколько дней я постоянно путался в коридорах хостела, он реально большой.
А это номера и душевые комнаты. Каждому по шкафчику!
В первый день все немосквичи заселялись, знакомились, и морально готовились к тому, что будем тут жить последующие три месяца (спойлер — нет).
Онлайн-обучение, кстати, не рассматривалось. Либо ты иногородний и едешь в Москву на обучение, либо сорян, в пролете. По словам организаторов онлайн-формат не особо эффективен по сравнению с очным, и я тут полностью согласен. Меня в первую очередь будоражила атмосфера студенческого кампуса, где все хотят обучаться и фигачить с горящими глазами. За этим и ехал.
На следующий день мы дружной толпой потопали в офис Яндекса на открытие.
Идем довольные и веселые, еще не зная объем домашек в будущем
Открытие
На входе сдали результаты ПЦР-тестов, получили пачку приятного мерча: маски, майки, блокноты, ручки и бейджи-пропуска. Тем, у кого не было макбука, выдали.
У каждого потока своя майка, было удобно — минус один вопрос к стандартным «Как зовут? Ты откуда? На каком потоке?»
Ну и подписали NDA, куда без него.
После вводных организационных моментов все потоки стеклись на афтепати, где уже под сидр/сок с бургерами и бодрый хаус на фоне мы начали знакомиться в менее формальной обстановке. Самыми активными коммуникаторами были, кстати, менеджеры). У них было интересное одно из отборочных заданий — собрать людей, выстроить в звездочку и сфотографировать.
На афтепати были бургеры, сидр и отличная атмосфера.
Студенты очень разного возраста и из разных мест. Одному исполнилось 17 лет в день открытия, но были и студенты старше 35. Не все из России, некоторые из ближнего СНГ.
Небольшое атмосферное видео про открытие, там даже есть кусочек меня на 0:48.
Неофициальная часть закончилась раньше, чем наша потребность в коммуникациях. Так мы стали участниками чудесной ночной прогулки по Москве, которая для самых стойких закончилась в районе 3 ночи.
А пошлите у Кремля сфоткаемся, мыж в Москве!
В общем, открытие прошло на отличненько.
Часть 2
В прошлой части я рассказал о том, как проходил отбор, заселение и открытие. В этой же раскрою про сам процесс обучения и бытовуху.
По традиции, кратко
Июнь-июль — каждую неделю 2 лекции, домашки с дедлайном в 23:59 воскресенья и их разборы по пятницам. Август — работа над проектом в команде.
Первого июня состоялось открытие, а уже второго была первая лекция в офисе Яндекса. Офис здоровый, с большим количеством подъездов и просто так в него не попадешь — нужны бейджи. Те, которые выдали нам, отличались от бейджей сотрудников. У сотрудников белые, а у нас ярко-красные.
Красные, чтобы издалека было видно, ЕЩЕ НЕ ЯНДЕКСОИД.
ШАД, или где я провел 90% времени
По этим бейджам мы могли проходить в очень ограниченное количество зон, например, в Школу Анализа Данных. Это двухгодичный курс Яндекса с выдачей диплома о профессиональной переподготовке, где учат, как ни странно, Анализу Данных. Летом у них каникулы, поэтому на наши бейджи любезно открыли доступы ко всем переговоркам.
В ШАДе, в принципе, было все, чтобы спокойно работать или делать домашки:
- 3 кайфовых кофемашины (капучинчик/латте, горячий шоколад и другие бонусы помимо классических эспрессо/американо),
- магическим образом пополняемые в течение дня снеки (крекеры, зефирки, батончики, пряники и всякое разное),
- холодильник/микроволновка,
- бодрый интернет
- и учебные аудитории с партами, где можно вполне себе нормально работать.
Процесс обучения
В сумме у нас было около 20 лекций, поначалу они проходили в офисе Яндекса, но потом из-за новой волны COVID-19 всех увели на удаленочку. Лекции переехали в зум для всех непривитых, а я на это время вернулся в Самару. К сожалению, большая часть лекций для меня прошла в онлайне, и это не круто — понимаю, почему изначально Яндекс не рассматривали удаленный онлайн-формат. После оффлайн лекций мы могли пойти с одногруппниками в ШАД, что-то обсуждать или делать домашки, и это комьюнити давало ту самую дополнительную ценность.
Лекции проходили по вечерам понедельника и среды, обычно с 19:00 и дальше как повезет. Бывало и до 23:00 мучали спикеров вопросами. По итогу лекции нам высылали ее запись для пересмотра если нужно (а было нужно!) и домашку для закрепления материала. Домашки были сложными, мне с полутора годами коммерческой разработки под iOS и 8-летним бэкграундом веб-разработки было моментами тяжко.
Иногда процесс решения домашки был примерно таким:
Задания надо было сдавать через pull request в свой закрытый репозиторий на github (не-программисты наверное охренели от этого предложения сейчас). Дедлайн всегда единый — воскресенье, 23:59. Начиная с 20:00 в чатах традиционно открывался поток вопросов по домашке и достигал своего пика ровненько к 23:59. Делаем в последний момент, как настоящие студенты! С понедельника по пятницу наши домашки проверяли, давали фидбэк, и каждую пятницу мы с лектором разбирали верное решение и частые проблемы.
По структуре теории все плюс-минус стандартно, с упором на фундамент и базу. Примерный план был такой:
- Вводная про платформу
- Swift, особенности языка и синтаксиса
- UIView, UIKit и в целом верстка разных сложных представлений
- Более глубокий разбор UIViewController-а
- Concurrency, работа с потоками
- Network, работа с сетью с нюансами (экспоненциальный retry, потоки и тд)
- Инструментарий (IDE, Toolchain, Cocoapods и тд)
- Persistence, хранение данных в приложении
- Архитектура (та самая лекция, после которой мы ушли переписывать проект по сути заново)
- Сборка, Тестирование, автотесты, CI/CD
Эта структура, кстати, вполне бьется с моим планом развития iOS-разработчика, который я писал для себя.
Все домашки сводились по сути к тюнингу одного проекта — мы делали туду-лист, похожий на стандартное приложение «Напоминания» на айфоне. Со стороны может показаться что задача простая, но как раз таки простое приложение можно бесконечно усложнять.
Картина «Как я провел Лето 2021»
Проверяли домашки разработчики Яндекса, каждый раз разные. У меня только один раз была ситуация, что проверка была сделана откровенно лениво. Написал тогда куратору, проверили заново уже подробно и с разбором.
Чтобы подключаться в закрытые контуры Яндекса нам выдали токены. Тем, кто уже успел к этому моменту умотать в свой город (как я, например), отправляли их курьерами.
Помимо лекций также проводились групповые тренинги: про софт-скиллы, навыки публичных выступлений, командную работу, скрам. Эти тренинги проходили в miro и зуме, иногда там царила атмосфера хаоса и нескончаемого креатива.
Тренинг по Soft Skills закончился мастер-классом по рисованию динозавров.
Тренинги были полезны для последнего и, лично для меня, самого крутого месяца обучения — работу в командах над проектами. Подробнее об этом ниже в третьей части, а сейчас немного про бытовуху.
Бытовуха
Покушать — это важно. По нашим бейджам был доступ в кафе-столовую Яндекса, отличное место. Мы платили за еду свои кровные, а сотрудники могли расплачиваться бейджами — ежедневно им доступен депозит в 800 рублей. Этой суммы в целом достаточно для завтрака-обеда-ужина.
Даже хачапури есть!
Помимо кафе Яндекса я для себя открыл доставку «Кухни на районе». За 15 минут привозят в контейнерах рацион на весь день. В дни интровертного нежелания выходить за пределы ШАДа меня это выручало. Жду, когда появится в Самаре.
У «Кухни» одна проблема — она приглянулась многим студентам, поэтому размещение контейнеров в холодильнике ШАДа напоминало тетрис. Был повод придти пораньше, чтобы занять лучшие полки.
Это я так хвастался жене своей едой:
Души в хостеле были общие (но раздельно для парней и девушек, естественно). Можно было за 100₽ купить доступ в отдельный душ на час. Для стирки можно было арендовать стиралку за 150₽, но я не люблю гладить, поэтому относил свое тряпьё в ближайшую прачечную и забирал уже чистое и наглаженное.
В плане досуга кто-то ходил в зоопарки, музеи, на выставки. Некоторые собирались компашкой и периодически играли в баскет. Кто-то ходил на рейвы, кто-то в кальянные, в общем движуха была регулярной, при желании можно было присоединиться ко всему.
Лично я периодически ходил в Лужники в басик, был категорически доволен.
Лично мои заморочки, но я физически страдаю, когда сплю на тонких синтепоновых подушках. Они моментально нагреваются, спать на них невозможно. Поэтому после первой ночи я уже гуглил, где можно купить нормальную подушку.
Добираться от кампуса до ШАДа было удобно, 15 минут на метро или час прогулки по набережной. К счастью никаких электричек, пересадок и прочего. Все в центре, все рядом.
В третьей и последней части расскажу про офис Яндекса и самый интересный этап обучения — работа в командах над проектами.
Часть 3
В первой части я рассказал про отбор, во второй — про процессы. Настало время рассказать про работу в командах, и ответить на вопросы, которые мне задали в инсте и в телеграм-канале.
Кратко
Проектный этап — самый интересный. Весь месяц мы пилили своей проект и в конце защищали его.
Распределение проектов
В конце августа менеджеры презентовали свои проекты и озвучили необходимые ресурсы для них, например, «Я делаю новую станцию Алисы для кухни с экраном, мне нужно 5 iOS разработчиков и 2 Backend-специалиста». Программисты дальше выбирали, что больше запало им в сердечко, и расставляли приоритеты. Если прям очень сильно хотелось сделать какой-то проект, то можно было сформировать полную команду и податься вместе на проект — укомплектованные команды были в приоритете.
Менеджеры рассказывали про свои проекты, а мы выбирали.
К моменту презентаций волна пандемии еще не спала, поэтому все было в онлайне. Чтобы хоть как-то скомпенсировать это, кураторы выдали каждому студенту по промокоду на Яндекс.Еду. В итоге я с важным видом ел пиццу, смотрел презентации менеджеров и приговаривал себе под нос «а вот это неплохой проект, может и пойду к вам».
Мне с другими iOS-ерами приглянулся проект переработки главной в мобильном приложении Кинопоиска. Мы сформировали полную команду и успешно забрали его себе.
Этими сформированными командами мы должны были за месяц собрать прототип проекта, протестировать и придти с ним на защиту. Как диплом в универе, но который пишут одновременно 15 человек.
С августа лекции практически закончились, остались только дополнительные занятия по желанию: у мобильных разработчиков можно было либо попрокачивать алгоритмы, либо прослушать пачку лекций про Flutter. Я уже работал с флаттером, поэтому выбрал алгосы (так их называли другие студенты-олимпиадники). На этих секциях мы на скорость в онлайне решали задачки на алгоритмы, после решения уходили в отдельную зум-комнату с куратором и разбирали выбранный вариант и способы, как можно было сделать лучше. В общем, крутая практическая секция с быстрым фидбэком, как я люблю.
Может показаться, что нагрузка в августе должна была снизиться. Но это вообще не так. Ведь пришло время ХАКАТОНОВ.
Хакатоны
Основная движуха проходила каждую субботу — мы командами приходили в офис Яндекса и с 11 утра до 7 вечера делали наши проекты. Под каждую команду выделялась одна-две переговорки, где мы должны были до конца дня подготовить что-то ощутимое, что можно было бы презентовать. К августу, к счастью, волна зараженных пошла вниз, да и бОльшая часть студентов сделали прививки, поэтому этот этап проходил уже в оффлайне (алилуйя).
По сути эти хакатоны — контрольные точки проекта, чтобы кураторы могли видеть, в каком темпе идут команды.
На каждом хакатоне к командам прикреплялись кураторы по каждому направлению. Например, каждую субботу у нашей команды были кураторы по iOS-разработке, Бэкэнду, Аналитике, Менеджменту и Дизайну. Полный набор!
Не скажу за все команды, но у нас работа строилась примерно так. В течение недели каждый что-то делал, а на хакатоне мы пытались подружить куски кода друг-друга так, чтобы ничего не сломалось. С переменным успехом, но к концу дня все мерж-конфликты мы решали.
Офис Яндекса
Доступ в офис Яндекса у нас был только по субботам на время хакатонов. Мне было любопытно, поэтому большую часть времени я тратил не на написание кода в хакатоны (да простит меня ленивого моя команда), а на шастание по этажам с любопытными глазами.
Вообще сам офис находится в бизнес-центре Красная Роза, в 1875 году это была шёлковая фабрика, которую открыл Клод-Мари Жиро, француз. Есть новости, что Яндекс планирует пойти по пути Эппла и съехать в собственно-построенный офис, так что этот пост актуален как минимум на лето 2021.
Из интересного — у каждого сотрудника в Яндексе есть свой стул Herman Miller Aeron (138 000₽ на момент написания этого поста). Его называют королем стульев искушённые айтишники. Я не искушённый, мне и икеевский Маркус нравится.
В офисах много зелени, стеллажей с настолками. Сотрудники вносят жизнь в свои рабочие места, заполняют их всякими гиковскими штучками.
Яндекс.Бар, который мы заслужили
Также в офисах есть несколько веранд и выходов на крыши, там всегда кто-то тусуется или работает, даже в дождь.
Защита проектов
В конце лета неумолимо надвигался дедлайн. Каждая команда готовила речь и презентацию с итогом работы за август, показывая промежуточные варианты на демо после хакатонов. С каждой субботой было видно, как растет уровень презентаций и питчинга. После демо все голосовали за лучшую презентацию, и самым крутым потом выдавали подарки. Теперь у меня есть кружка Яндекса.
Что-то правим в последний момент перед демо.
Когда до защиты оставалось пара дней, многие сидели до ночи в ШАДе и вылизывали свои презентации, по 200 раз прогоняли речь и полировали структуру сторителлинга. В моей команде от каждого направления выступал один участник, рассказывая про свою часть работы: менеджмент, аналитика, дизайн и коммуникации, iOS-разработка и бэкэнд.
Рецепт хорошей презентации: много репетиций, понятная структура выступающих, немного юмора и интересный проект. Взболтать, но не смешивать.
После защиты проекта наступает самая приятная часть — оффер в Яндекс выпускной.
Выпускной
Какой выпускной без ленточек выпускников?
После официальной части, где отметили каждую команду и рассказали нам о цифрах, которые я, увы, не могу тут написать из-за NDA, начался тусич.
Моя дримтим. Обычно я по другую сторону объектива, так что вот редкая фото со мной. Второй справа, в желтой кепке, не перепутайте.
Тусич был знатный — коктейль-бар, бургеры, сахарная вата, мороженое и бодрый кавер-бэнд. Немного видео и фото с атмосферой этого дня.
Ну шо по итогу?
Лето пролетело со скоростью билда на маке с M1 (это быстро), оставив послевкусие летнего лагеря. Не знаю как у других, но мне очень повезло с командой — крутые и открытые девчули и ребята. После обучения кто-то пошел на стажировку или работу в Яндекс, кто-то устроился в Тинькофф или Касперский, а кто-то уехал обратно в свои города, но таким же составом мы, увы, уже не увидимся. Чудесное было время, да.
Скорость флота определяется по скорости самого медленного корабля. А скорость обучения в группе равна темпу самого медленного в ней. В Академии Яндекса медлительности вообще нет, надо неистово шарашить, чтобы успевать проходить хотя бы базовую программу без задачек "со звездочками". А чтобы двигаться быстрее, надо шарашить в два раза быстрее. Но оно того стоит. Располагает и сама среда из студентов с горящими глазами и сердцами, отзывчивых кураторов и самого пространства кампуса Яндекса.
Если бы перед стартом работы в IT я мог попасть сюда, то это было бы отличной базой для старта. Лично для себя я вынес не теоретические или практические знания, а кое что более важное — атмосферу студенчества и кампусов Стэнфорда, крутую тусовку и время в окружении людей, которые будут развивать IT в СНГ в ближайшие годы.
В общем, если у вас будет возможность податься в Академию, то это надо делать однозначно.
Следующее лето, кстати, ждать вообще не обязательно. Вот по этой ссылке вся инфа по текущим стажировкам и вот по мобильной разработке. По всем вопросам можете написать напрямую в телегу мне или куратору Яндекса Марии.
(скажите что от Артема, может плюшку какую дадут)
Вопросики
Ну и, напоследок, ответы на вопросы из моей инсты.
Ответ
Процессы в порядке, а проблемные быстро исправлялись (в хостел, например, поставили второй холодильник, когда поняли что одного всем мало и даже навыки тетриса уже не помогают). Грейд для залета в Академию нужен точно не нулевый, в целом по тестовому все понятно — его надо сделать уверенно. По трудоустройству — все для этого и делается, у студентов есть свои плюшки: можно пройти некоторые собеседования заранее и с двумя попытками, да и в целом есть 3 месяца чтобы познакомиться с теми, кто тебя будет собеседовать и узнать про все подробнее. В общем, попасть на работу/стажировку после Академии проще раз так в 100500.
Ответ
Подробно про отбор написал в первой части на этой же странице, а по ресурсам вот необходимый минимум от самого Яндекса:
Ответ
Про интервью писал в телеграм-канале , но если кратко — у меня было собеседование про платформу (знание Swift и UI Kit) и на алгоритмы. Оба интервью в формате зум-колла с написанием кода в онлайн-редакторе и обсуждением того, что я пишу. Классика, короче.
Ответ
Никак 🙃
Ответ
Да, летний кампус, пары 2-3 раза в неделю, в выходные практические занятия. Последний месяц работа в группах над проектом. Ну и можно посмотреть весь лонгрид заново 🙂
Ответ
Кратко — делаем домашку, отправляем через Github Pull Request, получаем обратную связь. Потом в группе разбираем типовые ошибки и задаем вопросы.
Ответ
Студентов не кормили, но дали пропуск в кафе Яндекса. У сотрудников есть 800 руб. в день на бейдже, а мы ели за свои кровные. Но еда вкусная, да. Помимо классической еды типа горячего/супов/завтраков также были отличные роллы, пицца, хачапури и еще ой как много всего.
Ответ
SwiftUI, к сожалению, не рассматривали, т.к. в Яндексе он пока только заходит — чем больше пользователей, тем больше ограничений на свежие инструменты. Увы. Кратко:
- Вводная про платформу
- Swift, особенности языка и синтаксиса
- UIView, UIKit и в целом верстка разных сложных представлений
- Более глубокий разбор UIViewController-а
- Concurrency, работа с потоками
- Network, работа с сетью с нюансами (экспоненциальный retry, потоки и тд)
- Инструментарий (IDE, Toolchain, Cocoapods и тд)
- Persistence, хранение данных в приложении
- Архитектура (та самая лекция, после которой мы ушли переписывать проект по сути заново)
- Сборка, Тестирование, автотесты, CI/CD
Остались вопросы?
Это была третья и последняя часть про мои впечатления от обучения в Академии Яндекса. Я пишу менее объемные заметки в своем телеграм-канале, ну и ссылку на свой инстаграм тоже оставлю. Актуальное, чем я занимаюсь, всегда можно найти на моем сайте.
Есть что добавить или спросить? Пишите комменты ниже 👇