Artyom Space

artyom space

айтишник что-то пописывает

Академия Яндекса изнутри

Недавно я рассказал про то, что все лето провожу в Академии Яндекса, качаю свои скиллы по мобильной разработке под 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% времени

По этим бейджам мы могли проходить в очень ограниченное количество зон, например, в Школу Анализа Данных. Это двухгодичный курс Яндекса с выдачей диплома о профессиональной переподготовке, где учат, как ни странно, Анализу Данных. Летом у них каникулы, поэтому на наши бейджи любезно открыли доступы ко всем переговоркам.

В ШАДе, в принципе, было все, чтобы спокойно работать или делать домашки:

Процесс обучения

В сумме у нас было около 20 лекций, поначалу они проходили в офисе Яндекса, но потом из-за новой волны COVID-19 всех увели на удаленочку. Лекции переехали в зум для всех непривитых, а я на это время вернулся в Самару. К сожалению, большая часть лекций для меня прошла в онлайне, и это не круто — понимаю, почему изначально Яндекс не рассматривали удаленный онлайн-формат. После оффлайн лекций мы могли пойти с одногруппниками в ШАД, что-то обсуждать или делать домашки, и это комьюнити давало ту самую дополнительную ценность.

Лекции проходили по вечерам понедельника и среды, обычно с 19:00 и дальше как повезет. Бывало и до 23:00 мучали спикеров вопросами. По итогу лекции нам высылали ее запись для пересмотра если нужно (а было нужно!) и домашку для закрепления материала. Домашки были сложными, мне с полутора годами коммерческой разработки под iOS и 8-летним бэкграундом веб-разработки было моментами тяжко.

Иногда процесс решения домашки был примерно таким:

Задания надо было сдавать через pull request в свой закрытый репозиторий на github (не-программисты наверное охренели от этого предложения сейчас). Дедлайн всегда единый — воскресенье, 23:59. Начиная с 20:00 в чатах традиционно открывался поток вопросов по домашке и достигал своего пика ровненько к 23:59. Делаем в последний момент, как настоящие студенты! С понедельника по пятницу наши домашки проверяли, давали фидбэк, и каждую пятницу мы с лектором разбирали верное решение и частые проблемы.

По структуре теории все плюс-минус стандартно, с упором на фундамент и базу. Примерный план был такой:

  1. Вводная про платформу
  2. Swift, особенности языка и синтаксиса
  3. UIView, UIKit и в целом верстка разных сложных представлений
  4. Более глубокий разбор UIViewController-а
  5. Concurrency, работа с потоками
  6. Network, работа с сетью с нюансами (экспоненциальный retry, потоки и тд)
  7. Инструментарий (IDE, Toolchain, Cocoapods и тд)
  8. Persistence, хранение данных в приложении
  9. Архитектура (та самая лекция, после которой мы ушли переписывать проект по сути заново)
  10. Сборка, Тестирование, автотесты, 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 в СНГ в ближайшие годы.

В общем, если у вас будет возможность податься в Академию, то это надо делать однозначно.

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

(скажите что от Артема, может плюшку какую дадут)

Вопросики

Ну и, напоследок, ответы на вопросы из моей инсты.

@AL.POP.JR
Процессы. Исследования. Грейды. Возможность трудоустройства.

Ответ
Процессы в порядке, а проблемные быстро исправлялись (в хостел, например, поставили второй холодильник, когда поняли что одного всем мало и даже навыки тетриса уже не помогают). Грейд для залета в Академию нужен точно не нулевый, в целом по тестовому все понятно — его надо сделать уверенно. По трудоустройству — все для этого и делается, у студентов есть свои плюшки: можно пройти некоторые собеседования заранее и с двумя попытками, да и в целом есть 3 месяца чтобы познакомиться с теми, кто тебя будет собеседовать и узнать про все подробнее. В общем, попасть на работу/стажировку после Академии проще раз так в 100500.

@BEKANAZAVR
Не могли бы дать советы по поступлению в школу, или ресурсы где все это есть?

Ответ
Подробно про отбор написал в первой части на этой же странице, а по ресурсам вот необходимый минимум от самого Яндекса:

@BEKANAZAVR
Можно ли почитать про процесс интервью?

Ответ
Про интервью писал в телеграм-канале , но если кратко — у меня было собеседование про платформу (знание Swift и UI Kit) и на алгоритмы. Оба интервью в формате зум-колла с написанием кода в онлайн-редакторе и обсуждением того, что я пишу. Классика, короче.

@ALINKA_IVANOVA_CH
Как ты все успеваешь?

Ответ
Никак 🙃

@MITCHELL_X13
Это некий кампус с ежедневными парами? Или нечто другое?

Ответ
Да, летний кампус, пары 2-3 раза в неделю, в выходные практические занятия. Последний месяц работа в группах над проектом. Ну и можно посмотреть весь лонгрид заново 🙂

@ANTONEZZIO
Как устроена обратная связь? И сам процесс обучения.

Ответ
Кратко — делаем домашку, отправляем через Github Pull Request, получаем обратную связь. Потом в группе разбираем типовые ошибки и задаем вопросы.

@ARRIVACHKA
Вкусно кормят?

Ответ
Студентов не кормили, но дали пропуск в кафе Яндекса. У сотрудников есть 800 руб. в день на бейдже, а мы ели за свои кровные. Но еда вкусная, да. Помимо классической еды типа горячего/супов/завтраков также были отличные роллы, пицца, хачапури и еще ой как много всего.

@KUZNETSOV_G
Новые навыки в Swift? Насколько глубоко Swift UI рассматривают?

Ответ
SwiftUI, к сожалению, не рассматривали, т.к. в Яндексе он пока только заходит — чем больше пользователей, тем больше ограничений на свежие инструменты. Увы. Кратко:

  1. Вводная про платформу
  2. Swift, особенности языка и синтаксиса
  3. UIView, UIKit и в целом верстка разных сложных представлений
  4. Более глубокий разбор UIViewController-а
  5. Concurrency, работа с потоками
  6. Network, работа с сетью с нюансами (экспоненциальный retry, потоки и тд)
  7. Инструментарий (IDE, Toolchain, Cocoapods и тд)
  8. Persistence, хранение данных в приложении
  9. Архитектура (та самая лекция, после которой мы ушли переписывать проект по сути заново)
  10. Сборка, Тестирование, автотесты, CI/CD

Остались вопросы?

Это была третья и последняя часть про мои впечатления от обучения в Академии Яндекса. Я пишу менее объемные заметки в своем телеграм-канале, ну и ссылку на свой инстаграм тоже оставлю. Актуальное, чем я занимаюсь, всегда можно найти на моем сайте.

Есть что добавить или спросить? Пишите комменты ниже 👇

Есть и другие посты