Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Павел Плотников
iOS-разработчик в BestDoctor. Преподаватель в OTUS
Расскажите вкратце про вашу карьеру в IT.
- Мой путь в ИТ почти 20 лет, начинал с SQL/1С/эникейщика, потом немного .net, немного Java, ГИС, потом несколько лет менеджерская история в разработке, которую я прервал в 2016 году. До этого времени мой путь был скорее хаотичным и не спланированным. Далее я осознанно начал подходить к планированию своей карьеры в ИТ, когда захотел вернуться в разработку. Чтобы возвращение в разработку не сменилось страхами связанными с выгоранием в Enterprise, я захотел заняться мобильной разработкой, которая максимально близка к пользователям, что лично меня сильно вдохновляет. Кроме того, невероятно заряжает на работу возможность использовать то, что ты делаешь. У меня уже были пара устройств от Apple, и мне, субъективно, интерфейс iOS нравился больше Android. Чтобы начать что-то пробовать я купил старый MacBook Air "на максималках", уехал на зимовку на Филиппины, чтобы отойти от менеджерского стресса, и начал разбираться "как там все устроено в этом XCode". Уже почти 5 лет я работаю как iOS-разработчик в лучших банках (Альфа, Сбер) и классном стартапе (БестДоктор) с разными небольшими тимлидскими историями, которые я осознанно стараюсь избегать, чтобы быть сфокусированным на разработке.
Какие особенности современной iOS-разработки вы могли бы выделить? Почему вы выбрали именно это направление в своей профессиональной деятельности?
- Современная iOS-разработка это прежде всего SwiftUI. Пока эта технология разгоняется (нужно чтобы старые устройства были вытеснены с рынка), но в течении нескольких лет она займет доминирующее положение в простых интерфейсах и приложениях. На текущий момент SwiftUI достаточно изменчив в разных версиях iOS и использовать его в больших проектах может быть рискованным. С помощью SwiftUI Apple сделала универсальной разработку под все свои платформы, по сути остался только web. Не исключаю, что применение SwiftUI для web может стать одним из следующих шагов. Кроме того, очевидно, что разработка сейчас идет в функциональном направлении (Combine). Думаю эта часть разработки займет какую-то нишу и не будет всеобъемлющей. Сам язык Swift также неплохо развивается, чего только стоит механизм async/await, который получил поддержку для iOS 13.0, что достаточно сильно удивило разработчиков. Также развиваются библиотеки связанные с машинным обучением и дополненной реальностью, но это уже более специализированные темы.
Что вы можете рассказать о медицинских технологиях от Apple в контексте iOS-разработки?
- Apple предлагает фреймворки, которые помогают разрабатывать приложения медицинской направленности. Есть три основных фреймворка - HealthKit, CareKit и ResearchKit. HealthKit предлагает защищенное хранилище для доступа к медицинским данным пользователя. Пользователь может отдельно управлять правами к своим данным для приложений и приложения используют единое хранилище для всех своих данных относящихся к здоровью. CareKit предлагает компоненты для создания приложений для учета и отслеживания лечения ("таблеточные" приложения). ResearchKit предназначен для создания приложений для проведения исследований, основанных на опросах пользователей. Фреймворк включает в себя компоненты для создания опросов и различных тестов основанных на датчиках, доступных в устройствах. CareKit и ResearchKit это Open Source фреймворки и любой разработчик может принять участие в их развитии. Кроме того, Apple поддерживает стандарт обмена медицинскими данными FHIR придуманный чтобы разные клиники, врачи, страховые и другие субъекты медицинского рынка могли обмениваться данными о здоровье пациента с помощью одного протокола. На западных рынках Apple может напрямую договаривается с медицинскими организациями и пользователь может получать свои медицинские карты напрямую в свой iPhone на основе протокола FHIR, эти данные хранятся в HealthKit и другие приложения к ним также могут получить доступ. На других рынках эта возможность пока ограничена из-за регуляторных особенностей в каждой стране относительно защиты медицинских данных.
Что бы вы порекомендовали начинающим? Опишите ваше видение входа в IT как в общем смысле, так и в качестве iOS-разработчика.
- Самый простой путь - слушать маму с детства. Хорошо учится, надевать шапку, поступить в институт на факультет компьютерной направленности. Если вы достаточно целеустремленны, то даже при минимальных усилиях при стандартном пути рано или поздно вы сами того не осознав окажитесь в ИТ. Но, как правило, жизнь более сложная штука и стандартный путь не для всех. Самый лучший вариант на старте - иметь пример или окружение которое этому способствует. Например знакомый который уже "зашел" и сможет вам рассказать или даже помочь на вашем пути. Хорошо, если это также такие-же люди как вы - ищущие возможности и готовые обмениваться опытом. Я считаю, что окружение имеет большое влияние на успех, и это окружение нужно обязательно найти - реальное или виртуальное. У всех свои способы получения информации и это нормально, что некоторые могут учиться только с помощью чтения документации, другие с роликами на YouTube. Но конечно, в комплексе, самый простой вариант - пойти на курсы, где будет возможность и найти окружение, и получить материалы от практиков, и практиковать то, что изучаете. Также важно найти как можно раньше команду, где вы сможете быстрее развиваться. Найти первую работу в iOS безусловно очень важно, но если это будет команда, где уже есть опытные iOS-разработчики и высокая инженерная культура - это самый лучший вариант.
Почему вы преподаете?
- Спустя некоторое время работы в ИТ начинают появляться истории более высокого порядка, которые не связаны с заработком. Например, это может быть желание делится чем-то, или желание самому развивать свои софт-навыки связанные с преподаванием. Мир преподавания строится по иному, нежели каждодневная практическая работа. Но при проведении занятий часто возникают незапланированные моменты связанные со своей практикой, и это необычное чувство когда ты можешь сформулировать что-то абсолютно новое на основе своей практики в текущем моменте занятия. Также преподавание структурирует знания не только слушателей, но и преподавателей. Часто перед занятием перетряхиваешь свой опыт так, что возникает другое понимание или появляются собственные инсайты. Еще несколько лет назад слова "преподаватель" и "Павел Плотников" были антонимами. Но чтобы идти дальше в своем развитии, нужно в том числе выходить из комфортной зоны. Кроме того, подготовка к занятиям заставляет закрывать все малейшие белые пятна относящиеся к теме. Это дает невероятный буст в собственных знаниях. Также очень приятно находится в таком крутом сообществе преподавателей, которых ты раньше видел на митапах и конференциях с классными докладами, а теперь им пишешь в чате "сори, завтра не могу тебя заменить". Исходя из моего опыта - преподавание, даже если это не история связанная с призванием, но при осознанном подходе, - дает новые возможности в своем развитии.
Что вы можете сказать про курс «iOS Developer. Professional»?
- Курс по-максимуму отражает актуальные нововведения предлагаемые Apple. Но программа курса отражает лишь некий остов, который формально покрывает великое множество тем. А основная ценность курса именно в практической направленности исходя из опыта коллег. Именно вопросы и сайд-темы, которые возникают в процессе занятий, по моему мнению, как раз и представляют основную ценность. Основную тему всегда можно узнать из документации или других формальных материалов, а все что вокруг этого с практическим опытом не формализуется через статьи и часто передается только с живым общением или прямым взаимодействием со слушателями.
Какой совет вы могли бы дать будущим студентам OTUS?
- Будь я студентом, я бы активно общался с сокурсниками. Думаю сообщество людей с похожими целями это самое классное что может быть. Кроме того, если ты что-то услышал, но не пощупал и не закрепил, то эти данные быстро забываются. Поэтому - домашка. Плюс нужно максимально быстро стараться применять то, что проходишь в своей работе. Твой успех прохождения курса это твоя целеустремленность. Курс даст тебе сертификат об обучении, но он не вытащит тебя за уши в крутые компании.
В крутые компании тебя вытащат твои мечты и усердие. И занятия в данном случае это асфальтовая дорога по которой ты можешь быстро двигаться, а можешь присесть на обочине и забыть куда ты шел в ожидании ковра-самолета, которого не существует. А существует реальность, где нужно постоянно двигаться вперед и развиваться.
Узнать подробнее о курсе «iOS Developer. Professional».