Android разработчик обучение: Курсы Android-Разработчиков с Нуля [2020]

Содержание

где учиться, зарплата, плюсы и минусы

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

Читайте также:

Краткое описание

Во второй половине 2016 года общая доля смартфонов на ОС Android, проданных клиентам, составила 87%, обогнав не менее популярную платформу iOS. Спрос растет, а вот количество толковых разработчиков для Android не увеличивается, что связано с минимальной популярность профессии в странах СНГ.

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

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

Особенности профессии

Android-программист занимается следующей работой:

  • анализ ТЗ, брифов, прототипов и пользовательских интерфейсов, полученных от заказчика и дизайнера;
  • внесение рекомендаций в ТЗ, выбор путей для решения задач;
  • написание программного кода;
  • тестирование ПО;
  • отладка и повторное тестирование;
  • загрузка созданного программного продукта в магазин или на любой другой сайт;

Android-разработка для начинающих: план изучения

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

0. Изучите Java

Да, я отметил этот шаг как нулевой, потому что перед изучением Android-разработки у вас должно быть знание Java. Вы можете сказать: “Но ведь Kotlin гораздо лучше подходит для Android-разработки, чем Java? И Google сделал его официальным языком для создания Android-приложений. Тогда зачем мне сначала изучать Java?”

Я не говорю, что вы не должны учить Kotlin. Я советую сначала изучить Java, потому что вы только начинаете заниматься Android-разработкой, а Java по-прежнему является важной частью Android. Ресурсов для обучения Android API на Kotlin пока недостаточно. Многие из уроков для начинающих написаны на Java. Поэтому для вас будет полезно понимать код на Java, не прогоняя его через конвертер.

Я посоветую для обучения Java книгу Head First Java. Она так интересно написана, что вам покажется, будто вы изучаете Java по комиксу. Другой хороший вариант — Thinking in Java.

1. Купите книгу по Android-разработке или пройдите онлайн-курс

После изучения Java приходит время начать обучаться Android-разработке. Я советую книгу Android Programming: The Big Nerd Ranch Guide для начала. Она основана на популярных буткэмпах Big Nerd Ranch. Вы можете использовать эту книгу в качестве практического руководства по Android-разработке, так как в ней много примеров кода с отличными пояснениями по ключевым концепциям.

Также я рекомендую Head First Android Development. Хотя эта книга немного устарела, она объясняет ключевые концепции очень интересным способом. Если вам понравился стиль Head First, вам будет приятно читать эту книгу.

Если вы предпочитаете видеоуроки, то советую вам пройти эти курсы:

Если вы хотите стать сертифицированным Android-разработчиком и у вас есть средства, я советую вам записаться на программу Android Developer Nanodegree от Udacity совместно с Google.


Google предлагает бесплатный курс Android Basics Nanodegree для незнакомых с программированием

Не забудьте добавить в закладки официальный обучающий гид для Android-разработчиков от Google. Этот гид затрагивает все базовые вещи и образцы кода, которые будут полезны для любого Android-разработчика.

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

Другие курсы:

2. Убедитесь, что понимаете эти концепции очень хорошо

Activity LifeCycle

Service, IntentService и их жизненный цикл

Broadcast Receivers

Content Providers

Tasks и Back Stack

Устранение багов в приложении

Context в Android

Android Views и Layouts

Темы и стили в Android

Fragments

ViewPager

RecyclerView

Shared Preferences

SQLite

Threading

ThreadPoolExecutor

Looper, Handler, HandlerThread

HTTP и REST

Организация сетей в приложениях Android

Уведомления

Локация и карты

Сенсоры Android

Локализация

Разрешения

App Standby и Doze Mode

Библиотеки поддержки в Android

Материальный дизайн

Система сборки в Android

3. Другое рекомендуемое чтение

Android-разработка для начинающих — это просто. Попробуйте начать и уже скоро вы сделаете свое первое приложение!

Если вы нашли опечатку — выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать [email protected].

9 практических советов для начинающего Android-разработчика | GeekBrains

Как эффективно учиться и искать первую работу в программировании для Android

https://d2xzmw6cctk25h.cloudfront.net/post/2166/og_image/cec0c06a8c7e0198bbd550cbaaa3d2b7.png

Здравствуйте, меня зовут Александр, я бывший алкоголик бывший маркетолог и ещё 5 лет назад я не знал ничего о программировании. Возможно, я собрал все ошибки, какие можно, на пути программиста. Я пытался учиться самостоятельно, потом учился на курсах GeekBrains, много читал и, конечно же, много трудился. И теперь хочу поделиться наблюдениями, чтобы вам было проще.

Сегодня спрос на Android-разработчиков превышает предложение. Если вы задумывались над разработкой приложений для смартфонов, сейчас самое время реализовать своё желание. К программированию под Android можно идти разными путями: ниже вы увидите советы, которые, по моему мнению, сократят любой выбранный путь.

Не бойтесь чего-то не знать — это ок.

Платформа Android огромна, не говоря уже о двух языках (Java и Kotlin) и массе дополнительных библиотек и архитектурных решений. Даже если вы выучите всё — каждый год появляется что-то новое, Android не стоит на месте. Вот вам пример того, что можно знать, если учить всё:

Иллюстрация дана для общего взгляда. Каждый синий прямоугольник — это большая тема, а в некоторых ещё можно разглядеть немалое количество подтем.

Можете распечатать эту схему и использовать как подсказку для себя, но ради бога, не пытайтесь всё это знать! Я не встречал ещё ни одного разработчика, который знает сразу всё. Осваивайте только то, что вам нужно в данный момент — это и так будет отнимать у вас много времени. Пополняйте свой багаж постепенно, шаг за шагом, и со временем вы станете экспертом. 

Разберитесь в Android Studio.

Это среда разработки, в которой вы будете проводить всё своё рабочее время. Чем эффективнее вы её используете, тем эффективнее будете вы сами. Вы не представляете, сколько времени вы можете сэкономить за месяц, если будете пользоваться только клавиатурой, без мыши! Начните использовать сочетания клавиш: они есть почти для всего, для чего нет — назначьте. На Хабре есть пост о том, как вам может помочь «Студия» в вашей работе.

Ещё в Android Studio есть плагины: File > Settings > Plugins. Они тоже облегчают вашу учёбу и труд. Вот несколько полезных плагинов:

Но прежде чем устанавливать всё подряд, учтите, что плагины могут замедлить работу Android Studio. Вам нужно понимать реальную пользу и необходимость в каждом плагине (я у себя использую JSON To Kotlin Class ​(JsonToKotlinClass), Key Promoter X, ADB Wi-Fi Connect).

Читайте чужой код.

Уметь разбираться в чужом коде очень важно для разработчика, потому что большую часть своего времени вы будете заниматься именно этим. Более того, читая чужой код хотя бы по полчаса в день, вы узнаете для себя много нового, не сомневайтесь. В блоге Aritra Roy можно найти несколько интересных проектов, которые можно читать на досуге.

Учитесь писать чистый код в соответствии с конвенцией.

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

Используйте Git, прямо сейчас!

Не надо постоянно пересохранять своё приложение в бэкапах, не надо отсылать код в архиве — поберегите всем время. Нет ни одной команды в андроид-разработке, которая не использует Git. Он нужен не только для командной разработки, он нужен лично вам.

Не изобретайте колесо — используйте лучшие практики.

Есть набор определённых паттернов и антипаттернов в программировании, набор устоявшихся или наиболее эффективных подходов в решении постоянно повторяющихся задач. Пользуйтесь хорошими наработками и избегайте костылей и плохих решений. Список того, что вам может пригодиться, можно найти на Github.

Для всего есть подходящая библиотека.

Убедитесь в этом сами, просто поискав что-то на Github или Android Arsenal. Но это не значит, что нужно всегда и везде использовать какую-то библиотеку. К выбору всегда нужно подходить с осторожностью. Посмотрите количество положительных оценок (чем больше, тем лучше), посмотрите, что ещё сделал автор, проверьте наличие проблем в отдельной секции. Всё это даст вам понимание, стоит использовать библиотеку или нет. Ведь в итоге вам нужно надёжное приложение без багов — учитывайте это в первую очередь.

Старайтесь постоянно иметь собственный мини-проект под рукой.

Они называются по-разному: pet-project, side-project, личный проект, playground, мини-проект. Это то, что вы делаете для себя, какое-то небольшое приложение, на котором вы тренируетесь или смотрите, как что работает, тестируете какие-то новые концепции или библиотеки. Так вы понимаете гораздо лучше и больше, чем если просто о чём-то читаете или слышите. 

Возьмите за правило постоянно учиться.

Узнавайте что-то новое или интересное каждую неделю. Это не обязательно должно быть что-то большое, важное или сложное. Просто что-то новое. Или составьте список того, что вы не знаете и вычёркивайте из него что-то каждую неделю, или подпишитесь на какие-то каналы. Вот список того, на что подписан лично я:

Это не значит, что вам нужно читать это все, выберите для начала что-то одно.

Идите к своей цели и вы к ней придёте. Поверьте, в этом нет ничего невозможного, если идти к ней каждый день, даже маленькими шажками.

И в качестве бонуса — как найти свою первую работу Android-разработчиком.

Сделайте небольшое, но образцовое, с вашей точки зрения, приложение.

Часто перед собеседованием просят показать какой-нибудь свой код, если он есть. Потому что множество вопросов отпадут сами собой, если его посмотреть — собеседование может и не понадобиться или оно будет формальным. Пара приложений на Github всегда вам пригодятся. Поэтому, если вы хотите стать Android-разработчиком, — начните с приложения, ведь практика наше всё.

Умейте отвечать на простые вопросы.

Ваше резюме будет пустым, поэтому для начала вам будут задавать базовые вопросы по платформе и языку: коллекции, ООП, SOLID, многопоточность, компоненты Android, фрагменты, жизненный цикл, кастомные вью, Dagger, RxJava.

Изучите возможности стажировки и обучения в крупных компаниях.

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

Ничего страшного, если вам не сделали оффер.

Просите фидбэк или в идеале поговорите немного с тем, кто вас собеседовал. Это поможет вам лучше подготовиться к следующему собеседованию. Отказ даёт вам не меньше опыта, чем успешно пройденное собеседование. Часто в ту же компанию можно будет пройти собеседование повторно через некоторое время.

И напоследок. Изучить Android-разработку можно и самостоятельно, но если вы хотите как можно быстрее добиться результата — пройдите все курсы и сдайте все домашние задания на факультете Android-разработки. После этого у вас будет и портфолио из нескольких приложений, и опыт разработки (в том числе и командной), и все необходимые знания. Именно таких людей и ищут все крупные компании на позицию Junior-разработчика.

Другие полезные статьи для начинающих Android-разработчиков:

 

Самоизоляция закончилась, а значит — самое время освоить новую профессию, чтобы уверенно смотреть в будущее при любых обстоятельствах! Мы хотим помочь вам и с 1 по 31 августа 2020 г. дарим скидку 40% почти на все программы обучения GeekBrains. Будьте здоровы и успешны! 🙂

 

Видео курсы по Android

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

Если вы хотите создать свое мобильное приложение и на нем заработать, либо брать заказы на фрилансе или начать карьеру Android-разработчика, то для вас интересна будет специальность Android-разработчика. С помощью языка программирования Java, комплекта разработки Android SDK от Google и эмуляторов Android-устройств вы сможете создать приложения для операционной системы Android, не привязываясь к смартфону на операционной системе Android. Также в процессе разработки предоставляется возможность запустить приложение на своем смартфоне.

Знание Java, языка разметки XML, баз данных SQL lite и системы сборки проекта Gradle помогут разработчику создать красивые многофункциональные приложения для смартфонов и планшетов, выкладывать свои приложения на Play Market для других пользователей Android-устройств. Также преимуществом будет знание языка программирования Kotlin – это не сложный язык, кроссплатформенный язык, который использует виртуальную машину Java. Его иногда используют на проектах вместо Java, так с помощью него можно сильно сократить программный код.

Так как приложения пишутся на объектно-ориентированных языках программирования, поэтому разработчик должен понимать все парадигмы и шаблоны объектно-ориентированного программирования,  такие как наследования, полиморфизм, инкапсуляция и абстракция, а также разные шаблоны для того, чтобы код был читаемым независимо от объема проекта и его легко можно было бы дополнять и расширять. Также немаловажным требованием является понимание алгоритмов и структур данных, так как часто придется сталкиваться с многопользовательскими задачами, когда несколько клиентов могут обращаться на сервер одновременно, поэтому нужно будет реализовать эффективный алгоритм либо реализовать алгоритм с минимальным выделением памяти.

Такие требование весьма оправданы, так как уровень зарплат Android-разработчиков варьируется от $600 до $4000 в среднем в зависимости от уровня знаний и опыта работы.

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

Требование к Android-разработчику:

  • Хорошие знание Java
  • Понимание и умение применять на практике GoF-паттерны проектирования
  • Опыт работы с Android SDK
  • Опыт работы с библиотеками для работы с запросами клиент-сервер, такими как Retrofit2, Glide/Picasso
  • Опыт работы с базами данных (желательно SQL lite)
  • Английский не ниже Pre-intermediate

Дополнительные требования, которые будут преимуществом при трудоустройстве на работу:

  • Знание языка Kotlin
  • Опыт работы с Git
  • Библиотека Lib2GDX (если будете разрабатывать игры)

Android Developer может занимать такие должности:

  • Junior Android Developer
  • Middle Android Developer
  • Kotlin Android Developer
  • Senior Android Developer
  • Lead Android Developer

Курс для начинающих разработчиков Android приложений. Часть 1. Приступаем к работе. — Fandroid.info

Добро пожаловать на Курсы для разработчиков Android. Здесь вы найдете наборы уроков в рамках курсов, которые описывают, как выполнить определенную задачу с примерами кода, которые вы можете повторно использовать в вашем приложении.

Если данные курсы покажутся вам сложными или непонятными, смотрите более наглядные Видеоуроки по разработке android-приложений с нуля

Если вы не владеете начальными знаниями языка программирования java, добро пожаловать на Курс java для начинающих android-разработчиков

Также предлагаем Продвинутые курсы:

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

  1. Установить среду разработки Android Studio или Eclipse с Android SDK Tools
  2. Создать и запустить первое приложение на Android
  3. Добавить в android-приложение  поддержку различных Android устройств
  4. Узнать, что такое жизненный цикл Activity и как ним управлять
  5. Построить динамический пользовательский интерфейс используя фрагменты
  6. Реализовать сохранение данных в android-приложении
  7. Обеспечить взаимодействие с другими android-приложениями

 


1. Установка среды разработки android приложений

Чтобы создавать приложения для android, нужно установить необходимые компоненты, представляющие собой среду разработки и инструменты разработчика. Приложения для андроид-устройств пишутся на языке программирования java, поэтому в первую очередь нужно установить и настроить набор инструментов JDK  (Java Development Kit). Затем установите среду разработки на выбор: Android Studio или Eclipse, и набор инструментов Android SDK к ним.

Eclipse до недавнего времени был наиболее популярной средой разработки android, многие опытные разработчики продолжают его использовать.

Android Studio — более молодая среда разработки, тем не менее быстро набирающая популярность как более интеллектуальная и удобная. Кроме того, Android Studio активно развивается и поддерживается компанией Google как официальная среда разработки андроид-приложений.

Выбор среды разработки остается за вами, в наших уроках мы будем демонстрировать обе.

Установка JDK  (Java Development Kit)

Установка Android Studio

Установка Eclipse (на выбор)

Добавление пакетов Android SDK Manager

 


2. Создание вашего первого приложения

После того как вы установили и настроили среду разработки, познакомьтесь с основами разработки Android приложений.

Создание Android проекта

Запуск android-приложения

Построение простого пользовательского интерфейса

Запуск другой Activity — второго окна приложения

 


3. Поддержка различных Android устройств

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

Поддержка различных языков в Android приложении

Поддержка различных экранов Android устройств

Поддержка различных версий платформы Android

 


4. Управление жизненным циклом Activity

О методах жизненного цикла Activity, и о том, как обеспечить юзабилити, реализуя callbacks методы жизненного цикла.

Запуск Activity

Приостановка и возобновление Activity

Остановка и перезапуск Activity

Повторное создание Activity

 


5. Построение динамического пользовательского интерфейса с использованием Фрагментов

Как построить пользовательский интерфейс для вашего приложения, который является достаточно гибким, чтобы представить несколько компонентов пользовательского интерфейса на больших экранах и ограниченного набора компонентов пользовательского интерфейса на экранах меньшего размера — основы для создания единого APK для телефонов и планшетов.

Создание фрагмента

Построение гибкого пользовательского интерфейса

Связь с другими фрагментами

 


6. Сохранение данных

Как сохранить данные на устройстве, будь то временные файлы, загруженные из сети наборы файлов приложения, пользовательские файлы мультимедиа, структурированные данные, или что-то еще.

Сохранение наборов ключ-значение

Сохранение файлов

Сохранение данных в SQL базу данных


7. Взаимодействие с другими приложениями

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

Отправка пользователя в другое приложение

Получение результата от Activity

Разрешение другим приложениям запускать вашу Activity

Часть 2. Создание android приложений с возможностью обмена данными>>

Перевод с сайта developer.android.com. Если не указано иное, этот контент распространяется под лицензией Creative Commons Attribution 2.5. Для получения дополнительной информации и ограничений, см. Лицензия контента.

мобильный разработчик / Блог компании RUVDS.com / Хабр

В 2010 году мой друг на день рождения попросил в подарок переводную книгу по разработке под Android. Необычных вещей в этом факте было две: книгу было не достать, а он работал самым простым госслужащим и имел гуманитарное управленческое образование. Я удивился, но книгу достал — привёз из поездки в Москву. Через два месяца после вручения подарка он сидел со мной в кафе и тыкал в экран мобильника, демонстрируя первое приложение, связанное с учётом товара для одной компании — свой первый заказ. Я работал инженером в телекоме и концептуально идею оценил, но не думал, что мобильная разработка будет всюду. Кстати, друг за приложение взял $300, заказчик отпахал на нём два года с лишним. Ну а друг упорно качал скиллы, развивал то самое приложение бесплатно и в итоге стал мобильным разработчиком в огромной компании. 

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


Кто это?


На первый взгляд кажется, что всё просто: мобильный разработчик — это тот, кто разрабатывает программы для мобильных устройств. Всё верно. Но большинство людей не из мира ИТ под мобильными устройствами подразумевают смартфоны и особо продвинутые — планшеты. Но мы-то с вами знаем, что мобильные устройства — это не только наши любимые гаджеты, носимая электроника, но и различные научные аппараты, компоненты исследовательских систем на базе гаджетов, компоненты интернета вещей. Это огромный мир приспособлений, который будет становиться всё больше и больше — мобильные приложения востребованы обычными пользователями, бизнесом, медициной, наукой и т.д. Поэтому профессия мобильного разработчика — это однозначно профессия будущего, во всяком случае ближайших 10-15 лет это точно. 

Где нужен?


Сегодня мобильные разработчики востребованы везде: корпоративные приложения имеют мобильные версии, СМИ имеют мобильные приложения, бизнес активно переводит свои программы лояльности в приложения (у кого из нас нет приложений разного ритейла — от Ленты и Ашана до РивГош и Л’Этуаль) и т.д. Мобильное приложение — гарантия того, что ты будешь оставаться в руках своего клиента, и почти все компании это понимают. Поэтому мобильные разработчики нужны абсолютно везде. Перечислю наиболее перспективные отрасли, на которые можно ориентироваться сегодняшним студентам, желающим выйти в мир мобильной разработки (и вообще всем).
  • Мобильные игры и развлекательные приложения — огромная интересная индустрия, готовая принять разработчиков любого уровня. Мир погряз в играх, поэтому есть спрос на разработку приложений для любого возраста: от самых крошечных детей до взрослых дядек, гоняющих любимые игры на мобильнике.
  • Развлекательно-образовательные приложения, такие как приложения для изучения языков, книг, музыки, путешествий (они скоро вернутся в новом качестве и это будет захватывающе интересно), тренировок и т.д. 
  • Банковские приложения — те мобильные банки, которыми мы пользуемся, это сложнейшие нагруженные системы с особой архитектурой, и они нуждаются в грамотных разработчиках. Да, стажёром в такую продуктовую команду попасть почти нереально, но для миддлов и сеньоров открываются классные перспективы.
  • Приложения электронной коммерции — почти все магазины доступны в виде приложений, и это колоссальная инфраструктура с высокой ёмкостью рынка труда. Думаю, что эта сфера будет развиваться ещё глубже. 
  • Научные и исследовательские приложения. На одном из гугловских DevFest ребята из компании Mera рассказывали о научном проекте по изучению кораллов, в основе которого лежит узел с планшетом на андроиде. Так вот, такие проекты — совершенно особенный тип мобильной разработки для тех, кто хочет быть ближе к научному миру.

Вообще, думается, что пандемия COVID-19 изменит мир и сформируется новый долгосрочный спрос на приложения для удалённого всего на свете, доставок для каждого ресторана и кафе, обучения, спорта и проч. Это повлечёт рост спроса на мобильную разработку и на мобильных разработчиков. Так что, кроме объективной динамики рынка, вмешался форс-мажор, который для мобильной разработки принесёт определённые бонусы. 

Средняя заработная плата


Посмотрим заработную плату на Хабр Карьере — по данным за 2 полугодие 2019 года. 

Как видите, особенностью рынка мобильной разработки является большой шаг от стажёра к джуну и от джуна к миддлу: между этими уровнями заработная плата растёт практически в два раза. Важная особенность: заработная плата растёт только с вместе с ростом квалификации разработчика.

Базовые требования к профессионалу


Стек мобильной разработки активно меняется, поэтому, выбирая мобильную разработку, вы должны быть готовы поглощать новую информацию, изучать мануалы в огромных количествах и постоянно перестраиваться. Основные мобильные платформы постоянно обновляют стек и развивают его. По объёму изучаемой литературы для мобильного разработчика эту профессию можно сравнить, например, с профессией терапевта. Проще говоря, без постоянного чтения и освоения новых принципов работы с кодом вы будете говнокодером. 

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

  • 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 (бешено растёт популярность)

Кроме этого, в мобильной разработке много стандартов и вам нужно их знать или хотя бы знать, где их найти и как ими пользоваться в реальной практической работе.
Топ-5 востребованных технологий у специалистов по данным «Хабр Карьеры», 2 полугодие 2019 года

Кроме технических знаний, необходимо понимать основы той сферы, в которой вы собираетесь работать — так программисту будет проще понять потребности и проблемы пользователей мобильного приложения. Как минимум, это может быть базовый учебник по профилю компании, как максимум — тесное общение с коммерческой командой и тестированием и постоянное исследование профиля клиента.

Важные личные качества


Мобильный разработчик — это стрессовая, нагруженная работа, связанная с постоянным общением, с нервами, которые непременно настигнут вас, когда вы начнёте читать отзывы пользователей на работу своего приложения 😉 Поэтому будущий мобильный разработчик должен обнаружить у себя несколько важных качеств.
  • Профессиональный разработчик должен прежде всего понимать пользователя, разбираться в принципах проектирования интерфейсов, интуитивно понимать UI/UX.
  • Командная работа — важный залог создания полезного и удобного приложения: придётся взаимодействовать с тестировщиками, коммерческой службой, разработчиками веба и десктопа, службой поддержки и т.д. Эта работа скорее для экстравертов.
  • Аналитический склад ума — мобильный разработчик должен обязательно анализировать множество факторов, учитывать их в разработке.
  • Внимание к деталям и высокая работоспособность обеспечат отсутствие багов в приложении и высокую скорость разработки, которая в мобильных приложениях крайне важна из-за интенсивных изменений предпочтений в устройствах, обновлений операционных систем и т.д. 
  • Готовность к непрерывному обучению — гайдлайны постоянно меняются, Google и Apple проводят интересные и полезные мероприятия, поэтому важно успевать «схватить» всю информацию на лету и успеть втащить её в продакшен.

В одной из предыдущих серий «Профессии» я писал о том, что программист фронтенда и бэкенда должен быть внимателен к новинкам разработки, новым языкам программирования и стекам технологий, но не тащить всё новое в прод бездумно. В мобильной разработке ситуация другая: важно не только узнать о новой технологии, важно её быстро и грамотно использовать, чтобы опередить конкурентные приложения и соответствовать изменениям платформы или, например, дизайна и логики работы мобильных устройств. 

Необходимость знания иностранных языков


Вот некоторые ключевые ресурсы для мобильных разработчиков.

Большинство из них на английском языке и без них у вас, как без рук, ничего не получится. Поэтому для разработчика мобильных приложений знание английского языка настоящий must have. К слову, все конференции Google и Apple также проводятся на английском языке. Какой уровень освоения вы выберете — ваше решение, но в целом для уверенного чтения, слушания и понимания однородной технической информации нужен минимум Upper-Intermediate.

Где учиться


В отличие от программирования другого профиля, мобильная разработка в вузах представлена крайне слабо, поэтому это, так сказать, дополнительная квалификация для разработчика, которую нужно осваивать самостоятельно. 
  • Реально самостоятельно — с помощью книг, курсов и многочисленных обучающих видео. Для этого вам нужно выбрать какую-то идею для своего мобильного приложения и начать разрабатывать именно его, а не писать код ради кода. Если у вас будут требования к проекту, обучение будет более структурированным.
  • На корпоративных курсах — бесплатных и платных курсах компаний, где практики максимально быстро вас научат создавать базовые решения. Они вам передадут супер выжимку из знаний и профессионального мастерства. Совет: выбирайте оффлайновый курс и желательно долгосрочный, за 2 недели у вас мало что выйдет.
  • На онлайн-курсах — в принципе, я не встречал откровенно отвратительного курса по мобильной разработке, порог входа действительно невысок. Но помните: слушать мало, нужно кодить и работать над непонятными моментами самостоятельно.
  • У репетитора. Пока это не самый популярный способ освоения новой специальности, особенно у взрослых работающих людей. Однако нет ничего зазорного в том, чтобы обратиться к частному тьютору и качественно освоить азы нужной вам специальности. 

Лучшие книги и средства обучения


Очень сложно рассказать про книги, потому что всё зависит от того, что, на каком языке и для какой платформы вы собрались разрабатывать. Поиском можно найти хорошие подборки — например, на сайте Skillbox (эта и другие ссылки в статье не являются рекламой, просто хорошие материалы).
Ну и конечно, ищите курсы на YouTube, читайте комментарии и приступайте — это один из самых доступных и простых источников обучения. Его можно сочетать со всеми остальными.

Будущее мобильного разработчика


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

Будущее у мобильных разработчиков пока весьма уверенное: сомневаюсь, что мир откажется от мобильных смартфонов и планшетов в ближайшее время, не говоря уже о росте разных видов носимой электроники и IoT. Поэтому развитие программистов этого типа будет выглядеть как пошаговый переход junior — middle — senior — lead. Поэтому скорее важно выбрать отрасль и компанию, в которой этот путь будет пройден.

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

Мифы профессии


  • Мобильные разработчики говнокодеры создают плохой код, не оптимизируют приложения и вообще дилетанты. Здесь речь идёт примерно о такой же ситуации, как с PHP: язык огребает горы хейта из-за того, что в него легко войти и горе-вебмастера написали на нём ну очень много плохих приложений. В мобильной разработке действительно много дилетантов и любителей, что немного портит общую картину. Но распространять выводы на каждого программиста точно не стоит. 
  • Мобильные разработчики мало зарабатывают. Всё зависит от вашего опыта, квалификации и способности решать задачи вашей компании.
  • Мобильная разработка — это недопрограммирование, не труъ. С каких это пор Java, Swift, Kotlin и т.д. — это не труъ?! А если серьёзно, корни этого мифа уходят к готовым конструкторам и универсальным крутым средствам типа Flutter, которые здорово облегчают и ускоряют работу и портируемость приложения. Это так не работает: хорошее приложение без кода и глубокой разработки не получится.
  • В мобильной разработке часто возникают конфликты между разработчиком и заказчиком. Чистая правда, так оно и есть. Решается с помощью сбора требований, чётко прописанного технического задания и поэтапной разработки с тестированием и согласованием в конце каждого спринта.

Главный совет


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

Предыдущие серии «Профессии…»

→ Профессия: тестировщик
→ Профессия: бэкенд-разработчик
→ Профессия: фронтенд-разработчик
→ Профессия: системный администратор

Как стать Android-разработчиком — интервью с деканом | GeekBrains

Что происходит в Android-разработке, зачем учить Kotlin, какой стартовый опыт вы получите в GU

https://d2xzmw6cctk25h.cloudfront.net/post/1889/cover_image/original-8d7940b0dbf868dbc95af352f2fa8916

Александр Аникин — Senior Android developer и декан факультета Android-разработки в GeekUniversity. Он сам изучил профессию в GeekBrains, а сейчас руководит преподавателями и параллельно работает в крупной компании. Я расспросила Александра, что происходит с платформой Android, какие направления развития она предлагает программисту и как приобщиться к ней в GU.

— Привет! Расскажи, пожалуйста, о перспективах Android-разработчика, как ты их видишь. Чем это направление привлекло тебя и чем оно может заинтересовать сегодняшнего новичка?

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

Меня в мобильной разработке привлекает возможность сразу видеть результат своих трудов. Ты пишешь небольшое приложение за пару месяцев, выкладываешь его в Google Play и получаешь отдачу. Можно работать в одиночку или в маленькой команде, где вклад каждого участника важен и очевиден. Для сравнения: если в команде из 500 джавистов писать крупную серверную SAP-систему, результата своей работы можно не наблюдать годами и не увидеть никогда. Думаю, многим важно, чтобы их вклад был заметен.

Есть и еще один момент. Навыки Android-разработки позволяют создавать приложения для себя — полезные инструменты, которые всегда с тобой. Для меня смартфон — это часть жизни, неотъемлемая и интересная. Я понимаю, как работает мой гаджет, расширяю его возможности, делаю его «умнее» и так упрощаю свою жизнь. Это приносит мне удовольствие. И надо помнить, что Android-разработка нацелена не только на мобильные устройства, сфера ее применения гораздо шире.

— Помимо приложений для планшетов и смартфонов, что можно делать?

— Писать софт для Android Auto, телевизоров, часов и других устройств. Android для ТВ отличается от мобильной версии в основном управлением — все действия не через тачскрин, а через пульт.

Еще есть горячее направление Internet of Things: можно писать приложения для управления умным домом. Тут уже больше отличий от мобильной разработки. Умные дома — это тренд, который уже наметился и будет развиваться. Эти технологии ближе, чем кажутся, ведь не обязательно иметь комплекс устройств: лампочки и розетки Wi-Fi — тоже умный дом.

Дополненная и виртуальная реальность — еще одна перспективная область, где нужны программисты Android. Если помнишь, когда появился первый iPhone и задал тренды для смартфонов в целом, это был поворотный момент. Дальше начался бум популярности гаджетов, который не проходит до сих пор. С дополненной реальностью я жду такого же эффекта: в ближайшие несколько лет эта ниша будет расширяться и специалисты будут востребованы.

Будет развиваться индустрия — нужна ведь не только программная часть, но и аппаратная. Уже были «первые звоночки»: Microsoft HoloLens и Google Glass. Но технология еще недостаточно совершенна для реализации таких идей. Как только появятся недорогие и удобные очки (а это случится), произойдет взрыв! Дополненная реальность через смартфоны — это легко и это уже есть.

— Какими из перечисленных направлений вы занимаетесь на факультете Android-разработки?

— Пока мы занимаемся только разработкой приложений для смартфонов и планшетов. Это основа, от которой студенты могут оттолкнуться в дальнейшем изучении программирования и Android. Игры не делаем, потому что в GU есть факультет разработки игр.

Наши студенты изучают мобильную разработку за год и не в формате пятидневки: у нас два занятия в неделю по два с половиной часа каждое. За это время ты получаешь базовые знания, которые позволят устроиться на работу в качестве junior’а. Если ты очень упорно занимался и отдавал этому все силы, тебя могут взять на вакансию уровня middle. Будь у нас два года учебного времени, я бы с удовольствием добавил в программу курс по дополненной реальности.

— Помимо языка Java на факультете преподают Kotlin?

— Да. Недавно мы включили в программу изучение основ Kotlin. По итогам курса студенты пишут приложение для заметок, которое, по аналогии с Google Keep, хранит данные в облачном хранилище Firebase.

В планах — добавить еще курс профессиональной мобильной разработки на Kotlin.

— А еще какого типа проекты ждут студентов факультета?

— Сначала мы пишем погодное приложение, которое показывает сводку по любым городам и регионам. Дизайн интерфейса и дополнительные фичи — на усмотрение слушателей. Затем изучаем принципы Material Design и по этому курсу пишем приложение для просмотра фотографий — по аналогии с лентой Instagram.

Один курс посвящен популярным библиотекам: Dagger, Mosby, Butterknife, Room, Sugar ORM. Отдельный проект по итогу студенты не разрабатывают, вместо этого они внедряют изученные паттерны и библиотеки в свои текущие проекты.

Дальше у нас командная разработка: ребята сами выбирают, что делать, и работают над проектом самостоятельно, а если надо — советуются с преподавателем.

Подчеркну: никто не заставляет писать именно предусмотренные программой приложения. Вместо погодного информера можно разработать что-то свое на базе тех же технологий.

— Что нужно для занятий мобильной разработкой? Как минимум среда разработки и Android-устройство для тестирования?

— Из обязательных требований — только компьютер. Даже Android-девайс иметь под рукой не обязательно, потому что тестировать приложения можно на эмуляторе. Гипотетически, код можно писать и в блокнотике, но на деле, конечно, понадобится среда разработки (IDE). Это бесплатная Android Studio, которую можно скачать из интернета.

Если сравнивать с iOS-разработкой, там тебе нужен Mac, который стоит в 5–10 раз дороже ПК под Windows или Linux. Плюс ты будешь ежегодно платить Apple по 100 $, чтобы иметь право что-то разрабатывать для их устройств. Это создает «имущественный ценз» — порог входа, который в Android-разработке практически отсутствует.

— Как изменилась Android-разработка за последние годы — с момента, когда ты пришел в это направление?

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

Я пришел в Android-разработку четыре года назад — тогда многие использовали IDE Eclipse, и я тоже начинал работать в ней. С тех пор все перешли на Android Studio — среду разработки от Google. Еще появились архитектурные компоненты: стало ясно, какой должна быть архитектура Android-приложений. До недавнего времени все писали кто во что горазд. В число основных языков разработки вошел Kotlin — теперь многие новые приложения изначально пишутся на нем.

— То есть за Kotlin будущее? Почему этот язык так «выстрелил» в Android-разработке?

— Создатели Kotlin плотно работают с Google. А если учесть, что они (JetBrains) создали еще и среду IntelliJ IDEA, на которой базируется гугловская Android Studio, сотрудничество получается очень успешным. Кроме того, Java принадлежит компании Oracle, у которой сейчас правовые проблемы с Google.

Я не вникал глубоко в этот вопрос, но, насколько понимаю, Oracle хочет сделать Java платным для корпоративных клиентов или брать royalties за использование отдельных модулей. А поскольку на этом языке пишется софт для двух миллиардов Android-устройств, Google не в восторге от такого хода. Если бы не юридические препирательства, не уверен, что Kotlin так быстро поднялся бы в этой сфере. Но есть и другие причины.

Возьмем Go и Dart — они со временем наверняка станут официальными языками Android-разработки, но у них узкая специализация. Kotlin позволяет делать все, что может Java, и больше того. На нем можно написать сервер, мобильное приложение, нативную логику, среду сборки — что угодно. Плюс создатели Kotlin добавляют в язык фичи, специально заточенные под Android-разработку.

— Несколько вопросов о тебе: чем ты занимался раньше, как пришел в IT и стал писать для мобильных устройств?

— До Android я всю жизнь занимался маркетингом. Работал классическим маркетологом, мобильным маркетологом, SMM, продакт-менеджером. Потом захотел сменить профессию и начал программировать.

Мобильная разработка интересовала меня давно, потому что я всегда любил гаджеты: оценил прелесть смартфонов, когда они только появились, и следил за проектами в этой области на KickStarter. Специально ездил в Москву на «Горбушку», чтобы купить первый iPhone — тот, который официально в России никогда не продавался. И с тех пор старался пользоваться самыми новыми и современными девайсами.

Идея умного портативного устройства была мне близка еще до того, как я занялся продакт-менеджментом и мобильным маркетингом. Со временем этот интерес только укреплялся и рос.

— С чего ты начал путь в разработку?

— Знакомые разработчики порекомендовали мне начать с Java. И этот совет до сих пор актуален, потому что Java — развитый, хорошо документированный язык с отличным community. Он использует строгую статическую типизацию и подходит новичку. Если ты знаешь Java, тебе легко перейти на Swift, Objective-C, Kotlin, Go, Dart. Это позволяет выбирать практически любое направление.

— Сначала ты пробовал учить язык самостоятельно?

— Да. Месяца два я ковырялся с Java сам, затем понял, что лучше вложить деньги в свое образование и с помощью менторов закрепить и стандартизировать свои знания. Тогда я купил курсы в GeekBrains, прошел обучение и устроился junior’ом на первую работу.

— Какое-то портфолио удалось собрать?

— Если честно, не помню, какие проекты мы делали, но точно могу сказать, что на работу меня брали не за портфолио. Я прошел много собеседований, а провел еще больше — и считаю, что портфолио не важно при трудоустройстве. Работодатель все прекрасно видит по собеседованию и тестовому заданию.

Объемное портфолио нужно только самому программисту — это необходимое следствие твоей работы. Если не будешь постоянно писать код и улучшать его — не станешь разработчиком и не пройдешь собеседование. Но сама по себе подборка твоих прошлых работ никому не интересна, и не факт, что ты захочешь ее демонстрировать.

У меня сейчас дюжина проектов на GitHub, и я никому их не показываю, потому что код, написанный год назад, — это всегда «курам на смех и слезы». Нормальный разработчик развивается постоянно, и если тебе не стыдно за прошлогодний код — ты не растешь.

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

— Через какое время в разработке ты решил преподавать?

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

— Чем ты занимаешься вне GeekUniversity?

— Работаю в крупном банке и пишу для него приложения.

— И там тоже проводишь собеседования? Ты на руководящей должности?

— Чтобы подбирать людей для проекта, не обязательно быть руководителем. Сейчас я разработчик, но да, моя экспертиза востребована, потому что помимо программистского стажа у меня 15-летний опыт руководства и проведения собеседований.

— После учебы в GB ты ведь не сразу устроился в банк? Перед этим работал еще где-то?

— Да. Начинал в небольшой компании, где разработкой занимались два человека: я и технический лид, который меня многому научил. Через два года я перешел на middle-позицию в EPAM. Это крупнейший в мире производитель программного обеспечения.

Компания создает приложения под ключ — решает задачи заказчика силами своих программистов, тестировщиков, архитекторов, консультантов и других специалистов. В EPAM я стал senior’ом и затем перешел в банк, где работаю сейчас.

— А кого-то из выпускников GB и GU тебе доводилось брать на работу?

— Только один раз, но случай интересный. В октябре 2018 года ко мне пришел выпускник курса, который я вел годом ранее. Это был один из активных студентов, поэтому я его помнил. Он рассказал, что уже 6 месяцев трудится Android-разработчиком и хочет устроиться к нам преподавать. Мы провели собеседование, он его не прошел: не хватало базовых знаний для ведения вебинаров. На мой взгляд, преподавателю, который ведет курсы Android-разработки первого и второго уровня, нужна очень хорошая теоретическая подготовка. Потому что студенты, еще мало знакомые с Java, могут задать любой вопрос — не только про Android, но и по смежным направлениям. И ты должен быть готов хотя бы в общих чертах говорить о вещах, с которыми на практике не сталкивался.

Кандидат не сдался: подтянул свои знания, через месяц вернулся и успешно прошел собеседование. Теперь он преподает у нас. По сути, он сделал то же, что и я в свое время. Настойчивость приносит результаты в разработке и не только. Приятно, когда человек, который у тебя учился, достигает поставленных целей в профессии.

— Спасибо тебе за содержательный рассказ: мы успели затронуть много тем! Ждем вопросов в комментариях.

google-developer-training / android-advanced: приложения-решения для приложений, которые студенты создают в ходе учебного курса Advanced Android Development, созданного Google Developer Training.

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
    • Изучите GitHub →
    Учитесь и вносите свой вклад
    • Темы
    • Коллекции
    • В тренде
    • Учебная лаборатория
    • Руководства с открытым исходным кодом
.

Обучение разработчиков Google · GitHub

перейти к содержанию обучение разработчиков google Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
    • Изучите GitHub →
    Учитесь и вносите свой вклад
    • Темы
    • Коллекции
    • В тренде
    • Учебная лаборатория
    • Руководства с открытым исходным кодом
    Общайтесь с другими
    • События
    • Форум сообщества
    • GitHub Education
    • Программа GitHub Stars
  • Торговая площадка
.

GitHub — обучение разработчиков google / android-kotlin-основы-стартовые приложения: android-kotlin-basicals-starter-apps

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
    • Изучите GitHub →
    Учитесь и вносите свой вклад
    • Темы
    • Коллекции
    • В тренде
    • Учебная лаборатория
    • Руководства с открытым исходным кодом
.

GitHub — обучение разработчиков google / android-kotlin-basicals-apps: android-kotlin-basic-apps

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
    • Изучите GitHub →
    Учитесь и вносите свой вклад
    • Темы
    • Коллекции
    • В тренде
    • Учебная лаборатория
    • Руководства с открытым исходным кодом
    Общайтесь с другими
      .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *