Как мы делали Зимнюю Стажировку по iOS- и Android-разработке в Redmadrobot

Привет, Хабр! Пришло время отчитаться о второй стажировке для разработчиков, которую мы завершили в конце марта. Если в прошлый раз, летом, программа была ориентирована на ребят уровня intern и junior, то на этот раз мы взяли планку выше и собрали стажеров junior и middle. Было круто, но постараться пришлось всем, и нам, и (в особенности) стажерам :)

efd64fddfc1d48f7966c61e2705d38df.JPG
Superman firmach о файловой структуре проекта

Отбор


Система отбора хорошо зарекомендовала себя на прошлой стажировке, поэтому существенно мы ее не меняли: анкетирование на первом этапе и технический тест на втором. Нам поступило более двухсот заявок, 60 человек получили тестовые вопросы, в итоге была сформирована группа из 14 стажеров — 7 iOS, 7 Android. До конца дошли все, а 5 человек теперь работают в нашей команде.

Немного хардкора


В связи с тем, что слушатели были действительно подготовленные, мы провели серьезную чистку плана лекций и семинарских занятий. И в итоге получилось хардкорнее, чем в прошлый раз.
Занятия проходили в московском офисе Redmadrobot трижды в неделю: по вторникам — общие лекции для обеих платформ, а в четверг и пятницу отдельные семинары в iOS- и Android-группах, непосредственно связанные с темами общих лекцией. За 8 недель мы успели рассмотреть принципы проектирования, работу с базами данных, разработку фреймворков и библиотек, UX и UI, взаимодействие и коммуникацию в команде. Традиционно о простых и базовых вещах не говорили, а старались поделиться тем, что сложно или нельзя найти в интернете.

image
Артур Сахаров (mc_murphy), технический директор Redmadrobot
«От некоторых ребят были запросы в духе «А расскажите про реактивное программирование на Java и на Swift». Это сейчас модно, но мы решили ничего не рассказывать про React. Хочешь его изучить — иди в интернет, читай статьи. По этой же причине мы убрали лекции по Apple Watch — эту тему тоже при желании можно изучить с нуля самостоятельно. Мы сфокусировались на нашем собственном опыте, о котором могут рассказать только разработчики Redmadrobot. Безопасность, взлом приложений, как мы разрабатываем архитектуру, какие «грабли» могут быть при работе над интерфейсом и так далее».

a654fdd5d15642468e13443d1ed00a9d.JPG
Чай, пряники, iOS и Android

Реальный проект


Мы взяли официальное API нашего клиента, компании «АльфаСтрахование». Стажеры работали над различными сценариями и экранами в этом проекте, пользовались тем же самым сервером. То есть разработали пусть не очень большой, но все же кусочек абсолютно реального проекта, который был запущен в продакшн.

Работа над ошибками


image
Егор Тафланиди (BepTep), архитектор Redmadrobot
«В целом, что касается iOS, мы шире раскрыли те технологии, с которыми сами работаем в компании. Открыли собственные наработки — все библиотеки, которые касались как бизнес-логики, так и построения интерфейсов. Рассказали о best practices. В прошлый раз мы тоже это делали, но не настолько глубоко.»

841fc81a60ac4192ae8d5617a42de79d.JPG
Это архитектурный дизайн, детка

Мы постарались принять во внимание фидбэк, который получили от ребят на прошлой стажировке. Основные претензии тогда касались домашних заданий: многочасовых проверок в индивидуальном порядке и того, что сами задания (их было 7 разных) не всегда напрямую коррелировали с лекционным материалом. Во-первых, мы организовали проверку в группах. Например, в четверг в одной аудитории идет семинар у iOS, а в это время в другой аудитории проходит разбор домашнего задания у Android-группы, а в пятницу наоборот. И главное — теперь все задания у нас были увязаны в единый проект. Поэтому тот, кто по какой-то причине пропустил или недоработал в середине стажировки, наверстывал с трудом, а некоторые так и не успели доделать проект. На старте мы предупреждали, что для прохождения стажировки нужно быть готовым уделять подготовке 20–25 часов в неделю. Оказалось, к этому были готовы не все:)

image
Максим Ефимов (MaximEfimov), руководитель группы Android-разработки Redmadrobot
«Я бы сказал, что стажировка была более интенсивная. Мы давали более сложные задания в соответствии с уровнем подготовки ребят. Надо отдать им должное, многие работали буквально на износ, были даже такие, кто уволился с работы, чтобы успевать готовиться. Мы шире раскрыли вопросы безопасности, меньше уделяли времени дизайну и UI.»

Стажеры


Аудитория была активная и отзывчивая. Ребята практически с первых дней стажировки организовали общий чат в Telegram (а также отдельно по iOS и по Android), через который общались и оперативно решали возникавшие вопросы. Но были в этом и негативные моменты, например, списывание:) Когда кто-то один делал ошибку, те, у кого не было собственного твердого мнения, повторяли ее, предпочитая принять общественную точку зрения.

image
Нина Дмитриева, iOS-разработчик
«Стажировка очень понравилась, положительных моментов было намного больше, чем отрицательных. Если говорить честно — я была в восторге, получила все, что хотела.
Из общих лекций очень понравился блок про архитектурный дизайн. Многое из того, о чем шла речь, я уже знала, но лекции систематизировали имеющиеся знания и дополняли их новыми. Еще клевая лекция была по базам данных. Программисты часто пользуются базами данных, но обычно каким-то небольшим кусочком, и остального не знают. Нам прочитали большую лекцию, которая затрагивает все аспекты, даже разные клевые мелочи, о которых я не подозревала. Если бы раньше передо мной встала какая-то задача — например, геометрические индексы — я бы, наверное, писала что-то свое. Успели затронуть даже временную сложность структур: когда лучше массивы, когда словари и так далее. Был хороший семинар по безопасности: как защититься при связи с сервером, как защитить само приложение, чтобы к нему не подключились извне, не посмотрели данные или банально не скопировали пароли. И еще понравилось занятие по UI и верстке. Если говорить о минусах, то хотелось бы еще больше «хинтовых» вещей — например, как справиться с какими-нибудь багами Apple, например, в плане той же верстки. Когда сталкиваешься с чем-то подобным во время работы, порой приходится гуглить по полдня. В «Роботе» же ребята с основной массой таких вещей уже сталкивались, и этот опыт всегда очень ценный, так как мог бы сэкономить другим кучу времени. Единственное, что было не очень полезно — лекция про дизайн».

image
Сергей Зароченцев, Android-разработчик
«Понравились лекции по Android-безопасности, раньше никогда об этом не задумывался.
Здорово было, что в рамках стажировки мы работали не над кучей мелких проектов, а над одним большим. Это заставляло более внимательно относиться к архитектуре, расширению кода, рефакторингу.
Ребята часто рассказывали о реальном опыте, кроме того, можно было задавать вопросы и получать на них ответы.
Хотелось бы еще больше дополнительного времени на вопросы».

image
Владислав Шипугин, Android-разработчик
«Интересными и полезными в принципе были все лекции, хотя встречались, конечно, и кое-какие банальные вещи, известные любому хорошему программисту. Особенно я бы выделили лекции по архитектуре, по JMM для Android и по безопасности — об этом точно не каждый программист подумает, тем более начинающий. Обычно они откладываются на потом, либо вообще никогда не вспоминаются, а это вызывает большие проблемы в дальнейшей работе.
Приходилось уделять очень много времени выполнению домашних заданий, и это получалось не у всех. Некоторые не справлялись и просто забивали. Лично мне пришлось отложить в сторону институт и уволиться с работы, чтобы успешно завершить стажировку, о чем я не жалею — я же здесь! На проекте мы поковырялись и с базами данных, и с безопасностью, вплоть до стеганографии. Это было интересно»!

Что в итоге


Мы постарались, чтобы вторая стажировка стала лучше и интереснее первой. Максимальный акцент был сделан на передачу стажерам такого опыта, который они не смогли бы получить самостоятельно и изучить в открытых источниках. И на этот раз ребята на протяжении всей стажировки работали над самым что ни на есть настоящим боевым проектом. Как уже говорилось выше, некоторые хотели, чтобы мы уделяли больше внимания ответам на вопросы и разбору кода, поэтому самые старательные стажеры получили сертификаты на Code Review в Redmadrobot, а пятеро лучших усилили нашу команду. Ну и все мы поели пиццу :) Зимняя стажировка точно не последняя — следите за анонсами в блоге.
8a361a89fec44daeb71d22c707f25ff6.jpg

© Habrahabr.ru