Как мы впервые делали стажировку по iOS и Android-разработке в Redmadrobot
В мае мы писали, что открываем набор на стажировку для iOS и Android-разработчиков. Опыт был для нас необычный, новый и интересный.
Отбор
С нашей стороны подход был такой: со стажерами мы общаемся не как со студентами, а как с компетентными коллегами, вместе с которыми предстоит выработать подход к решению ряда проблем. Программу составляли исходя из того же: ребята, которые пришли к нам стажироваться, уже освоили азы и классику, а нашей задачей было насытить их знаниями по проектированию и архитектурному дизайну для мобильных платформ и поделиться своим практическим опытом — то есть тем, что сложно найти в книгах или в интернете.
С самого начала мы продумали систему отбора, анкетирование на первом этапе и технический тест на втором, чтобы составить представление о бэкграунде кандидатов. За десять дней приема заявок нам написали более четырехсот человек, сто из них получили технический тест. В итоге к участию в стажировке были приглашены десять человек, а до конца дошли восемь.
Основы основ от mc_murphy
Проектирование и архитектурный дизайн, iOS и Android
Стажировка стартовала в июле и шла восемь недель, непосредственно учебе, лекциям, семинарам, практическим заданиям и их разбору, из этих восьми было посвящено шесть. Мы сразу решили, что будем делать общую стажировку и для тех, кто хочет разрабатывать под Android, и для тех, кто намерен специализироваться на iOS. Почему? Одна из основных тем, которую мы хотели донести до участников — это проектирование. Базовые принципы архитектурного дизайна приложений не зависят от выбора платформы, хотя для iOS и Android, кончено, существуют отдельные паттерны.
Хороший специалист должен владеть базовым набором навыков и знаний в области проектирования и архитектурного дизайна, плюс к этому разбираться в технологиях конкретной платформы — Obective C, Swift, специфические фреймворки, Java и так далее. Ну и, конечно, мы изначально против узкого подхода в духе “если ты разрабатываешь приложения для iPhone, то кроме iOS-технологий ничего не должен знать” :) Поэтому порядка 50% лекций в рамках стажировки были общими для всех стажеров: принципы проектирования, код с позиции количества информации, шаблоны проектирования, чистота кода.
BepTep о том что ждет тех, кто станет разработчиком
Разделение на платформы и проекты
И хотя изначально все участники стажировки определились с профильной платформой, посещение занятий по каждой из них не было ограничено. Все желающие могли слушать и лекции по Android, и лекции по iOS, как и общие лекции — и практически все этой возможностью пользовались. В качестве учебного проекта было решено писать клиент под Instagram, чтобы ребята сразу же могли опробовать теоретические знания на практике.
Антон Подеречин, iOS-разработчик
“До этого я работал в iOS, но занимался немного другим — делал игры, где совершенно другие фреймворки. У нас в iOS-потоке были огромные, чудовищные домашние задания, и у меня все выходные уходили на их выполнение, так как я параллельно заканчивал учебу. И я точно знаю, что не один такой из потока. Понравились лекции по архитектуре и проект — клиент под Instagram. В принципе там было все, что есть в больших клиентах. Затронули сетевое взаимодействие, UI и вообще попробовали все основные моменты на маленьком прототипе. Даже делали кастомный виджет, переключалку с интерфейсом, с отображением и переходами между экранами. Эта стажировка оказалась тем, что мне нужно.”
fountainhead о Apple Watch в золотом корпусе разработке под Apple Watch
Сложности
Куда же без них. Как уже было сказано, опыт стажировки для нас был первым и, конечно, не все получилось идеально. Не всегда удавалось верно оценить время, которое придется затратить на ту или иную активность: оказалось, что проверка домашних заданий и фидбэк по ним требуют намного больше времени, чем мы изначально заложили. Проверка д/з проходила в форме длительных индивидуальных консультаций. Часто получалось так, что стажеры слушали разбор заданий друг друга.
Артем Малыхин, Android-разработчик
“Некоторые лекции были действительно верхнеуровневыми, но это компенсировалось хардкорными практическими заданиями, которые нам задавали на дом. Потом мы разбирали их вместе с менторами в индивидуальном порядке. В это время нам давали действительно полезные практические советы. Понравились лекции про структуру проектов (эти знания пригодились, когда я уже устроился на работу) и лекции по безопасности. Из минусов — хотелось бы побольше практики.”
Часть вопросов на усвоение лекционного материала мы помещали в необязательную часть домашнего задания. И, как оказалось, не все были готовы к тому, что их будут спрашивать :) Если человек знает, что ему предстоит отвечать пройденный материал, он походит к делу с иной ответственностью — на удивление оказалось, что это работает даже с теми, кто изначально мотивирован на учебу. Опросы — это, с одной стороны, форма контроля, с другой — индикатор для самого студента, который помогает ему понять, какую тему он усвоил не до конца, и что ему надо повторить. В итоге от этого выигрывают и стажеры, и преподаватели.
MaximEfimov рассказывает о безопасности в Android
Что в итоге
Программирование — дисциплина молодая и академически преподается мало где, а сочетание академических знаний и актуального практического опыта вообще редкость. Этой стажировкой мы попытались закрыть ту самую нишу на стыке академического и практического.
В России, конечно, хватает технических талантов и чемпионов по спортивному программированию, но программист, который специализируется на промышленной разработке ПО — это не только и не столько тот, кто умеет отлично решать нестандартные задачи. Не менее важную роль играет способность работать в команде и находить компромиссы. И это мы тоже старались показать.
Конечно, наш курс был скорее верхнеуровневым — только проектированию люди учатся годами, а мы постарались упаковать самые важные знания в два месяца. Нашей задачей было сделать стажировку максимально интересной и практически полезной для всех участников, и думаем, с этой задачей мы справились. Каждая из затронутых тем нашла своего слушателя, и мы приоткрыли свою кухню — процессы мобильной разработки на промышленном уровне.
Мы обещали, что лучшие стажеры получат приглашение работать у нас в Redmadrobot, так оно и произошло — наша команда пополнилась четырьмя новыми разработчиками. Ну и, конечно, надеемся, что кто-то из тех, кто будет применять полученные на стажировке знания в других местах, в один прекрасный день придет к нам и расскажет, как запускает в NASA космические корабли через мобильное приложение :) Ну а пока у нас в планах еще одна стажировка — так что stay tuned.
Все хорошее заканчивается пиццей