Карьера iOS-разработчика: с чего начать и как развивать

Обновлено
Карьера iOS-разработчика: с чего начать и как развивать

На вопросы ПрофГида о профессии разработчика для iOS ответил Павел Плотников – iOS developer in Swift. Советы практика тем, кто хочет освоить профессию: чему учиться, как строить карьеру.

Содержание:
Павел Плотников
Senior iOS Engineer at BestDoctor

Чем занимается iOS-разработчик?

Я iOS-разработчик, разрабатываю мобильные приложения для операционной системы iOS от Apple. Работаю в большой команде, в которой есть еще дизайнеры, тестировщики, Backend-разработчики, Android-разработчики, TeamLead (руководитель технической команды) и владельцы продукта с аналитиками, которые определяют функциональность нашего приложения. iOS-разработчик участвует в создании приложения, начиная с обсуждения концептуальных идей и заканчивая непосредственно кодированием того, что задумано участниками команды.

Обсуждение концептуальных идей необходимо, чтобы владелец продукта или аналитики выяснили ограничения платформы и примерную оценку временных затрат на реализацию со стороны iOS-разработчика. В дальнейшем идея часто еще проходит разные стадии обсуждения (включая обсуждение дизайна) с различными улучшениями и компромиссами.

Но безусловно, главная работа – это непосредственно создание приложения: разработка интерфейса, архитектуры, взаимодействие с разработчиками других платформ – Android и Backend. В больших командах выстраиваются сложные процессы самой разработки. Например, часть процесса Code Review – это когда программисты проверяют код других программистов на предмет соблюдения стилей кодирования, договоренностей, общих архитектурных подходов. Наша цель не только просто разрабатывать приложение, но и улучшать его в качественном плане – начиная с общих архитектурных подходов и принципов и заканчивая тестированием. Постоянное улучшение приложения – это во многом постоянное улучшение процесса разработки. В маленьких командах некоторые этапы могут отсутствовать, и это нормально. iOS-разработчик вполне может работать и в одиночку, разрабатывая мобильное приложение. Но на мой взгляд, развиваться гораздо проще в команде.

После разработки частей приложения выпускается так называемый релиз, который отдельно еще раз тестируется и выкладывается в App Store. При этом важна синхронизация работы всей команды. Например, мы не можем выпустить новую версию приложения, если Backend для нас выпустит новую версию своих сервисов – API.

Профессия очень востребована, и я ощущаю на себе громадный спрос на iOS-разработчиков.

Как пришли в профессию и как развивалась карьера?

Больше 15 лет назад я закончил математико-механический факультет УрГУ (ныне УрФУ). В конце 4 курса нашел свою первую работу, связанную с SQL Server и 1С. Тогда я не выбирал конкретное направление в ИТ, а воспользовался первой предоставленной возможностью – откликнулся на объявление на моем факультете.

Потом я часто менял стеки разработки и компании. В 2016 году стал директором департамента разработки одного небольшого системного интегратора. Я понимал, что мне не очень интересна эта роль, и она была тупиковой для меня. Но самое главное – это очень стрессовая работа. Еще когда двигался по менеджерскому пути, я осознавал, что хочу вернуться в разработку, но кругом была одна Enterprise-разработка, которой трудно было вдохновиться. И все-таки осенью 2016-го я уволился и решил поменять карьеру.

Из сферы ИТ меня на тот момент привлекала мобильная разработка, изучением которой я занимался всю зиму после увольнения. Читал статьи, документацию, обучающие материалы, смотрел ролики.

На поиски первой работы iOS-разработчика у меня ушло около полутора месяцев, и я уже начал отчаиваться и редактировал свое менеджерское резюме. В итоге первую должность разработчика я получил весной 2017 года «Альфе», и я очень благодарен той моей первой мобильной команде. Я получил огромный опыт, который мне позволил двигаться дальше.

Потом был «Сбер», который по масштабам не сравнится ни с одним другим работодателем в России. Я пришел на новый проект и на тот момент был первым iOS-разработчиком. Меня сразу отправили в командировку в Apple. Я до сих пор не уверен, что я могу рассказывать об этой поездке, но впечатления были потрясающие. Это была командировка мечты, которая позволила прикоснутся к культуре Apple и пообщаться с ребятами оттуда. Обстановка в Apple была полна вдохновения: все выглядит примерно так же, как в презентациях Apple при представлении новых iPhone. Возникло ощущение некой идеологии, где в центре всех процессов стоят высокие ценности – клиент, экология, удобство. «Сбер» мне тоже очень нравился, это компания с гигантскими возможностями в любом направлении. Туда приходят классные специалисты с опытом в других крупных компаниях типа «Яндекса» или Mail.ru.

Ни в одном проекте, в котором я работал, у меня не было мотивации покинуть компанию из-за каких-то негативных историй, моя исключительная мотивация была – дальнейшее развитие и новые возможности.

Сейчас я работаю в стартапе. На своем пути от команды к команде в моей новой карьере iOS-разработчика я не замечаю принципиальных отличий в процессах или ролях. И в крупных компаниях, и в стартапах принципы разработки примерно похожи, отличается только масштаб приложенных ресурсов. Я планирую дальше углублять свою экспертизу в мобильной разработке, поскольку я чувствую, что я на правильном пути и мне комфортно работать с этими технологиями.

Какие 10–15 лет назад были входы в мобильную разработку, а какие сейчас?

Вход поменялся за это время. 10–15 лет назад не было сформировавшегося рынка труда в мобильной разработке – индустрия только зарождалась. Не было полного понимания, как это будет работать. Операционные системы для мобильных устройств также были в зачаточном состоянии, и в первое время для iOS даже нельзя было писать свои приложения. Сейчас трудно найти человека, который не спит со смартфоном «под подушкой», и в России сотни продуктовых команд, в каждой из которых от нескольких человек до нескольких сотен только iOS-разработчиков.

10–15 лет назад не было iOS-разработки как профессии, и вход в специальность был на уровне «уметь программировать». Нельзя было найти опытного программиста, потому что еще не было индустрии. Информации и проработанных знаний о мобильной разработке было значительно меньше, чем сейчас. Сейчас же есть абсолютно все – книги, конференции, ролики на YouTube, курсы. Сейчас минимальная планка – знания платформы и языка. Мы живем во времена, когда полезной информации так много, что это не может быть поводом не заниматься интересными вам вещами, чтобы двигаться вперед.

Сейчас стать iOS-разработчиком легче или сложнее, чем раньше?

С развитием обучающих видео- и онлайн-платформ стало гораздо больше возможностей для входа в профессию. Даже с точки зрения обмена опытом сейчас гораздо больше материалов на тему входа в ИТ, чем 10–15 лет назад. Да и рынок труда стал гораздо шире. С развитием мобильной индустрии многие компании стали придерживаться стратегии Mobile First – когда новые возможности продукта сначала выводят в мобильном приложении и уже потом, например, в web или offline-точки продаж. Поэтому спрос на мобильных разработчиков огромен, что дает зеленый коридор для целеустремленных людей, намеренных войти в профессию. Многие крупные работодатели в сфере ИТ сейчас имеют свои программы обучения с последующим трудоустройством. Сейчас гораздо больше возможностей зацепиться за мобильную разработку. Но одновременно с этим растет и планка разработки: появляются новые концепции, архитектурные подходы, принципы разработки, развиваются интерфейсы.

Однако требования к Junior-позициям, как правило, не сильно растут, поэтому я бы в целом сказал, что вход в профессию значительно упростился за счет изменившегося информационного окружения. Но чтобы оставаться в ИТ, нужно постоянно двигаться вперед. Вход в ИТ остается на том же уровне, но это только начало бесконечного обучения.

Если пришлось бы начинать заново, повторили бы свой путь в iOS-разработчики или выстроили бы траекторию как-то по-другому?

Если бы я сейчас решил стать iOS-разработчиком, я бы подошел стратегически к планированию профессиональной жизни. За свою карьеру я метался из технологии в технологию, это не было запланировано, это все были ситуативные движения без какой-то определенной цели. Я работал с 1C, базами данных, ГИС и другими технологиями и платформами. Я ценю этот широкий опыт в ИТ, но я бы сейчас действовал по-другому.

1. Прежде всего я бы прислушался к себе, чтобы понять, с чем мне комфортнее работать, определил бы ситуацию на рынке труда. Например, мне всегда было интереснее разрабатывать софт, которым я сам мог бы пользоваться. После долгих лет работы в Enterprise-разработке я ценю возможность делать то, что близко к конечному пользователю. У других людей могут быть свои комфортные зоны. Например, сейчас популярна тема с инвестициями – в ИТ есть свои особенности, связанные с большими нагрузками или криптовалютами. Или большая область, связанная с Data Science. Почему это важно? Потому что в ИТ есть история с выгоранием. Нужно постоянно иметь интерес к работе и развитию. Его очень легко потерять, если заниматься неинтересным делом.

2. Пошел бы на курсы по мобильной разработке, если бы у меня не было опыта в ИТ. Там со всеми знакомился бы, чтобы обмениваться опытом входа в профессию с такими же, как я. Безусловно, я бы не ограничивался курсами.

3. Параллельно впитывал бы все, что дает информационная среда: окружил бы себя всем из мира мобильной разработки – подписался бы в твиттере на самых крутых спикеров, в YouTube – на обучающие каналы; купил бы рекомендованные книги и так далее. Я бы не позволил определять мое будущее только одним курсом. Курсы стали бы хорошим остовом для наращивания мышц моих знаний.

4. Пошел бы работать в мобильную разработку как можно раньше. Боль при прохождении первых собеседований со временем становится ценным опытом и знаниями, для прохождения последующих интервью.

5. Постарался бы попасть в профессиональную команду. Первую работу, как правило, не выбираешь – это может быть работа и без команды. Но дальше я бы искал пути попасть в команду. Такая работа значительно ускоряет получение новых знаний и умений.

Павел, спасибо, за советы, надеемся, они помогут разобраться читателям «ПрофГида» в особенностях профессии и построить карьеру iOS-разработчика.