Путь стажера: MacPaw
[Путь стажера — постоянная рубрика, в которой начинающие IT-специалисты делятся своим опытом стажировок как в иностранных, так и в украинских компаниях. Если вы хотите рассказать свою историю, пишите на Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. ]
Привет, меня зовут Никита. Я студент Киевского политехнического института, учусь на 4 курсе ФИВТа. Среди моих интересов — программирование, новые технологии, а также спорт (плавание и бокс). На стажировку в MacPaw я подавался два раза и сегодня хочу поделиться своим опытом, разочарованиями и выводами, которые сделал за два последних года.
На момент подачи заявки на стажировку в 2016 году у меня не было коммерческого опыта в iOS разработке. Но около полугода до этого я самостоятельно изучал стек технологий Cocoa Touch, языки Swift и Objective-C, пытаясь написать несложные приложения. К тому же получил неплохие базовые знания в университете: математика, алгоритмы, параллельное программирование и опыт написания объемных работ на C++ и Java.
О стажировке в MacPaw я узнал через социальные сети — увидел в паблике «IT KPI» пост о летних стажировках в Киеве. Тогда я буквально горел идеей получить любой опыт работы, поэтому и решил податься на направление Cocoa Development. Не буду скрывать, в первую очередь я ожидал получить знания и перенять опыт менторов, чтобы стать более востребованным разработчиком на рынке. Я также хотел узнать, как все-таки создать целостный продукт и увидеть, как это все работает вживую. У меня было свободное лето, так что я решил, почему бы не провести его в продуктовой компании, познакомиться с новыми людьми и сделать что-то крутое.
Отбор
Отбор на MacPaw Summer Internship 2016 состоял из двух этапов:
1. Заполнение онлайн-формы регистрации (общие вопросы, вопросы на логику, мотивацию и тестовое задание по выбранному направлению). Важно было подать заявку до установленной даты (тогда это было 9 мая).
Позже я узнал, что качество выполнения профильного задания оценивали менторы, а HR-специалист — ответы на вопросы по мотивации. Тех, кто набрал высший общий балл, приглашали на второй этап.
Тестовое задание на первый взгляд казалось достаточно легким — нужно было рассказать о себе, создав программу любой сложности.
Но на тот момент я плохо разбирался в стеке iOS и macOS технологий, которые от меня требовались. Поэтому на разработку пришлось потратить две недели. К тому же это был конец семестра, так что я был очень загружен в университете. Когда мне позвонили и пригласили на второй этап отбора, я понял, что усилия были потрачены не зря.
2. Собеседование с ментором и HR-специалистом в офисе компании.
Собеседование назначили на среду, 25 мая, на 11:45. Встреча длилась около часа и делилась на две части — беседа с двумя менторами по технической части и разговор с HR.
Мы начали с базовых технических вопросов (алгоритмы сортировки, обход дерева, общее понимание ООП и применение паттернов), далее углубились в стек технологий, обсуждая особенности Objective-C и принципы работы с Cocoa Touch. После перешли к задаче на алгоритмическое мышление и только потом начали рассматривать мою программу. Ребята задавали вопросы, как я могу улучшить тот код, который написал. Я ответил где-то на половину вопросов менторов, но с трудом понимал, как можно улучшить приложение, так как это была одна из первых моих программ на таком стеке технологий. Сейчас я смотрю на нее и понимаю, что код очень далек от идеала.
Разговор с HR оказался тяжелее, чем собеседование с разработчиками. Тогда я до конца не осознавал, какое значение для меня может иметь работа в компании, а гнался исключительно за опытом, поэтому и не подготовился как следует. Мне задавали простые, понятные и очевидные вопросы: «Какие есть продукты в компании? Почему я хочу здесь работать? Чего я для себя хочу?». Также достаточно подробно спрашивали о том, как я работаю в команде и прочее. Хотели понять мои сильные и слабые стороны, чтобы я больше о себе рассказал.
Разочарование
Вечером накануне 1 июня мне пришло сообщение о том, что я не прошел на стажировку. Тогда я, конечно, был очень разочарован, потому что считал, что собеседование прошло удачно и в целом я хорошо себя показал. Но сейчас я понимаю, что тогда конкурировал с огромным количеством желающих и подготовке к такому собеседованию следовало бы уделить куда больше времени, чем несколько дней.
Год между стажировками 2016 / 2017
Началось лето, я находился в состоянии фрустрации, поскольку уже успел настроить себе планов, что я буду работать в MacPaw. Но мне в любом случае нужно было набраться опыта и я решил все же найти работу. Мне представилась возможность заняться аутсорс-проектом. Работал удаленно, в команде с back-end разработчиком из США. Мы разрабатывали программное обеспечение для кассового аппарата на планшете — iPad. Это был серьезный опыт, который включал работу с запутанной логикой и всевозможными сторонними девайсами: от кардридеров до принтера для чеков. Это помогло мне стать более уверенным в своей области и немного подтянуть английский.
Осенью сбылась моя мечта — я стал участником программы образовательного обмена Erasmus и уехал учиться в Люксембург. Некоторое время параллельно работал из Люксембурга, учился, путешествовал. Более того, в университете можно было выбирать себе курсы по душе, так что я воспользовался этой возможностью, чтобы вырасти как разработчик. Остановился на курсах «Веб-разработка», «Базы данных», «Операционные системы» и английский. После возвращения в Украину я еще около трех месяцев занимался разработкой на старой работе.
Весной мне снова попалось на глаза объявление о стажировке в MacPaw, но уже 2017 года. Глаза загорелись и я принял решение податься еще раз. Я понимал, что отбор будет еще жестче и не очень надеялся пройти на стажировку. Но все же решил попробовать.
Тестовое задание на этот раз стало более четким и сложным. Требовалось построить маршрут метро любого города мира. И также с помощью UI выстроить навигацию по станциям. При этом нельзя было использовать никакие open-source библиотеки. Нужно было с нуля писать графы, взаимодействие с UI, обрисовывать карты. На 10 дней я ушел в разработку. На майских праздниках, пока все мои друзья и знакомые гуляли, я занимался тестовым заданием. Но мне повезло, что я был знаком с одним из стажеров прошлого года, который помог мне советами по собеседованию и написанию тестового задания. За что ему больше спасибо :)
В этот раз я решил серьезно подготовиться и к разговору с HR. Нашел вопросы в интернете и постарался ответить на них прежде всего для себя. После такой подготовки я был уверен в своих силах и надеялся на хороший исход собеседования.
Действительно, оно было очень легким. Технические вопросы оказались даже проще, чем в прошлом году. Я отвечал без затруднений и просил ментора, чтобы он задал еще какой-нибудь вопрос. Мне хотелось показать, что я многое знаю. Разговор с HR был коротким, без неудобных вопросов. Так что после собеседования я чувствовал себя прекрасно и вскоре получил приглашение на стажировку.
Стажировка 2017
В первый рабочий день я познакомился в офисе с другими
Вся команда в сборе. Стажеры MacPaw Summer Internship 2017
Наш ментор провел для нас экскурсию по офису, рассказал, чем он будет нам помогать во время стажировки, объяснил, чем мы будем заниматься, какая у нас основная задача.
Мне повезло, и меня сразу направили в команду Setapp. Это новый продукт компании, над которым работает более 50 человек. Из дополнительных плюсов — проект написан на двух языках: Swift и Objective-C, что позволяло получить больше опыта. Также команда в то время выбирала новую методологию гибкой разработки, и я мог увидеть проблемы в коммуникациях, принять участие в их решении и ощутить на себе все прелести Kanban. Работать мне нужно было по 6 часов в день, но, конечно, за это время я не удовлетворял свой интерес и часто засиживался на полный рабочий день.
Мой обычный день на стажировке выглядел примерно так. Я приходил, обсуждал планы с командой. Потом приступал к решению своей задачи, изучал код, копался в документации. Стоит отметить, что для меня никто не выделял отдельных тасок, придуманных заданий, как я этого ожидал. Задачу нужно было взять из приоритета беклога. Далее, после тщательного просмотра моими менторами и прохождения всех кругов тестирования, моя работа шла в релиз. Из примеров — поправить поведение кнопки, добавить логику для возможности тестирования, написать миграцию Core Data. Иногда я пытался решить задачу очень-очень прикольно, но мне говорили, что все решается проще. Или наоборот, что нужно было просто применить более common-practice решение, убрав костыли.
Также я ходил на встречи по продукту. Например, брейнштормы по решению определенной проблемы. Стажеры полностью участвовали в создании продукта, генерировании новых идей и в целом влияли на проект. После встречи я возвращался к созданию кода. Часто засиживался над интересными задачами. Вечером мы могли встретиться со стажерами либо пойти на ужин с командой. Были, конечно, дни намного веселее, а были и рутиннее.
Бенефиты
В первую очередь меня поразило то, как компания инвестирует в наше развитие. За время летней стажировки мы посетили огромное количество воркшопов внутри компании по Agile, по тому, как правильно составлять резюме, взаимодействовать с командой, очень много лекций и практикумов по программированию. Казалось бы, компании не выгодно тратить столько ресурсов на стажеров. Но она это делала, и лично для меня это было огромным толчком вверх.
Второе — это внимание к мелочам. Оно проявляется в производстве продуктов, предметах интерьера, отношению к людям. Такой подход не может оставить равнодушным.
В целом у нас, как стажеров, было очень мало ограничений. Мы занимались в спортзале, ходили на английский.
Мое рабочее место находилось прямо напротив MacPaw Museum, экспозиции винтажных компьютеров Mac
Финальный проект
Финальным заданием для всех стажеров было создать собственный общий продукт. Если ранее мы работали по разным направлениям со своими менторами, то в последние две недели мы занимались собственным проектом, результаты которого должны были представить перед всей компанией как результат стажировки. Это был первый в жизни хакатон. Нам даже выделили отдельную комнату, куда мы все вместе переехали.
Готовиться мы начали за два месяца, совмещая работу над проектом со своими текущими задачами. Мы были неопытными, но у нас было свое видение и свое понимание вещей. Не было никаких ограничений. Мы приходили, генерировали идеи, сразу решали, как нам лучше взаимодействовать.
По сути, мы разработали платформу-рейтинг спикеров на мероприятиях. Идея родилась после понимания наших собственных проблем и трех опросников, которые мы рассылали по офису и социальным сетям. Платформа помогает любителям ивентов сэкономить уйму времени, денег и нервов и ходить только на качественные мероприятия с проверенными докладчиками. Забегая вперед, хочу сказать, что на момент окончания стажировки 33 реальных спикера согласились разместить свои профили на нашей платформе.
В реализации возникали трудности. Когда делали прототип и модель монетизации, потратили кучу времени на споры, ссорились и мирились, иногда звали на помощь скрам-мастера.
Для реализации проекта нам нужны были дизайнер, front-end и back-end разработчики. Пришлось идти на существенные компромиссы: Win Dev ушел в разработку API, заменили веб-приложение на iOS, а задачи по дизайну взяла на себя стажер направления PR. Мы работали над проектом по
Оказалось, что разрабатывать свой продукт могут и люди без опыта, если у них есть желание и запал, и они могут добиться действительно хороших результатов.
Итогом стала презентация проекта для всей компании. После презентации ребята хвалили нас и желали продолжать работу.
Результат
Стажировка дала мне многое: знакомство с прекрасными людьми, членами команды, другими стажерами. У меня появилось понимание того, как разрабатывается продукт. Раньше я не думал, что маркетинг — это настолько важно. Сейчас понимаю, что это неотъемлемая часть создания продукта.
Я не ожидал, что меня также научат работать с людьми. В университете мы часть времени работали индивидуально, часть в командах, но у нас не было общей цели. На стажировке у нас была одна цель, и мы общими усилиями решали одну проблему.
Плюс, я прокачал свои технические навыки. Кодил с утра до ночи, занимался разработкой действительно классных и сложных штук при помощи менторов.
Лето закончилось, и я вернулся в реальный мир. В течение недели просто отходил после стажировки. Через пару недель меня пригласили сотрудничать с компанией на парт тайм в качестве Software Developer. Я рад продолжить свой путь в этой компании, она и сегодня дает мне очень многое. Я посещаю огромное количество образовательных программ и курсов, чувствую, что развиваюсь, что я в хорошем коллективе. Я делаю что-то полезное, качественное и могу этим гордиться.
Советы стажерам
Сделайте тестовое задание качественно. В первую очередь готовьтесь, показывайте код своей программы нескольким разным людям, своим друзьям. Доведите его до идеала. Можете даже написать тесты в своей программе, если это целесообразно.
Ответьте на ключевые вопросы HR для себя. Главное понять, что вы вообще ищете в этой стажировке и быть откровенным с самим собой. И, конечно, быть честным на собеседовании. Если вы что-то скроете, то стажировка не принесет пользы ни вам, ни компании.
Получайте удовольствие. Во время стажировки нужно брать максимально все, что вам предлагают. Используйте все, что пригодится для вашего опыта и дальнейшего развития. У вас есть такая возможность — почему бы ею не воспользоваться? Дедлайн заполнения заявки на MacPaw Summer Internship 2018 — 6 мая.