Как стать Android-разработчиком с нуля и как расти опытным специалистам?

Хотите стать разработчиком приложений для Android? Что нужно знать Android разработчику? На какие перспективные технологии обратить внимание? На эти и другие вопросы специально для Anywhere Club отвечает Android инженер с 10-летним опытом Артем Багрицевич, сейчас работает в EPAM.

Артем Багрицевич

Как стать разработчиком приложений для Android?

— Конечно, сейчас можно найти очень много источников информации: книги, статьи, курсы, документация… Понятно, что будущим Android разработчикам бывает сложно определиться. Я бы советовал начинать с изучения Android Developer Roadmap, но они тоже бывают разные. Лично мне нравится Roadmap, созданный в компании Stream: он наиболее полный и логичный.

Там же есть ссылки на статьи в блоге компании, где подробно рассматривается каждый шаг.

Есть еще ресурс roadmap.sh — они предлагают немного другой путь. Плюс в том, что, помимо Android, можно освоить еще и системы контроля версий: их необходимо знать и уметь использовать любому разработчику. С моей точки зрения, этот roadmap проще, потому что в нем пропущены некоторые глубокие темы, которые сложно понять новичку, — HAL и Ядро Linux, например.

В обоих источниках предлагают начать с языков программирования, и тут я советую, чтобы стать Android разработчиком, выбрать Kotlin: на нем ведется вся современная разработка. Что касается Java, все равно придется изучить основы JVM, устройство памяти и сборку мусора. Синтаксис языка будет уже не так важен,как понимание базовых вещей, ведь Kotlin работает на JVM, и под капотом все остается таким же.

Для изучения языка я настоятельно советую бесплатный официальный курс от создателей. Он ознакомит с основами, типами данных, объектно-ориентированным программированием.

С чего начать и где учиться на Android разработчика?

Как я уже говорил выше, на рынке сейчас много источников, но именно книги быстро устаревают: ими я бы пользоваться не советовал. Статьи в интернете тоже теряют актуальность, поэтому важно обращать внимание на дату выпуска материала. В целом, в IT все быстро меняется, и Android разработка 10 лет назад, 5 лет назад и то, что есть сейчас, — это совершенно разные вещи. Разные инструменты, языки, библиотеки и архитектурные подходы.

Сейчас появилось огромное количество курсов, на тему, как с нуля стать разработчиком Android за несколько месяцев. Не ведитесь на это. Я сам не раз запускал бесплатный курс по Android разработке в Rolling Scopes и точно знаю, что за несколько месяцев студенты только начинают осваивать язык программирования и решают базовые задачи. Для того чтобы стать Android программистом, нужно получить практический опыт, разработать несколько сложных приложений, используя современные подходы, а также изучить теорию в больших объемах. Понимание, как работает система в целом и какие есть возможности и ограничения, приходит только после этого. На подготовку Junior специалиста у нас в среднем уходил год. Да, все зависит от конкретного человека, мотивации, наличия свободного времени, и обучение можно ускорить, но все же речь не про несколько месяцев.

Повторюсь: начните с изучения Kotlin, уже на этом этапе вы поймете, нравится ли вам разработка вообще. А уже потом, имея базовые знания, гораздо проще определиться.

Дальше можно идти шаг за шагом в roadmap: просто искать информацию по теме, а поиск информации — один из ключевых навыков разработчика.

Очень советую официальную документацию, а также codelabs от Google.

После остается только набираться опыта, писать новые приложения и следить за изменениями в технологиях и обновлениями. У меня в закладках:

Топ-3 источника, которые нужно отслеживать

  • У Android Broadcast отличный телеграм-канал, в нем освещаются все значимые события в мире Android разработки, а на YouTube часто выходят интересные видео с гостями. Также могу посоветовать курс по Dagger 2 от автора канала.
  • Еще один источник — конечно же, официальный YouTube канал Android Developers.
  • Я думаю, ни один путь Android разработчика не проходит мимо конференции Google I/O. На нейраскрывают многие вещи, над которыми работали сотрудники компании целый год. Важно посетить сессии по изменениям в новой версии Android — обычно их устраивают для разработчиков специально. Во время конференции также проходит множество ивентов, воркшопов и других мероприятий, нацеленных на обучение и развитие.

Группа для Android разработчиков в Discord

Ничто не помогает так расти, как работа над реальном проектом. Или хотя бы над учебным, но под контролем ментора. Поэтому мы в своей школе на последнем этапе всегда выделяем опытных разработчиков для проверки заданий и помощи. Постарайтесь найти себе опытного наставника: так обучаться будет гораздо легче. Например, можно вступить в нашу группу в Discord, где всегда рады помочь.

Что делать, если я уже Android разработчик?

  • Все то же: обязательно просмотрите Roadmap, может быть, где-то есть пробелы в знаниях, которые можно закрыть, просто пройдя пару кодлабов. За развитием технологий тоже нужно следить. Плюс помогайте начинающим разработчикам: так вы получите ценный опыт менторства и сами сможете вспомнить какие-то вещи, с которыми не работаете каждый день.
  • Мир разработки меняется, и если еще пару лет назад все хвалили MVP, то сейчас этот подход подвергается критике. Пришло время UDF архитектур и декларативного UI, так что всем советую посмотреть на Jetpack Compose. Я уверен, что через несколько лет он станет стандартом — так же, как сейчас стандартом стал ConstraintLayout. Этих изменений не стоит бояться, нужно просто привыкнуть и освоить новые подходы.
  • Еще одна тенденция — кроссплатформенность и переиспользование кода. На рынке существует множество кроссплатформенных фреймворков, таких как ReactNative, Xamarin и Flutter: они забрали часть рынка у нативной разработки, но все не так плохо. У нативных приложений все еще есть преимущества: UI/UX, производительность, интеграции с платформой. Плюс не забываем, что мы тоже умеем переиспользовать код. Kotlin Multiplatform Mobile — еще одна вещь, на которую следует обратить внимание: у этой технологии уже появляется интерес на рынке, а возможности постоянно растут.
  • Многомодульность. Пожалуй, все Android разработчики стремятся уйти от монолита, разделить приложение на более мелкие части, которые легче поддерживать. Если в вашем приложении больше нескольких экранов, стоит задуматься.


Залетайте в Discord канал Anywhere Club обсудить статью или задать вопросы.