Несколько лет назад я, как и другие начинающие Android-разработчики, решил найти работу в этой сфере.
Если вы новичок и не знаете с чего начать обучение Андроид , или если вы уже имеете некоторые знания по этой теме и планируете в ближайшее время устроиться на работу, то этот материал для вас.
По задумке, к этой статье вы вернетесь по мере накопления опыта: посмотрите, на каком этапе вы сейчас находитесь и что изучать дальше.
Как все началось
Я успешно работаю в сфере системного администрирования более двух лет. Изучив рынок Я понял, что мне нужно двигаться дальше и что-то менять.Мой интерес к технологиям рос, и я остановился на программировании, а именно на языке Джава .
я начал учиться Ява SE с нуля.
Планировалось полное погружение в Ява SE , а затем в Java EE .
Но в середине учебы Ява SE , запустил обычный проект Hello World на Андроид .
И мои взгляды на будущее сильно изменились.
Весь путь от первого «погружения» в программу до предложения о работе занял 1 год.
Быть или не быть?
Выбор Андроид нужно хорошо подумать, так как он движется семимильными шагами.Каждый год стабильно выпускается новая версия, содержащая множество нововведений.
Кроме того, определенный процент существующих приложений может даже не запуститься в новой версии.
Вам предстоит решить эти проблемы.
Какой язык вы можете использовать для разработки для Android?
1. Официально, Google предложил два варианта- Android SDK .
Официальные языки - Джава И Котлин .
Большинство существующих проектов написаны на Джава .
Котлин внук Джава .
Некоторые разработчики начали активно использовать его в своих проектах.
(Но их не так много по сравнению с Java) Андроид официально начал поддерживать Kotlin с 17 мая 2017 года.
языковые возможности будут встроены в Android Studio 3.0.
- Android НДК .
Официальные языки - С/С++ .
сам Google рекомендует используйте NDK в тех случаях, когда требуется максимальная производительность.
(В одном из наших проектов мы использовали NDK для организации голосовой связи)
С чего начать изучение Android
Возможно, вы заметили кроссплатформенные инструменты или в Котлин , но торопиться не надо.С помощью кроссплатформенные инструменты могут быть разработаны немедленно и под Андроид И iOS .
Кроссплатформенные инструменты способны решать определенный круг задач, но по гибкости никогда не сравнятся с нативными решениями.
Более того, такие специалисты не пользуются большим спросом на рынке труда.
Касательно Котлин , сегодня нет компаний, у которых на нем написаны абсолютно все Android-проекты.
Я думаю, Котлин Учиться стоит только после трудоустройства.
Рекомендую начать обучение с Джава .
Особенно, если у вас нет опыта программирования.
Изучение Java
Требуемые знания- Типы данных.
(Примитивный и эталонный)
- Циклы( для/пока/для каждого )
- Устройство памяти в Джава ( Стек, Куча ).
Также важно понимать, как и на каком уровне это работает. Сборщик мусора
- Методы - возвратные/невозвратные
- Массивы и коллекции, а также операции с ними (Сортировка)
- ООП (полиморфизм, наследование, инкапсуляция, абстракция)
- Компаратор И Сопоставимый (для сортировки предметов)
- Потоки И работоспособный , чтобы понять, как работает многопоточность в Java.
- Исключения (попробуйте/поймайте/наконец-то) - «ловить» ошибки
- Дженерики (Общие типы)
На мой взгляд, этого более чем достаточно.
В Интернете есть много хороших ресурсов для изучения.
Джава И Андроид .
Я коснусь только тех, которые изучил сам.
1. ДжаваРаш Самым первым ресурсом для обучения был JavaRush. Мне кажется, достаточно будет пройти бесплатный курс «Синтаксис Java», состоящий из 10 уровней.
Сам ресурс явно заслуживает внимания, несмотря на некорректность многих задач и весьма заметные недостатки валидатора.
Многие скептически относятся к этой услуге и считают, что тратить на нее время не стоит. Я и хвалю, и резко критикую этот ресурс, как и мои нынешние коллеги, начинавшие вместе со мной.
JavaRush даст вам хороший старт и хорошо улучшит ваши алгоритмы.
Но зацикливаться на этом явно не стоит. 2. Java Core от Ивана Головоча Параллельно с JavaRush я также смотрел видеолекции Ивана Головоча, которые на мой взгляд являются лучшими Джава в Рунете.
Сегодня мало кто способен одновременно хорошо программировать и хорошо объяснять вещи.
Именно эти лекции закрепили знания, полученные в JavaRush. Лекции по Ядро Java Рекомендую посмотреть полностью.
Изучение Android
Требуемые знания- XML - на нем придется проектировать интерфейсы
- Активность/Фрагменты — «формы» для макета пользовательского интерфейса.
Необходимо знать их различия, жизненные циклы, манипулирование данными( onActivityresult )
- Намерения — передача данных между Активность , открытие сторонних приложений
- Пучок — передача данных между Фрагменты , сохранение состояния экрана
- Базовые адаптеры для Просмотр пейджера , RecyclerView , Спиннер
- НавигацияView — Меню навигации «Штора»
- Диалог, ДиалогФрагмент — Диалоговые окна (например, с текстом и кнопками «Да», «Нет»)
- Асинктаск - Многопоточность в Андроид
- Общие настройки — Для сохранения настроек и небольших данных
- Услуга - Выполнение длительных операций в фоновом режиме
- SQLite - База данных.
Теряя популярность, они также используют его практически во всех новых проектах.
ОРМ .
Но в старых проектах вы обязательно встретите
- Работа с ресурсами: строка, цвет, стили, размеры, анимация
- Манифест файл, разрешения — Описание компонентов программы и разрешений
В курсе максимально понятно объясняется основная концепция развития под Андроид .
После этого курса я написал свое первое приложение — генератор паролей, сохраняющий состояние экрана при переворачивании.
2. Видеолекции StartAndroid Бесплатные видеолекции с ресурса StartAndroid стали хорошим дополнением к Udacity. Не рекомендую смотреть старые уроки (2012-2013 гг.
), потому что.
технологии уже давно шагнули вперед. Но с начала 2015 года дела идут неплохо.
Они также существуют в текст формат. Чат и канал StartAndroid в Telegram
- Запустить Android Ру Чат @startandroidchat
- Запустить Android Ru канал @startandroid
Я все еще рассматриваю некоторые моменты в этом блоге.
Каждая тема осваивается на практическом примере с подробным объяснением.
4. Devcolibri — полное приложение для Android Пройдя курс от Udacity, у меня возникла идея начать писать свое первое тестовое приложение.
После недолгих поисков я нашел хороший курс от Devcolibri, в котором объяснялась концепция разработки на примере написания простого диспетчера задач.
Просматривая этот курс, я параллельно начал делать и свое приложение, почерпнув из урока различные хитрости.
Технологии и инструменты для Android Junior
В Сообщество разработчиков Android в Telegram , появился вопрос на эту тему, мой ответ приравняли к завышенным с точки зрения требований для Юниора.(я описал Модернизация2 в сочетании с RxJava , Также Кинжал2 , Область И Пикассо ).
Стоит отметить, что уровень требований к Android Junior практически во всех студиях разный.
Кто-то нанят и с исходный знание Андроид , без техники в принципе.
Но это редкость, и я не был одним из таких счастливчиков.
Чем больше вы знаете, тем выше ваши шансы получить работу.
Итак, поехали: 1. Гит Это система контроля версий кода.
Позволяет активно работать в команде, отслеживать изменения в коде и откатываться к предыдущим версиям, что очень удобно.
Я советую тебе пойти хороший курс от КомпьютерщикМозги .
Как клиент Git, я рекомендую использовать Исходное дерево , потому что это совершенно бесплатно и удобно, а студии очень любят экономить на софте.
2. Нож для масла Удобная библиотека для деклараций вид -элементы из XML .
(Да и не только).
Он изучается очень быстро и сокращает определенное количество рутинного кода.
3.Модернизация2 , RxJava , RxAndroid , OkHttp журналирование InterCeptor Модернизация2 — REST-клиент RxJava — модуль реактивного программирования на Java RxAndroid — Модуль реактивного программирования для Android OkHttp журналирование InterCeptor — модуль логирования HTTP-запросов (часть библиотеки ОкHttp ) Достаточно знать основы работы в этом направлении.
(Например, уметь разбирать JSON с данными) Не копайте с самого начала RxJava глубокий.
Значительная часть Android-разработчиков использует его исключительно в связке с Retrofit2. Полезные статьи 1. Обучение модернизации 2 2. Retrofit2: Загрузка файлов на сервер 3. Дооснащение2 + RxJava + RxAndroid 4. Кинжал2 Библиотека для внедрения зависимостей.
Достаточно также знать основы, а именно, как реализовать простейшие зависимости.
Полезные статьи 1. Dagger 2 и структура приложения Android 2. Основы Dagger2 3. Кинжал 2. Лечение зависимостей методами Google Чат в Telegram: @dagger_2 5. Царство База данных.
В некоторых отношениях это быстрее, чем SQLite .
Правда, в производственных проектах он пока используется не так часто, т.к.
стабильная версия вышла относительно недавно.
Но, на мой взгляд, будущее локального хранения данных за Андроид именно для Область .
Достаточно взглянуть на это на абстрактном уровне — разобрать базовые транзакции.
Сравнительные характеристики ORM и баз данных 6. Пикассо Библиотека для работы с изображениями.
Чаще всего его используют для загрузки изображений из сети.
Чрезвычайно прост в использовании.
7. Шина событий Библиотека для отправки сообщений.
Этому стоит научиться, но я бы не рекомендовал использовать его в реальных проектах, потому что.
EventBus очень сложно сохранить в будущем.
Но, к сожалению, в реальных проектах вы часто будете с этим сталкиваться.
Упражняться
Как правило, кандидаты с существующими заявками на GitHub шансы на трудоустройство выше.(Особенно если они используют все технологии, которые я описал).
Чтобы увеличить ваши шансы на трудоустройство, я рекомендую написать тестовое приложение, которое закрепит полученные знания.
Каким оно должно быть и что оно должно делать – решать вам.
Лично мне кажется, что неоспоримым преимуществом перед другими кандидатами будет приложение, которое загружает некоторые данные из сети и отображает их в удобном для пользователя формате.
При этом, если у пользователя нет Интернета, из базы данных загружаются самые свежие актуальные данные.
Если вы не нашли подходящего вам API, не проблема, сгенерируйте несколько файлов JSON, используя данный ресурсы и использовать их.
Они будут смотреть не на полезность вашего приложения для мира, а на то, как вы его реализовали.
Мое приложение скачало из сети список менеджеров компании и показывало график выполнения плана продаж.
Уже в процессе его разработки мне поступило предложение о работе.
Моей самой большой ошибкой при разработке этого приложения было то, что я старался сделать все идеально.
По стандартам, чтобы мой код оценили.
Имея весьма абстрактные знания о MVP , я попробовал встроить его в проект, тем самым еще больше запутав свой код. Вы не сможете сделать свое первое приложение идеальным, как бы вы ни старались.
Мне кажется, не стоит использовать MVP , если не хотите еще больше запутаться.
(В будущем, после трудоустройства, оно того определенно стоит).
В процессе разработки у вас может возникнуть много вопросов.
Не имеет значения, если вы не знаете ни одного разработчика Android. Не стесняйтесь задавать свои вопросы на Переполнение стека (возможно в Русский язык).
Также вопросы можно задать в Telegram-каналах.
Полезные каналы чата в Telegram
- Запустить Android Ру Чат @startandroidchat
- Запустить Android Ru канал @startandroid
- Android-разработчики — русскоязычное сообщество @android_ru
- Работа в сфере мобильных разработчиков - вакансии и аналитика @mobile_jobs
- Архитектура Android — обсуждение архитектуры приложений @Android_Architecture
- Архитектура Android – сводка (сводка обсуждений в чате по архитектуре Android) @Android_Architecture_Summary
- Кинжал2 @dagger_2
- ReactiveX — русскоязычное сообщество (Rx) @reactivex
- Moxy — MVP библиотека для Android (рекомендую читать только после трудоустройства) @moxy_ru
- Android NDK (C++) — русскоязычное сообщество @ndk_ru
- Android Arsenal (библиотеки для Android) @androidарсенал
- Android ResId (новости и ресурсы Android) @AndrResIdFb .
Собеседование с работодателем и результаты
Если говорить о вопросах для интервью, то в целом у всех студий свой взгляд на этот счет. В большинстве случаев спрашивают Джава и по Android SDK и по технологии.Но иногда встречаются места, где вас просто просят показать пример вашего рабочего кода и спрашивают, почему вы сделали именно так здесь.
Нужно быть готовым как к первому, так и ко второму.
В нашей компании я делю техническую часть первичного собеседования с кандидатами на 3 этапа: 1) Вопросы о Ядро Java и ООП (см.
Изучение Java) 2) Вопросы о Android SDK (см.
Изучение Android) 3) Вопросы о технологиях и инструментах (см.
Технологии и инструменты) На втором этапе собеседования, как правило, дается небольшое техническое задание или анализируется существующий код. В 80% случаев интервьюеры задают одни и те же вопросы.
Вот и все.
В следующей статье мы подробно разберем самые популярные вопросы на собеседованиях.
Android SDK и такие технологии, как Кинжал2 , Модернизация2 , RxJava И Область .
Теги: #разработка под Android #младший разработчик #младший разработчик #java #java #разработка под Android
-
Новые Вызовы Из Мира Непрерывной Доставки
19 Oct, 24 -
Организация Работы С Помощью Google Wave
19 Oct, 24 -
Обобщение Проблемы Брокара.
19 Oct, 24 -
Как Выбрать Соучредителя
19 Oct, 24