История разработчика Яндекс.Такси: из итальянской академии Apple в российский IT-гигант
Меня зовут Илья. Полтора года назад я поступил в академию Apple в Неаполе. Я писал о своём опыте учёбы большую статью на Т—Ж (в том числе с финансовыми деталями). Но с того момента, как я вернулся в Россию, прошло уже достаточно много времени, и я хочу рассказать, что получилось.
Если вы уже читали мою статью на Т—Ж, то первые две части этой статьи можно пропустить. Если нет, то в целом о поступлении и обучении можно почитать далее, а детальный опыт описан в том материале.
Поступление
Академия Apple в Италии — одна из образовательных инициатив компании Apple, созданная в партнёрстве с неаполитанским университетом Università degli Studi di Napoli Federico II.
Цель академии — познакомить студентов с iOS-разработкой, дизайном мобильных приложений, работой в команде и другими сферами, относящимися к созданию iOS-приложений.
Иметь техническое образование или опыт программирования для поступления необязательно. Академия платит стипендию — 7200 евро за год.
Для того, чтобы поступить в академию, нужно сдать очный экзамен в одном из городов: Мюнхене, Неаполе, Париже или Лондоне. Экзамену предшествует подготовка — академия присылает материалы для неё на специальном портале, которые, по моему опыту, полностью соответствуют вопросам в экзаменационной части.
Подготовка состоит из пяти частей: логика, основы программирования, основы Swift, дизайн и финальный тест. Все материалы были в форме статей, видео и коротких тестов. Результаты никак не оцениваются — всё на совести абитуриента.
По результатам экзамена отбираются 500 лучших абитуриентов, и с каждым проводится скайп-собеседование на достаточно отвлечённые темы — менторам академии важно узнать мотивацию потенциального студента, его ожидания и цели. И, конечно, уровень английского языка — он должен позволять свободно разговаривать на бытовые темы.
В конечном счёте остаются 372 абитуриента, которые набрали наибольший суммарный балл за экзамен и интервью. Есть смысл постараться оказаться выше в списке — если попасть в первые 5%, то стипендия будет выплачиваться несколько раз в течение года, иначе — одним платежом после окончания обучения.
Учёба в академии
Детали учебного процесса, к сожалению, защищены NDA — соглашением о неразглашении. По этой причине я опишу его в общих чертах, не вдаваясь в детали.
Программа основана на методике обучения, разработанной в Apple, которая называется Challenge-based learning. Суть заключается в «обучении через испытания» — никто не рассказывает, как решить задачу или с какой стороны за неё взяться. В лучшем случае студент получает материалы или поверхностные знания о том, что может пригодиться в решении задачи. Всё остальное остаётся на его усмотрение, и способы решения приходится изобретать самому.
Вся работа с непосредственно челленджами происходит в командах из 4-6 человек. Челленджем может быть задача создать приложение, решающее какую-то проблему: вы должны придумать саму идею, функциональность, дизайн приложения и, в конце концов, написать его код. На этом всё не заканчивается — в академии ещё заставляют учиться презентовать своё решение, поэтому развивать софт-скиллы и умение не сбегать со сцены в середине выступления тоже придётся.
Разнообразие задач в ходе работы над проектами заставляло изучать много новых тем и даже областей, которые до этого проходили мимо. Какие-то оказывались неинтересными, а какие-то, напротив, захватывали и давали возможность на практике получить ценные знания и опыт.
Несмотря на достаточно большие задачи и небольшие сроки на их выполнение, затраченное время никак не контролируется, а обязательные часы присутствия в академии ограничиваются четырьмя часами в день. Свободное от учёбы время можно проводить как угодно. Я предпочитал удалённо работать, заниматься самообучением, развивать навыки программирования.
Самообучения, как вы уже могли понять, много. Поэтому самодисциплина, мотивация, стремление учиться и понимание, чего вы хотите добиться после окончания академии, чрезвычайно важны. Год, проведённый в академии, в значительной степени стал для меня годом некоего самоопределения и понимания, чего я хочу от будущего. И к июню я понял, что по ряду причин хочу вернуться в Россию и устроиться разработчиком в крупную компанию.
Трудоустройство после учёбы
Академия не предоставляет прямой возможности устроиться в Apple, а также не имеет программ по какому-либо упрощённому трудоустройству в Италии. Однако в конце года проводится ивент, направленный на помощь выпускникам найти работу, — некая ярмарка вакансий. На 2 дня пространство академии заполняется стендами компаний, которые ищут ИТ-специалистов. Для студентов это шанс познакомиться, показать свои проекты и в ускоренном режиме пройти первичные скрининги. Большинство компаний — итальянские, но были и из других стран.
Поскольку к концу года я окончательно убедился, что хочу вернуться в Россию, то начал поиск за несколько месяцев до возвращения. HH и LinkedIn на некоторое время превратились в одни из самых часто посещаемых мной сайтов. За всё время я прошел около 20 собеседований в разные компании. Какие-то не понравились мне, иным не подошёл я.
Мне очень помогало детальное логирование пройденных собеседований и получаемых предложений. Запутаться в потоке информации, когда общаешься с разными командами из разных компаний очень просто, поэтому ведение записей впоследствии позволяет лучше готовиться к следующим интервью, детально сравнивать собеседования и предложения между собой и в конечном счёте сделать более взвешенный выбор в пользу той или иной компании.
Ещё за пару месяцев до окончания академии мне написал HR из Яндекса в LinkedIn. Я прошёл с ним технический скрининг, который состоял из примерно получаса базовых технических вопросов по платформе iOS и структурам данных. Например, порядок наследования распространённых классов библиотеки UIKit, методы лейаута UIView, типы коллекций и отличия между ними. Всего было около 10-15 вопросов, которые охватывали в основном известные библиотеки Cocoa, основные структуры данных и алгоритмы. Это был самый первый этап интервью.
За ним последовали более подробные технические секции про платформу iOS с алгоритмическими задачами и беседы на тему общих интересов, мотивации, опыта и отношения к различным технологиям. Собеседования оказались достаточно растянутыми во времени, что позволило в параллели общаться с рекрутментом других компаний и проходить интервью у них, а в конце сравнить полученные офферы. Здесь мне хочется посоветовать не стесняться подробнее спрашивать «эйчаров» об условиях.
В конечном счёте я получил оффер Яндекс.Такси и окончательно сделал свой выбор — меня сильно привлекла система оценки работы, роста, наличие опциона и понятное премирование за результаты.
Основной урок, который из всего этого удалось вынести, достаточно банален: нужно пробовать, не бояться того, что что-то не получится, и пробовать ещё и ещё. Может быть пять неудачных попыток, но шестая увенчается успехом.
Яндекс.Такси
В Яндекс.Такси входит несколько бизнесов – непосредственно Такси, Uber, Еда, Шеф, Лавка и даже беспилотные автомобили.
В сервисе заказа такси, куда я вышел на работу в прошлом году, два основных мобильных приложения: клиентское, через которое пользователи могут заказывать такси, грузоперевозку или еду, а также водительское — «Таксометр». С помощью последнего водители принимают заказы, управляют тарифами, следят за заработком и делают многое другое. Фактически, это приложение-комбайн — большой и единственный, помимо автомобиля, рабочий инструмент водителя.
Когда я пришёл, «Таксометр» существовал только в версии для Android. Целью нашей команды было сделать iOS-версию приложения.
Интересным оказалось то, что новый проект решено было делать кроссплатформенным, то есть с возможностью запускать один и тот же код и на целевой для нас iOS, и на Android. Это стало пробой технологии и экспериментом для компании. Для меня, как для нативного iOS-разработчика, привыкшего иметь дело со Swift, это было одновременно и слегка пугающе, и очень интересно.
Попытав удачу с React Native и разочаровавшись в нём, выбор пал на Flutter — довольно молодой мультиплатформенный фреймворк, за короткое время собравший вокруг себя немаленькое сообщество и обещающий стать серьёзной альтернативой нативной разработке.
Таким образом, работа принесла в жизнь ещё один челлендж — освоить новую технологию, перестроиться из одного сорта мобильного разработчика в другой и надеяться, что всё будет гладко. Спойлер: всё прошло гладко. Я вместе с командой в восторге от Flutter’а — разработка с ним идёт до сих пор очень быстро и успешно. Сейчас новый «Таксометр» догоняет Android-собрата по функциональности, успешно работая при этом и на iOS, и на Android.
Мы делаем ставку на новую технологию и уверены, что кроссплатформенная разработка с Flutter’ом имеет большое будущее. Доклад на конференции про то, что и как мы делали, можно посмотреть по ссылке. Там подробности о выборе технологии и что из этого вышло. А если вы активно интересуетесь Flutter’ом или даже что-то уже на нём пишете, то вам может быть интересно послушать выпуск подкаста со мной и моим тимлидом. Или попробовать устроиться к нам на работу.
Заключение
Подводя итог, могу сказать, что академия того стоила. Это возможность провести год за границей бесплатно или с минимальными затрами (за счёт стипендии), набраться новых скиллов и познакомиться с интересными людьми. Если у вас есть мотивация учиться, делать что-то интересное и работать в крутой компании, то академия может послужить одним из этапов на пути к осуществлению этого плана.
Учитесь программированию, если ещё не начали. Это очень интересно, полезно и вполне подлежит освоению даже самостоятельно. Если есть какие-то вопросы, то с удовольствием отвечу на них в Telegram — @virnik.
Читать первым в Telegram-канале «Код Дурова»