- Профессия: мобильный разработчик
- Кто это?
- Где нужен?
- Средняя заработная плата
- Базовые требования к профессионалу
- Важные личные качества
- Необходимость знания иностранных языков
- Где учиться
- Лучшие книги и средства обучения
- Будущее мобильного разработчика
- Мифы профессии
- Главный совет
- Профессия Android разработчика: есть ли у нее перспективы и где пройти обучение
- Что это за профессия
- Что нужно знать и уметь
- Топ-3 курса для Android разработчиков
- Уровень дохода разработчика
- Стоит ли сегодня идти в профессию
Профессия: мобильный разработчик
В 2010 году мой друг на день рождения попросил в подарок переводную книгу по разработке под Android. Необычных вещей в этом факте было две: книгу было не достать, а он работал самым простым госслужащим и имел гуманитарное управленческое образование. Я удивился, но книгу достал — привёз из поездки в Москву. Через два месяца после вручения подарка он сидел со мной в кафе и тыкал в экран мобильника, демонстрируя первое приложение, связанное с учётом товара для одной компании — свой первый заказ. Я работал инженером в телекоме и концептуально идею оценил, но не думал, что мобильная разработка будет всюду. Кстати, друг за приложение взял $300, заказчик отпахал на нём два года с лишним. Ну а друг упорно качал скиллы, развивал то самое приложение бесплатно и в итоге стал мобильным разработчиком в огромной компании.
Сегодня в мобильную разработку рвутся все: от инженеров до филологов. Им кажется, что они нашли золотую жилу и она вот-вот даст миллионные доходы. А между тем найти хорошего мобильного разработчика не так уж просто. Потому что хорошее приложение — это сложная архитектура, скрупулёзное проектирование и интенсивная работа над юзабилити. На коленке его не запилишь.
Кто это?
На первый взгляд кажется, что всё просто: мобильный разработчик — это тот, кто разрабатывает программы для мобильных устройств. Всё верно. Но большинство людей не из мира ИТ под мобильными устройствами подразумевают смартфоны и особо продвинутые — планшеты. Но мы-то с вами знаем, что мобильные устройства — это не только наши любимые гаджеты, носимая электроника, но и различные научные аппараты, компоненты исследовательских систем на базе гаджетов, компоненты интернета вещей. Это огромный мир приспособлений, который будет становиться всё больше и больше — мобильные приложения востребованы обычными пользователями, бизнесом, медициной, наукой и т.д. Поэтому профессия мобильного разработчика — это однозначно профессия будущего, во всяком случае ближайших 10-15 лет это точно.
Где нужен?
Сегодня мобильные разработчики востребованы везде: корпоративные приложения имеют мобильные версии, СМИ имеют мобильные приложения, бизнес активно переводит свои программы лояльности в приложения (у кого из нас нет приложений разного ритейла — от Ленты и Ашана до РивГош и Л’Этуаль) и т.д. Мобильное приложение — гарантия того, что ты будешь оставаться в руках своего клиента, и почти все компании это понимают. Поэтому мобильные разработчики нужны абсолютно везде. Перечислю наиболее перспективные отрасли, на которые можно ориентироваться сегодняшним студентам, желающим выйти в мир мобильной разработки (и вообще всем).
- Мобильные игры и развлекательные приложения — огромная интересная индустрия, готовая принять разработчиков любого уровня. Мир погряз в играх, поэтому есть спрос на разработку приложений для любого возраста: от самых крошечных детей до взрослых дядек, гоняющих любимые игры на мобильнике.
- Развлекательно-образовательные приложения, такие как приложения для изучения языков, книг, музыки, путешествий (они скоро вернутся в новом качестве и это будет захватывающе интересно), тренировок и т.д.
- Банковские приложения — те мобильные банки, которыми мы пользуемся, это сложнейшие нагруженные системы с особой архитектурой, и они нуждаются в грамотных разработчиках. Да, стажёром в такую продуктовую команду попасть почти нереально, но для миддлов и сеньоров открываются классные перспективы.
- Приложения электронной коммерции — почти все магазины доступны в виде приложений, и это колоссальная инфраструктура с высокой ёмкостью рынка труда. Думаю, что эта сфера будет развиваться ещё глубже.
- Научные и исследовательские приложения. На одном из гугловских DevFest ребята из компании Mera рассказывали о научном проекте по изучению кораллов, в основе которого лежит узел с планшетом на андроиде. Так вот, такие проекты — совершенно особенный тип мобильной разработки для тех, кто хочет быть ближе к научному миру.
Вообще, думается, что пандемия COVID-19 изменит мир и сформируется новый долгосрочный спрос на приложения для удалённого всего на свете, доставок для каждого ресторана и кафе, обучения, спорта и проч. Это повлечёт рост спроса на мобильную разработку и на мобильных разработчиков. Так что, кроме объективной динамики рынка, вмешался форс-мажор, который для мобильной разработки принесёт определённые бонусы.
Средняя заработная плата
Уровень специалиста | Средняя заработная плата |
---|---|
Стажёр (Intern) | 26 272 руб. |
Младший (Junior) | 59 061 руб. |
Средний (Middle) | 114 908 руб. |
Старший (Senior) | 187 925 руб. |
Ведущий (Lead) | 200 915 руб. |
Как видите, особенностью рынка мобильной разработки является большой шаг от стажёра к джуну и от джуна к миддлу: между этими уровнями заработная плата растёт практически в два раза. Важная особенность: заработная плата растёт только с вместе с ростом квалификации разработчика.
Базовые требования к профессионалу
Стек мобильной разработки активно меняется, поэтому, выбирая мобильную разработку, вы должны быть готовы поглощать новую информацию, изучать мануалы в огромных количествах и постоянно перестраиваться. Основные мобильные платформы постоянно обновляют стек и развивают его. По объёму изучаемой литературы для мобильного разработчика эту профессию можно сравнить, например, с профессией терапевта. Проще говоря, без постоянного чтения и освоения новых принципов работы с кодом вы будете говнокодером.
Конкретные требования по стеку определяются задачами компании, тем, что она использовала ранее и даже средним возрастом разработчиков команды. Но в целом можно обозначить несколько ключевых требований, которые скорее всего будут в желаемой вакансии.
- Android: знание Android SDK, Java, Kotlin, Scala (в меньшей степени), Rest/SOAP, различные API, SQLite и т.д.
- iOS: Objective-C, С#, Swift, знание Apple Development Guidelines
Для обеих платформ:
- знание структур и алгоритмов
- знание принципов ООП (к которому и относится Java, Objective-C, Swift)
- понимание принципов дизайна и проектирования мобильных приложений
- знание сетевых протоколов
- знание SQL
- навыки работы с App Store и Google Play
- навыки работы с многопоточностью (всё чаще)
- Flutter (бешено растёт популярность)
Кроме этого, в мобильной разработке много стандартов и вам нужно их знать или хотя бы знать, где их найти и как ими пользоваться в реальной практической работе.
Стажёр (Intern) | Младший (Junior) | Средний (Middle) | Старший (Senior) | Ведущий (Lead) |
|
|
|
|
|
Топ-5 востребованных технологий у специалистов по данным «Хабр Карьеры», 2 полугодие 2019 года
Кроме технических знаний, необходимо понимать основы той сферы, в которой вы собираетесь работать — так программисту будет проще понять потребности и проблемы пользователей мобильного приложения. Как минимум, это может быть базовый учебник по профилю компании, как максимум — тесное общение с коммерческой командой и тестированием и постоянное исследование профиля клиента.
Важные личные качества
Мобильный разработчик — это стрессовая, нагруженная работа, связанная с постоянным общением, с нервами, которые непременно настигнут вас, когда вы начнёте читать отзывы пользователей на работу своего приложения 😉 Поэтому будущий мобильный разработчик должен обнаружить у себя несколько важных качеств.
- Профессиональный разработчик должен прежде всего понимать пользователя, разбираться в принципах проектирования интерфейсов, интуитивно понимать UI/UX.
- Командная работа — важный залог создания полезного и удобного приложения: придётся взаимодействовать с тестировщиками, коммерческой службой, разработчиками веба и десктопа, службой поддержки и т.д. Эта работа скорее для экстравертов.
- Аналитический склад ума — мобильный разработчик должен обязательно анализировать множество факторов, учитывать их в разработке.
- Внимание к деталям и высокая работоспособность обеспечат отсутствие багов в приложении и высокую скорость разработки, которая в мобильных приложениях крайне важна из-за интенсивных изменений предпочтений в устройствах, обновлений операционных систем и т.д.
- Готовность к непрерывному обучению — гайдлайны постоянно меняются, Google и Apple проводят интересные и полезные мероприятия, поэтому важно успевать «схватить» всю информацию на лету и успеть втащить её в продакшен.
В одной из предыдущих серий «Профессии» я писал о том, что программист фронтенда и бэкенда должен быть внимателен к новинкам разработки, новым языкам программирования и стекам технологий, но не тащить всё новое в прод бездумно. В мобильной разработке ситуация другая: важно не только узнать о новой технологии, важно её быстро и грамотно использовать, чтобы опередить конкурентные приложения и соответствовать изменениям платформы или, например, дизайна и логики работы мобильных устройств.
Необходимость знания иностранных языков
Вот некоторые ключевые ресурсы для мобильных разработчиков.
- Android: Новостной портал Android Android Weekly
- Android: Официальное руководство по разработке для Андроид
- Android: Словарь терминов от Google
- Android: Блог разработчиков
- Android: Хороший список гайдлайнов по андроид-разработке
- iOS: Официальный сайт для разработчиков компании Apple
- iOS: Сообщество iOS-разработчиков на Reddit
Большинство из них на английском языке и без них у вас, как без рук, ничего не получится. Поэтому для разработчика мобильных приложений знание английского языка настоящий must have. К слову, все конференции Google и Apple также проводятся на английском языке. Какой уровень освоения вы выберете — ваше решение, но в целом для уверенного чтения, слушания и понимания однородной технической информации нужен минимум Upper-Intermediate.
Где учиться
В отличие от программирования другого профиля, мобильная разработка в вузах представлена крайне слабо, поэтому это, так сказать, дополнительная квалификация для разработчика, которую нужно осваивать самостоятельно.
- Реально самостоятельно — с помощью книг, курсов и многочисленных обучающих видео. Для этого вам нужно выбрать какую-то идею для своего мобильного приложения и начать разрабатывать именно его, а не писать код ради кода. Если у вас будут требования к проекту, обучение будет более структурированным.
- На корпоративных курсах — бесплатных и платных курсах компаний, где практики максимально быстро вас научат создавать базовые решения. Они вам передадут супер выжимку из знаний и профессионального мастерства. Совет: выбирайте оффлайновый курс и желательно долгосрочный, за 2 недели у вас мало что выйдет.
- На онлайн-курсах — в принципе, я не встречал откровенно отвратительного курса по мобильной разработке, порог входа действительно невысок. Но помните: слушать мало, нужно кодить и работать над непонятными моментами самостоятельно.
- У репетитора. Пока это не самый популярный способ освоения новой специальности, особенно у взрослых работающих людей. Однако нет ничего зазорного в том, чтобы обратиться к частному тьютору и качественно освоить азы нужной вам специальности.
Лучшие книги и средства обучения
Очень сложно рассказать про книги, потому что всё зависит от того, что, на каком языке и для какой платформы вы собрались разрабатывать. Поиском можно найти хорошие подборки — например, на сайте Skillbox (эта и другие ссылки в статье не являются рекламой, просто хорошие материалы).
Будущее мобильного разработчика
Профессия мобильного разработчика особенная во всём. Так, у неё очень низкий порог входа и в то же время огромный шаг от джуна к миддлу. Хороший мобильный разработчик отличается от обычного прокачанными навыками, разносторонними знаниями в смежных с разработкой сферах и т.д. И действительно, нередко случается так, что этот путь занимает больше двух лет кропотливой работы.
Будущее у мобильных разработчиков пока весьма уверенное: сомневаюсь, что мир откажется от мобильных смартфонов и планшетов в ближайшее время, не говоря уже о росте разных видов носимой электроники и IoT. Поэтому развитие программистов этого типа будет выглядеть как пошаговый переход junior — middle — senior — lead. Поэтому скорее важно выбрать отрасль и компанию, в которой этот путь будет пройден.
Из ребят, которым внезапно наскучила мобильная разработка, получаются хорошие фуллстек разработчики для веба или даже энтерпрайз-программисты. В общем, особых ограничений в карьере действительно нет.
Мифы профессии
Главный совет
Не идите в мобильную разработку за модой или весёлыми рабочими буднями. Это довольно тяжёлый труд, связанный с непрерывным самообразованием и необходимостью делать регулярные обновления. Да, в мобильной разработке интереснее, потому что один разработчик занимается не просто каким-то фрагментом, а большим блоком, модулем или даже почти всем приложением. Интересно бодаться со сторами и попадать под санкции, когда твоё приложение удаляют, интересно работать с конечным пользователем. Выбирайте эту специальность только в том случае, если вы готовы к труду и профессиональной работе. Некачественных мобильных приложений и так хватает 🙂
Источник
Профессия Android разработчика: есть ли у нее перспективы и где пройти обучение
Всем привет, уважаемые читатели блога AFlife.ru! Сфера IT сегодня развивается бешеными темпами, появляются новые направления старых профессий. И одним из них является Android разработчик. Про операционную систему Андроид слышал каждый, ведь именно она используется на подавляющем большинстве мобильных устройств. А значит, программисты специализирующиеся в этом направлении, были, есть и будут очень востребованы. Сегодня мы расскажем о том, как стать Android разработчиком и что для этого нужно.
Что это за профессия
Несмотря на востребованность продуктов Apple, функционирующих на операционной системе iOS, все же большая часть мобильных устройств в мире работают на базе Android. На сегодняшний день эта цифра составляет порядка 86%. При таком раскладе закономерно высок спрос на разработчиков, и, казалось бы, рынок вакансий должны наводнить юные и талантливые специалисты. Но по факту потребность в хороших разработчиках так и остается неудовлетворенной, потому что предложение просто не в состоянии покрыть его, особенно в странах СНГ.
Возможно, это связано с большим объемом выполняемых работ. Ведь мобильные устройства – это не только смартфоны, как считают многие, а еще и планшеты, электронные книги, умные часы, навигаторы, различные аппараты, компоненты устройств, которые могут функционировать без привязки к определенному месту. И для каждого из перечисленных гаджетов необходимо разработать программное обеспечение, адаптированные приложения, сервисы, игры и т.д.
К тому же, сегодня любая организация, начиная с банков и заканчивая образовательными учреждениями, стремится создать свое собственное приложение. Практически у каждого человека в телефоне есть клиент-банк, «Лента» или «Пятерочка», сервис доставки еды, куча игр и музыкальные приложения и т.д. Без многих из них мы уже не представляем своей жизни.
А теперь посмотрим, кто такой программист Андроид и в чем заключаются его обязанности. Разработчик Android осуществляет разработку, создание и тестирование программных продуктов, приложений и т. д. для всех мобильных устройств, функционирующих на базе этой системы. В крупных организациях, где созданием продукта занимается целая команда, каждый специалист выполняет определенную работу. В небольшой компании разработчик – это многофункциональный специалист, который берет на себя и анализ целевой аудитории, и дизайн-проект, и сам процесс разработки.
Трудовые обязанности разработчика Android обычно выглядят так:
- Анализ целевой аудитории, выявление наиболее перспективных направлений и востребованных предложений.
- Разработка идеи, концепции программного продукта, функционала, дизайна.
- Анализ технического задания, пользовательских интерфейсов и прототипов. Выявление спорных моментов, обсуждение их или предложение своего варианта, корректировка задания.
- Генерация программного кода приложения.
- Создание интерфейса и оптимизация ресурсов для функционирования программы.
- Проведение первичного тестирования.
- Выявление багов и неточностей в работе, внесение корректировок, повторная проверка.
- Выгрузка функционирующего продукта в Google Play или на специальные ресурсы.
- Если продукт не соответствует требованиям платформы, внесение корректировок и повторная выгрузка.
- Анализ реакции пользователей на приложение и его работу.
- Разработка обновлений с учетом изменений требований целевой аудитории.
- Составление технической документации с детальным описанием процессов разработки и улучшения.
Для написания приложения на базе Андроид используются два ведущих языка программирования: Java и Kotlin. Язык Джава является одним из самых старейших, при этом активно используется и в наши дни: именно ему стоит уделить внимание в первую очередь.
Особенностью профессии программиста Android является возможность работать как на себя, так и на работодателя. Грамотный специалист может самостоятельно разрабатывать приложения, заливать их в магазин, и в последствии монетизировать. Можно выделить несколько наиболее актуальных направлений, где можно реализовать себя:
- Мобильные игры, приложения для развлечения. Игры просто заполонили мир: в них играют и малые дети, и взрослые. Поэтому разработка мобильных игрушек для разных целевых аудиторий очень актуальна и востребована.
- Образовательные приложения: читалки на телефон, познавательные программы и т.д. Все, что поможет скоротать время с пользой для мозгов.
- Приложения коммерческих организаций. Различные бонусные программы, сервисы крупных сетей («Спортмастер», «Лента», «Пятерочка» и пр.), интернет-магазины.
- Банковские сервисы. Сюда относятся мобильные приложения банков (например, Сбербанк Онлайн, ВТБ Онлайн). Это направление очень нуждается в грамотных и высококвалифицированных разработчиках, понимающих особенности работы интернет-банкинга .
- Научные приложения, используемые при проведении исследований, для грамотных расчетов.
Эти направления считаются одними из самых перспективных, и именно здесь особенно востребованы профессиональные программисты. На самом деле, разработчиков на рынке труда достаточно. Для большинства людей разработка – это настоящая золотая жила, и они хотят попасть сюда любыми путями. И нередко, освоив определенные навыки и получив работу, они останавливаются на этом. А чтобы стать топовым специалистом с шестизначным окладом, нужно учиться каждый день. Дефицит грамотных разработчиков при таком большом объеме работ – благоприятная среда для профессионального роста и обучения.
Что нужно знать и уметь
Как и везде, в сфере программирования, чтобы реализоваться как квалифицированный специалист, необходимо обладать определенными навыками. Разработчику Android следует обратить внимание на следующие умения:
- знать основы и принципы программирования, его базовые понятия;
- владеть языками программирования Java и Kotlin, знать их особенности и уметь писать код;
- знать принципы и особенности работы операционной системы Андроид;
- уметь работать в программе Android Studio (этот сервис специально создан для разработки приложений для операционной системы Android);
- владеть основами объектно-ориентированного программирования;
- иметь навыки работы с фреймворками и различными библиотеками готовых решений;
- знать и уметь использовать языки разметки HTML, CSS, XML;
- уметь оформлять всю необходимую техническую документацию;
- выполнять требования, предъявляемые Google Play и другими магазинами к разрабатываемым приложениям;
- понимать принципы работы протоколов передачи данных HTTP, REST;
- знать основы дизайна, разработки пользовательских интерфейсов, владеть инструментами работы с ними;
- уметь составлять грамотное и понятное техзадание, взаимодействовать с другими участниками команды/заказчиками.
В качестве основы для обучения азам Андроид программирования подойдет образование с технико-математическим уклоном. Ну и, конечно, нужны огромное желание учиться и готовность потратить годы на детальное освоение практической части этой профессии.
Теоретические основы специальности хорошо преподают на профильных курсах. Найти их можно как в интернете, так и в оффлайн образовательных учреждениях. После окончания учебы для начала можно брать в работу небольшие и легкие проекты, постепенно набирая опыт и оттачивая мастерство.
Топ-3 курса для Android разработчиков
- Профессия Android-разработчик от SkillBox;
- Факультет Android-разработки от GeekBrains;
- Профессия Android-разработчик от SkillFactory.
Кроме того, чтобы стать лучшим из лучших, нужно обладать или воспитывать в себе следующие личностные качества:
- Коммуникабельность. Разработчику часто приходится общаться с заказчиками – значит, нужно уметь понимать их и доступным языком доводить до них свое видение задачи. Также программисты, работающие в команде, должны правильно выстраивать коммуникации с другими ее участниками.
- Внимательность и перфекционизм. Внимание к отдельным мелочам и дотошное отношение к решению задачи позволит избежать мелких ошибок и дальнейших корректировок.
- Аналитический склад ума. Все-таки, математика и программирование подразумевают умение анализировать, находить причинно-следственные связи.
- Любознательность, желание учиться и совершенствовать свои навыки.
Уровень дохода разработчика
Такой солидный список трудовых обязанностей, необходимых знаний, навыков и личных качеств, сам по себе предполагает хорошую зарплату. Поэтому вполне логично предположить, что доход у разработчиков Андроид весьма солидный.
Средние показатели заработной платы для начинающих специалистов по России варьируются в пределах до 50 тыс. руб. Программисты с опытом работы от 2 и более лет получают от 50 до 100 тыс. руб., если говорить о регионах, и 90-160 тыс. руб. в Москве. Топовые разработчики могут зарабатывать 200-250 тыс. руб.
Размер зарплаты зависит от уровня профессионализма программиста, его практических навыков, формы занятости и региона, в котором он работает. В мегаполисах (Москва, Питер, Краснодар, Екатеринбург) зарплата значительно выше, чем на периферии. Да и вакансии в крупных городах появляются чаще. Хорошо, что можно устроиться на удаленную работу, быть фрилансером и не привязываться к месту своего жительства.
Стоит ли сегодня идти в профессию
Чтобы ответить на этот вопрос, нужно подумать, какие плюсы и минусы есть у данной специальности.
К преимуществам мы можем отнести:
- Высокий спрос на программистов. На рынке труда стабильно можно найти вакансии с хорошими условиями работы для разработчиков.
- Достойная зарплата, карьерные перспективы.
- Минимальный порог для входа в профессию: не обязательно иметь высшее профильное образование в сфере IT. Работодатели смотрят на реальные умения, а не на диплом. Поэтому Андроид разработчику проще начать с нуля, чем, например, программисту IOS.
- Возможность работать на себя, реализуя собственные проекты.
- Можно выбирать удобный режим работы: удаленно, в штате компании или на фрилансе.
Конечно, и без недостатков не обойтись:
- Требования заказчиков часто бывают завышенными. Поэтому программистам приходится тщательно анализировать техзадание и обсуждать все спорные моменты «на берегу».
- Даже готовый проект нужно постоянно дорабатывать, расширять функционал, подстраиваться под изменения.
- Необходимо хорошо знать английский язык, чтобы составлять и читать техническую документацию.
Андроид-разработчик – это перспективная и очень интересная работа. Начиная свой трудовой путь в маленькой компании, специалист может совершенствовать свои навыки, расширять кругозор и стать многофункциональным программистом. И хотя от малознающих людей можно услышать, что разработчики Android – это «недопрограммисты», не стоить этому верить. Мы уже увидели, что их рабочий функционал довольно обширный и сложный. Но грамотный специалист всегда добьется успеха и сможет занять достойное место.
Если вам понравилась наша статья, то делитесь ею в социальных сетях и обязательно подписывайтесь на обновления блога, чтобы не пропустить много чего интересного!
Источник