- Профессия: мобильный разработчик
- Кто это?
- Где нужен?
- Средняя заработная плата
- Базовые требования к профессионалу
- Важные личные качества
- Необходимость знания иностранных языков
- Где учиться
- Лучшие книги и средства обучения
- Будущее мобильного разработчика
- Мифы профессии
- Главный совет
- Android-разработчик: что умеет, сколько получает, как им стать
- Говорящие цифры
- Чем занимается Android-разработчик
- Инструменты Android-разработчика
- Среда Android Studio
- Языки разработки
- Где работают Android-программисты
- Сколько платят Android-разработчикам
- Карьерный рост и перспективы профессии
- Что должен знать будущий 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-разработчик: что умеет, сколько получает, как им стать
Большинство мобильных устройств в мире работают на Андроиде. Разбираемся, кто же делает для них приложения.
Говорящие цифры
На Android сегодня работает около двух миллиардов устройств — от смартфонов и планшетов до умных холодильников и бытовых роботов.
Система занимает первое место среди мобильных операционок. Она управляет 73% смартфонов в мире — это больше, чем у всех остальных ОС вместе взятых.
В первом квартале 2020 года в онлайн-магазине Google Play было два с половиной миллиона приложений, а уже в сентябре их число перевалило за три.
Но и этого мало. Людям нужны новые мессенджеры, службы для заказа еды и такси, банковские программы и, конечно, игры. На последние приходится около трети всех скачиваний.
Все эти приложения пишут и поддерживают андроид-разработчики. Профессия востребована. И работы хватает не только матёрым специалистам, но и новичкам.
Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.
Чем занимается Android-разработчик
Создаёт приложения и поддерживает их работу, — в частности:
- разрабатывает интерфейс, логику и внутреннюю структуру приложений;
- организует удобную навигацию между экранами;
- продумывает, как будет вести себя приложение, если поступил звонок или SMS;
- пишет код;
- оптимизирует приложение: чем меньше ресурсов оно потребляет при работе, тем дольше гаджет проживёт без подзарядки;
- обеспечивает безопасность: устраняет уязвимости и защищает данные пользователя. Это особо важно для банковских и финансовых программ;
- тестирует приложение на разных этапах разработки;
- создаёт внутреннюю документацию и мануал для пользователей;
- загружает готовый продукт в Google Play ;
- изучает пожелания пользователей и готовит обновления.
Эти обязанности обычно распределяются между членами команды. Например, за интерфейс и логику часто отвечают дизайнеры, но бывает и так, что всем занимается один программист.
Как он это делает?
Инструменты Android-разработчика
Началом массовой разработки под Android считается 2008 год. Тогда появился магазин приложений Android Market (в 2012 его переименовали в Google Play). Здесь разработчики выставляют свои приложения.
Сперва их создавали в среде Eclipse с установленным плагином ADT ( Android Development Tools ). Этот плагин страдал от брешей в безопасности. С конца 2016 года он больше не поддерживается.
Сегодня официальная среда разработки для Android — это Android Studio . Она появилась в 2013 году и здорово ускорила создание приложений.
Среда Android Studio
Это основной инструмент андроид-разработчика, бесплатный и совместимый со всеми операционными системами. Скачать Android Studio можно с официального сайта.
Среда позволяет разрабатывать приложения на любых компьютерах. Этим Google Android отличается от iOS (Apple хочет, чтобы разработчики покупали маки и кодили только на них).
C Android Studio разработчику даже не нужны собственные гаджеты на Android, ведь там есть быстрый многофункциональный эмулятор и шаблоны для многих устройств (смартфоны, планшеты, часы, смарт-приставки, телевизоры и так далее).
Полный список возможностей Android Studio с описанием каждой смотрите в официальном гайде.
Языки разработки
Под Android можно писать приложения почти на любом языке программирования: C/C++, Assembler, Fortran, Python, JavaScript. Однако есть языки, которые позволяют использовать все возможности мобильной операционной системы и получать моментальный доступ к новым функциям.
Это официально поддерживаемые языки. Для Android таковыми являются Java и Kotlin:
- Java — традиционный язык разработки. На нём написано большинство Android-приложений, в том числе онлайн-банки. Это хорошо развитый язык с множеством библиотек, модулей и готовых решений.
Кроме того, за языком стоит большое международное сообщество, и если у программиста возникает вопрос по Java, ему легче найти ответ.
- Kotlin — молодой язык программирования, который разработала питерская компания JetBrains.
Он полностью совместим с Java (джавишный код можно вызвать из Kotlin естественным способом, а котлиновский — использовать в Java без особых сложностей).
При этом код на Kotlin крайне лаконичен:
В 2019 Google объявила Kotlin приоритетным в андроид-разработке. Похоже, что произошло это из-за долгой судебной тяжбы с компанией Oracle — создателем Java. Oracle уже 10 лет пытается получить с Google несколько миллиардов за нарушение авторских прав. Суды ещё идут, но Google от греха подальше решила перейти на другой язык.
Kotlin удобнее пользоваться, он решает ряд проблем Java, и изучить его можно намного быстрее. А ещё он сразу входит в Android Studio. Так зачем нам учить Java, если уже есть Kotlin?!
Не всё так однозначно (пока что). Начинающему разработчику важно изучать оба языка, но упор делать всё-таки на Java. Почему?
- Сегодня Kotlin ещё недостаёт готовых решений. Документация языка неполная, поэтому поиск конкретного ответа иногда занимает кучу времени. Чтобы быстрее решить возникшую проблему или даже просто вникнуть во все нюансы документации, нужно знать Java.
- Kotlin активно развивается, разработчики исправляют его недостатки, аудитория языка неуклонно растёт. Новые приложения, особенно небольшие, пишутся на Kotlin. Однако большинство прежних написаны на Java. Их нужно кому-то поддерживать. К тому же многие компании отдают предпочтение Java как языку более развитому и предсказуемому.
- На мобильной разработке свет клином не сошёлся. Такие языки программирования, как Java, C/C++, Swift, очень похожи между собой — и изучение Java позволит быстрее разобраться в других, а вот Kotlin — нет.
Где работают Android-программисты
Во-первых, в студиях мобильной разработки, которые ведут несколько проектов одновременно.
Во-вторых, в компаниях, для которых мобильное приложение — часть бизнеса: это банки, интернет-магазины, СМИ, онлайн-сервисы. Шанс попасть в крупную компанию есть не только у опытных разработчиков, но и у новичков.
Кроме того, всегда можно найти клиентов на фрилансе или придумать собственное приложение и зарабатывать на нём. Например, популярнейший FBReader разработал в одиночку преподаватель математики из Петербурга Николай Пульцин:
Сколько платят Android-разработчикам
Разработчикам-новичкам предлагают зарплату 50–70 тысяч рублей, специалистам со стажем от двух лет — до 150 тысяч, а опытные андроид-программисты могут рассчитывать на зарплату 200–300 тысяч. Есть вакансии с заработком больше 400 тысяч, но их немного.
В ноябре 2020 на HeadHunter было около 6 000 вакансий для андроид-разработчиков, а предлагаемые зарплаты распределялись так:
Карьерный рост и перспективы профессии
В Android-разработке, как и везде в IT, новичок начинает с позиции Junior, затем прокачивает скиллы и становится Middle. Через несколько лет может претендовать на позицию Senior, а наиболее успешные дорастают до тимлидов.
С 2016 года в СМИ ходили слухи, что Google скоро заменит Android новой операционной системой Fuchsia — и Android-разработчики останутся не у дел. Всё прояснилось в 2019 году на конференции Google I/O: руководитель направления Android Хироши Локхаймер заверил, что компания не собирается отказываться от Android для смартфонов. Fuchsia будут применять в умных домах, носимой электронике и устройствах дополненной реальности.
Но даже если Google неожиданно передумает, андроид-программисты без работы не останутся: кому, как не им, переводить приложения на новую операционную систему.
Что должен знать будущий Android-разработчик
Чтобы стать востребованным специалистом, новичку нужно изучить:
- языки программирования Java и Kotlin, на которых написано большинство приложений;
- среду мобильной разработки Android Studio. В ней настраивают интерфейс продукта и программируют его логику;
- общие принципы разработки: оформление кода, как правильно именовать функции и переменные, как разделять код на файлы и многое другое. Не обойтись и без основ ООП;
- языки HTML, CSS, язык разметки XML;
- базовые принципы дизайн-концепций и дизайн-систему Google — Material Design;
- операционную систему Android (это проект с открытым исходным кодом). Нужно знать её файловую структуру, функции и принципы работы;
- популярные фреймворки и библиотеки для мобильных приложений;
- распределённую систему управления версиями Git и GitHub (сервис для проектов, использующих Git) — для совместной работы с членами команды и публикации портфолио;
- unit- и UI-тестирование ПО, чтобы определять качество работы, тестировать гипотезы и отдельные фишки приложения;
- основы алгоритмизации (это поможет не остаться кодером — стать программистом);
- английский на уровне, достаточном для чтения учебных материалов (в частности документации).
Есть мнение, что программирование — это на 90% поиск ответов и только на 10% написание кода. Поэтому на вопрос «С чего начать учить программирование?» логичнее всего ответить — с английского языка.
Это первый язык, который должен выучить программист. У читающих на языке первоисточника огромное преимущество: им доступны лучшие учебные материалы, они раньше узнают обо всех изменениях , а если ещё и разговорный подтянуть, то их профессиональные горизонты не ограничатся отечественными компаниями.
Как всё это изучают
Кто-то изучает сам. Есть много книг, мануалов, видеоуроков, форумов, лучшие из которых, вроде введения в Android, как раз на английском языке.
Однако новичку одинаково легко потеряться в учебных материалах и выбрать неудачный порядок знакомства с ними. Поэтому самостоятельное освоение Android-разработки съедает уйму времени, которое лишним не бывает. Вдобавок — страдает от недостатка практики.
Ценители более системного подхода предпочитают онлайн-курсы (например, на edx.org, Coursera.org, Udacity.org). Но и здесь те же проблемы: выбрать подходящий непросто, качество материала и его полнота очень разнятся, гарантий и обратной связи нет, курсов на русском совсем мало. Да и с бесплатностью всё не так однозначно — эти платформы постепенно превращаются в коммерческие, отступая от первоначальной идеи.
Конечно, есть и исключения — образцы доступного качества вроде легендарного MIT . Но к сожалению, у него нет курса для Android-разработчиков.
Такой курс есть у Skillbox. Стартовать с опытными наставниками и постоянной обратной связью гораздо выгоднее. Наши студенты изучают всё на практике, общаются с менторами, создают полноценный проект для портфолио и быстро входят в профессию.
Первые полгода можно учиться бесплатно, а рассчитываться уже с первой зарплаты — с трудоустройством мы тоже помогаем.
Google Play Store — магазин приложений, а также игр, книг, музыки и фильмов для владельцев устройств с операционной системой Android.
Eclipse — это IDE («единая/интегрированная среда разработки») для кроссплатформенных приложений. Распространяется на условиях свободного ПО (free software). Подробнее тут.
Android Development Tools («Инструменты разработки под Android») — плагин, который Google предоставляет для разработки Android-приложений в IDE Eclipse.
Среда Android-разработки на базе интегрированной среды IntelliJ IDEA от JetBrains.
Включает эмулятор Android, языки программирования, компиляторы, инструменты для сборки приложения и создания интерфейсов.
Сегодня Android Studio — официально поддерживаемая Google IDE.
Объектно-ориентированное программирование — это парадигма разработки ПО, в которой приложения состоят из объектов, каждый из которых является экземпляром некоторого класса, а каждый класс — потомком другого класса в иерархии наследования.
Подробнее об ООП здесь.
Google регулярно выпускает обновления и новые библиотеки. Поэтому выучить что-то один раз и только на этом ехать дальше — в Android-разработке не выйдет.
Массачусетский технологический институт (читается «эм-ай-ти») — один из престижнейших технических вузов мира; ещё в 2016 году полностью оцифровал свою учебную программу и открыл материалы всем желающим.
Источник