Хочу стать android developer. что, где и как учить

Что нужно знать и уметь?

Вначале рассмотрим общение требования, которые не зависят от специализации. Итак, вам потребуется знать:

  1. Структуры, алгоритмы, принципы ООП, сетевые протоколы.
  2. Базы данных, в частности, SQL.
  3. Понимание принципов дизайна и проектирования приложений, создания адаптивных интерфейсов под разные разрешения и ориентации экрана.
  4. Работа с многопоточностью.
  5. Система GIT.
  6. Желательно знать английский язык на уровне чтения и понимания документации.

Далее все зависит от специализации. Ниже находится список навыков, которые требуются для разработки под Андроид или операционную систему компании Apple:

Android

iOS

  • Языки программирования Java и Kotlin.
  • Программа Android Studio (в ней ведется разработка приложений).
  • Принципы ОС Android, как она функционирует.
  • Уметь пользоваться фреймворками и библиотеками с готовыми решениями типовых задач.
  • Требования к приложениям со стороны Google Play и правила для прохождения модерации.
  • Языки программирования Swift и Objective-c.
  • Среда разработки Xcode и использование iOS SDK.
  • Формат JSON для обмена данными.
  • Принцип работы iOS, ее особенности.
  • Правила модерации приложений в App Store и список требований к ним.

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

Режим разработчика на других смартфонах

На других смартфонах зайти в режим разработчика можно аналогичным образом:

Шаг 1. Откройте настройки Android.

Шаг 2. Найдите пункт «О телефоне». Обычно находится в самом низу.

Шаг 3. Прокрутите вниз и найдите «Номер сборки». Несколько раз нажмите по нему. На экране появится надпись, свидетельствующая о том, что вы стали разработчиком.

Шаг 4. Вернитесь в главное меню настроек Android и выберите раздел «Система».

Шаг 5. Нажмите на пункт «Дополнительно», чтобы открыть дополнительные параметры.

Шаг 6. Нажмите на кнопку «Для разработчиков», чтобы открыть меню скрытых настроек.

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

Файлы проекта

окно Android Studio Project содержит следующие файлы (убедитесь, что в раскрывающемся меню выбрано представление Android):

приложение > Java > com. example. мифирстапп > MainActivity

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

> макета > > приложений activity_main.xml

XML-файл, определяющий макет пользовательского интерфейса действия. Он содержит элемент TextView с текстом «Hello World»

манифесты > приложений > AndroidManifest.xml

Файл манифеста, описывающий фундаментальные характеристики приложения и всех его компонентов.

Gradle скрипты > сборка. Gradle

существует два файла с таким именем: «Project: мое первое приложение», для всего проекта и «модуль: приложение» для каждого модуля приложения. В новом проекте изначально будет только один модуль. Используйте файл build. File модуля, чтобы управлять тем, как подключаемый модуль Gradle создает приложение. Дополнительные сведения о настройке сборки см. в разделе Руководство разработчика для Android.

Как найти работу начинающему специалисту?

Поскольку профессия востребована, то найти хорошую работу может и новичок, если будет следовать советам:

  1. Освойте необходимые знания и навыки самостоятельно или на курсах.
  2. Начните с выполнения простых задач на Java и переходите к более сложным.
  3. Когда вы почувствуете себя уверенно, попробуйте создать несколько простых приложений.
  4. Используйте данные приложения как портфолио при устройстве на работу. Обязательно выложите их на Google Play. Также полезно выложить свои работы на GitHub.
  5. Составьте резюме, в котором опишите все ваши знания и укажите ссылки на примеры работ.
  6. Найдите вакансии Junior программиста на Андроид и попробуйте пройти собеседования. Если вам откажут, обязательно спросите, каких знаний и навыков не хватило для трудоустройства. Ликвидируйте эти пробелы и пробуйте повторно пройти собеседования.
  7. На старте карьеры вас могут не взять в крупные компании. Пробуйте устроиться на работу в небольшие команды. Так проще найти работу и получить необходимый опыт для дальнейшего роста.

Чем занимается Android-разработчик

Создаёт приложения и поддерживает их работу, — в частности:

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

Это особо важно для банковских и финансовых программ;
тестирует приложение на разных этапах разработки;
создаёт внутреннюю документацию и мануал для пользователей;
загружает готовый продукт в Google Play;
изучает пожелания пользователей и готовит обновления.. Эти обязанности обычно распределяются между членами команды

Например, за интерфейс и логику часто отвечают дизайнеры, но бывает и так, что всем занимается один программист

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

Android Jetpack

Много чего вышло из беты:

  • CameraX — для легкой работы с камерой, в том числе с HDR, зумами, экспозицией.

  • Hilt — dependency injection на базе Dagger.

  • Paging 3.0 — для легкой загрузки и показа порций данных. 

  • ConstraintLayout — для проектирования макетов, MotionLayout — API для управления движением и анимацией виджетов.

  • Security Crypto — позволяет безопасно и легко шифровать файлы и SharedPreferences.

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

В бету перешёл DataStore — надежное решение для хранения данных, которое нормально работает с Flow и RxJava и устраняет недостатки SharedPreferences.

В альфе немного обновились библиотеки:

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

  • Room — средство безопасной работы с SQLite.

  • WorkManager — рекомендуемый Android способ планирования отложенных асинхронных задач, которые выполняются даже при выходе приложения или перезапуске устройства.

  • Navigation — фреймворк Jetpack для перемещения между экранами приложений.

  • Macrobenchmark — расширяет охват бенчмаркинга Jetpack до запуска приложений и локального поведения типа производительности прокрутки.

  • Библиотека EmojiCompat — поддерживает emoji, начиная с Android 19 (4.4). Добавили emoji2-формат с большим количеством вариантов emoji.

  • Можно также делиться своим шорткатом для Google Assistant в библиотеку шорткатов через ShortcutManager. 

Начальные знания

Минимальные знания, которые вам необходимы:

  • английский;
  • основной язык программирования. В нашем случае — Java и Kotlin;
  • Android SDK, Android-библиотеки;
  • Git, SQLite.

Английский

На первых порах вам будет нужен английский на уровне чтения технической документации. Это Elementary — Pre-Intermediate level. Навряд ли на Junior-позиции вы будете участвовать в митингах, хотя и такое бывает. Но читать документацию и делать уроки придется много. И вот тут другая ситуация: без курсов английского или преподавателя, особенно сначала, будет сложно.

Чаще всего английский проверяют простыми вопросами: расскажите о себе, своих достижениях, о последнем проекте. И так далее.

Вот несколько полезных ресурсов: LinguaLeo, Urban Dictionary, чтобы понимать, что такое AFA, IK, LGTM, TIL, TL;DR и прочие абракадабры.

Отличные переводчики, которые показывают и контекст с примерами. Старайтесь больше переводить в них, а не просто в Google Translate: Reverso Context, The dictionary by Merriam-Webster.

Java

Когда я учил Java, то выделил для себя два самых лучших ресурса:

  • «Java. Библиотека профессионала, том 1. Основы». Читать все, кроме глав о Swing и апплетах (в моем издании это 7–10). Android-программисту это знать не нужно. Кстати, эту книгу мне посоветовали после собеседования, за что я очень благодарен интервьюеру.
  • И, конечно же, Java official documentation.

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

Kotlin

У Koltin шикарнейшая официальная документация: Learn Kotlin. Стоит, конечно же, начать с Getting Started и идти дальше по списку. Multiplatform Programming, JavaScript, Native можно пропустить. Также советую Learn Kotlin for Android from Google.

Android

Говорить о ресурсах по Android можно бесконечно, но рекомендую начать с ниже перечисленных. Еще о полезных источниках вы можете узнать в Telegram-каналах, которые будут в пункте Subscriptions. В конечном итоге желательно уметь выполнить тестовое задание, о котором будет дальше.

  1. Start Android — один из самых первых сайтов по обучению Android, про который я узнал. Он появился еще в 2011 году. Поэтому какая-то информация может быть не совсем актуальна, но все же там подробно и хорошо изложены азы, тем более на русском.
  2. Сейчас появились разные замечательные Android Academy. У которых, кроме офлайн/онлайн-занятий, есть YouTube-каналы с видео для начинающих. Например: Android Academy Global, Android Academy Minsk.
  3. Официальная документация от Google. Большую часть времени стоит уделить именно ей:
    • Developer Guides — документация по Android framework.
    • Android Jetpack — унифицированное решение от Google для часто встречающихся задач. Сейчас это уже стандарт для многих решений.
  4. Architecture components samples — Architecture components — это часть Android Jetpack. В этом репозитории найдете примеры, как их использовать.
  5.  — примеры реализации архитектур от Google.

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

Что должен знать будущий Android-разработчик

Чтобы стать востребованным специалистом, новичку нужно изучить:

  • языки программирования Java и Kotlin, на которых написано большинство приложений;
  • среду мобильной разработки Android Studio. В ней настраивают интерфейс продукта и программируют его логику;
  • общие принципы разработки: оформление кода, как правильно именовать функции и переменные, как разделять код на файлы и многое другое. Не обойтись и без основ ООП;
  • языки HTML, CSS, язык разметки XML;
  • базовые принципы дизайн-концепций и дизайн-систему Google — Material Design;
  • операционную систему Android (это проект с открытым исходным кодом). Нужно знать её файловую структуру, функции и принципы работы;
  • популярные фреймворки и библиотеки для мобильных приложений;
  • распределённую систему управления версиями Git и GitHub (сервис для проектов, использующих Git) — для совместной работы с членами команды и публикации портфолио;
  • unit- и UI-тестирование ПО, чтобы определять качество работы, тестировать гипотезы и отдельные фишки приложения;
  • основы алгоритмизации (это поможет не остаться кодером — стать программистом);
  • английский на уровне, достаточном для чтения учебных материалов (в частности документации).

Есть мнение, что программирование — это на 90% поиск ответов и только на 10% написание кода. Поэтому на вопрос «С чего начать учить программирование?» логичнее всего ответить — с английского языка.

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

Плюсы и минусы профессии

Плюсы

  1. Доступная стоимость обучения.
  2. Высокая заработная плата в любом регионе страны.
  3. Лучшие условия труда: отличный коллектив, удобное рабочее место, оснащенное лучшими девайсами, социальный пакет.
  4. Постоянное взаимодействие с людьми.
  5. Создание полезного ПО.
  6. Карьерные перспективы.
  7. Специалисты, занимающиеся разработкой программных продуктов для Android, востребованы.
  8. Современная профессия.
  9. Можно работать на себя, получая доход от созданных приложений постоянно.

Минусы

  1. У молодого разработчика может не хватать средств для стартапа мобильных приложений.
  2. Профессия не подходит для творческих людей с гуманитарным складом ума.
  3. Завышенные требования заказчиков.
  4. Разработчики для Android,трудящиеся в компании, не могут самореализоваться.
  5. Необходимость вносить постоянные правки в созданный продукт.

Стоит ли идти в мобильную разработку

Владимир, скажите: Почему все пошли в мобильную разработку? 

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

Если сравнить стоимость мобильного телефона 7 лет назад и сегодня, то сегодня он стоит… скажем, как 15–20 кг мяса. Это не такие большие деньги — отсюда массовость.

Больше мобильных устройств — нужны приложения, отсюда спрос.

Действительно ли спрос такой большой или нас в этом пытаются убедить создатели курсов?

Спрос на мобильную разработку не раздутый, наоборот — неудовлетворенный. 

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

Почему выбирают именно мобильную разработку, в чем ее преимущество перед другими IT-специальностями?

Главное преимущество мобильной разработки — она находится в золотой середине по скорости изменений и сложности кода.

Для сравнения, в Web-разработку легко войти, задачи сравнительно несложные, но изменения происходят примерно каждые 2–3 месяца. Не изучили вовремя новые технологии — ваши знания устарели.

Если брать программирование на языках вроде Java и C# — нужно много думать, все логично, структурировано. Но стать таким специалистом непросто.

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

Мобильная разработка находится посредине. 

Она сложнее Web-разработки, но не настолько, как C++, чистая Java, C#. При этом проекты не такие большие, чтобы устаревать. Мы находимся на пике технологий но они меняются не раз в 2 месяца, а, например, раз в год.

И вы сразу видите результаты своей работы — приложение на экране своего смартфона.

Что выбрать: Android или iOS?

Я бы не стал говорить, что одно лучше, другое — хуже. 

Преимущество Android в том, что его используют в 70% устройств, значит, больше спрос. 

Плюс, в iOS есть сложности на старте. Для разработки нужна техника Apple. Чтобы создать и поддерживать аккаунт разработчика, нужно платить примерно $100 в год. 

Я бы рекомендовал начать с Android, а позже — доучиться разработке на iOS или кросс-платформенной разработке. 

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

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

Responsibilities of Android Developers

Let’s first cover the question of responsibility. There are several main responsibilities you will be faced with being an Android software developer, although these may vary depending on the company.

Image created by Vlad K., Cleveroad

Building App Functionality and UI

Of course, the main task of any Android developer is to create the app’s design and build its functionality. This includes writing clean code and building a well-thought-out architecture, as well as considering possible bugs and trying to avoid them.

Collaborating with Other Team Members

It is extremely important for all software engineers to build and maintain effective communication with other members of the team like UI/UX designers, back-end developers, etc. Since in most companies every member of the team performs a specific role, good communication is key to building superb products.

Tackling Databases and APIs

An Android developer commonly has to work with external sources such as various APIs and databases. This means you should be skilled enough at dealing with third-party code written by other software engineers. We will talk about this a bit more later.

Performing Unit Testing

Unit testing—which is also called module testing—is often an integral part of the software development cycle. It is actually included in the Agile software development methodology, which many companies use. You should unit test your app throughout the development process.

Fixing Bugs

Bugs unfortunately just come with the territory of Android app development. Your task as an engineer is to find at least a portion of those bugs in your code, as well as fix the bugs that were found by other team members like Quality Assurance (QA) engineers.

Staying Up-to-Date on New Technologies

Being a software engineer means mastering new skills and gaining fresh knowledge all the time. It is barely possible to be a good developer in today’s rapidly developing high-tech world without paying due attention to learning.

Those are the basic responsibilities of Android developers, but definitely not all of them. Keep in mind that responsibilities usually differ from company to company and depend on your working experience.

Где набраться опыта

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

Какие могут быть варианты:

  • Практика над реальным open-source проектом включена в учебный план.
  • Онлайн-школа приглашает лучших студентов на стажировку в собственные подразделения или рекомендует партнерам.
  • На защите дипломов присутствуют представители компаний, которым требуются стажеры.

На онлайн-курсе вы разработаете несколько приложений, из которых сможете составить портфолио.

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

Как пройти собеседование и найти работу

Насколько сейчас легко найти работу и стоит ли идти на фриланс? 

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

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

Тем не менее, находить работу становится легче. Если 3 года назад среди Junior’ов была бешеная конкуренция, то сейчас ее меньше. Работы становится больше, люди осмысленнее подходят к тому, хотят ли они стать разработчиками.

Сколько в среднем может уйти времени на поиск первой работы?

От начала обучения 1–1,5 года. 

Нельзя играть в быструю: возьму отпуск на 4 месяца и стану программистом. Так не получится. Но если не бросать и заниматься этим, то где-то за год — реально.

Сколько может заработать разработчик мобильных приложений?

Junior — от $800 до $1500.

Не надо пугаться, что это мало. Junior — это не навсегда. 

Уже через год можно стать Middle и получать $1500–3500

Senior получает от $5000 до $10 000. 

Средняя зарплата Android-разработчика в Украине, по данным портала Work.ua

Как пройти собеседование и получить работу?

На собеседовании смотрят на 3 вещи:

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

А чтобы выбрать хорошую компанию, смотрите, как с вами общаются. Если спрашивают, как вы относитесь к переработкам, то с высокой вероятностью они будут.

Как выбрать курс и нужно ли учиться в университете

Насколько хорошо учат программистов в университете?

Мое отношение к университетскому образованию айтишников — среднее. Это не бесполезно, но после университета вы еще не готовы быть разработчиком. 

За те 5 лет, которые вы будете учиться в университете, уже 2–3 раза изменятся технологии. Поэтому университет надо рассматривать, как базу, которая учит мыслить и дает фундамент. Потом надо будет доучиваться на курсах.

На что стоит смотреть при выборе курсов?

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

На бренд я бы не рекомендовал смотреть. Есть крупные школы, которые ругают, есть маленькие — которые хвалят. 

Что должно быть в курсе, чтобы человек вышел хорошим специалистом?

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

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

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

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

2. Заводская разблокировка. Разблокировка загрузчика на вашем смартфоне/планшете позволяет в дальнейшем использовать кастомное рекавери и прочие плюшки. К примеру, на устройстве с заблокированным загрузчике нет возможности попасть вменю восстановления Android и вернуть систему в первоначальный вид/установить новую ОС.

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

3. Работающие приложения. Всем известно, что в Windows есть диспетчер задач, где отображаются какие процессы запущены в данный момент. Это позволяет понять, что работает в конкретный момент и почему компьютер работает не стабильно, что потребляет большую часть ресурсов. В стандартных настройках устройств на Андроид вы не найдете подобного аналога, поэтому функция «Работающие приложения» может оказаться весьма полезной.

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

4. Режим отладки по USB. Одна из немногих функций, которая необходима в первую очередь разработчикам. Основная цель режима отладки по USB заключается в выполнении конкретных действий на вашем устройстве посредствам передаваемых команд с персонального компьютера. К примеру, подключившись к Adnroid SDK у пользователей появится возможность через компьютер установить приложение, получить необходимую информацию и даже получить ROOT-доступ.

Android Studio

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

После запуска программы вначале отображается начальный экран. Нажимаем на «Check for updates now» в нижней части начального экрана и, при необходимости, получить последнюю версию продукта. В ряде случаев программа отображает уведомление о доступных обновлениях.

Soft skills

Мой коллега, который проводил собеседования, рассказал историю. На интервью есть ребята, которые отвечают хорошо, но все же что-то не знают. И вот был единственный кандидат, который ответил на 100% вопросов, и рекрутеру с радостью сказали «Нужно брать». А рекрутер подумал и ответил: «Нет, не берем, он какой-то неприветливый и вообще асоциальный».

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

Так что be nice 🙂

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

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

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

Adblock
detector