С каждым годом мобильные приложения становятся неотъемлемой частью нашей повседневной жизни, укрепляя свою позицию. Они интегрировались в различные аспекты делая нашу жизнь более удобной. В свете растущего интереса к сфере IT, не мало людей стремятся попасть в мир мобильной разработки, будь то Android или iOS.
В этой статье мы поговорим про разработку на платформе Android, рассмотрим на что может рассчитывать Junior Android Developer и какие навыки ему для этого потребуются. Кроме того, предоставим ресурсы и материалы, которые помогут в приобретении необходимых навыков.
Кто нанимает junior-ов и на каких условиях?
Спрос на junior разработчиков, включая мобильных, с каждым годом снижается. Это связано с тем, что компании все меньше готовы выделять время и деньги на развитие таких специалистов. Зачастую, после обучения и приобретения необходимого опыта, они уходят в поисках более выгодных предложений.
2024 год продолжает тенденции 2023, конкуренция на позицию junior разработчика остается высокой. Это обусловлено большим количеством курсов, обещающих превратить студента с нуля в junior разработчика за достаточно короткий срок.
Я сам не обучался на онлайн-платформах, поэтому не могу поделиться личным опытом. Однако могу поделиться ссылками на исследование некоторых платформ:
Материалы могут быть устаревшими, а процессы могли измениться (мы на это надеемся), но стоит посмотреть, если вы решите приобрести курс. Это относится не только к этим платформам; в целом ситуация примерно одинакова. Не пренебрегайте чтением отзывов на форумах и сайтах, где кроме похвалы, имеется хотя бы некоторая доля критики.
В связи с этим, базовых знаний уже давно недостаточно, претендуя на позицию, необходимо обладать более уверенными и продвинутыми навыками.
Теперь перейдем к, вероятно, самому интересному - финансовой мотивации. Разберем, как обстоят дела и какую зарплату можно ожидать.
На момент проведения мониторинга (февраль 2024 года) было рассмотрено около 1100 вакансий. Большинство предложений были адресованы специалистам с опытом работы от трех до шести лет. Только 3,9% работодателей были готовы принять кандидата без коммерческого опыта.
Зарплата на позицию junior, согласно информации на HH.ru, варьируется от 60 000 до 120 000 рублей, в зависимости от имеющихся навыков.
Согласно данным сайта getmatch, junior может рассчитывать на сумму от 50 000 рублей.
Аналогичные цифры показывает и Хабр Карьера:
Данные приведены для Москвы, однако вы можете самостоятельно проверить актуальную информацию для вашего региона на соответствующих сайтах.
Как видим, junior может претендовать на вилку от 50 000 до 80 000 рублей в зависимости от опыта и компании. Дальше углубляться в это не будем. Если вас интересует более подробная информация о заработной плате и технологических компаниях, вы можете прочитать специализированные статьи:
Зарплаты IT-специалистов во второй половине 2023: -15% за счет регионов
Лучшие IT-работодатели России 2023: ежегодный рейтинг Хабр Карьеры
Требования к навыкам
Hard skills (технические навыки) - это конкретные знания и умения, относящиеся к определенной области или профессии, которые можно измерить и оценить. Эти навыки обычно являются специализированными и прямо связаны с выполнением определенных задач.
Когда дело доходит до технических навыков, обычно никто не строит больших планов, особенно для начинающих специалистов. Зачастую интересно слушать, как они подходят к задаче и обсуждают ее решение. Если они ошибаются, в этом нет ничего страшного. В ходе обсуждения можно плавно подвести их к правильному ответу. Главное, чтобы они не молчали.
Примеры hard skills, которые обычно ожидаются от кандидатов со стороны работодателей:
Знание Kotlin
Опыт работы с архитектурными шаблонами MVP, MVVM, MVI
Применение библиотек RxJava/RxKotlin
Опыт работы с Coroutines
Опыт использования библиотек Room, Hilt, Dagger, Retrofit, OkHttp
Знание Android (Activity, Fragment, BroadcastReceiver, WorkManager, View)
Работа с Clean Architecture
Понимание основ DI (Dependency Injection)
Опыт работы с GIT
Знание и понимание особенностей работы Android SDK версии 21 и выше
Soft skills (межличностные навыки) - это характеристики личности, относящиеся к общению, работе в команде, эмоциональному интеллекту, решению проблем и т. д. Эти навыки не привязаны к конкретной области или профессии, но они критически важны для успешного взаимодействия с другими людьми и эффективной работы.
Примеры soft skills включают:
Коммуникацию
Адаптивность
Креативное мышление
Умение работать в команде
На начальных этапах, soft skills могут быть важнее, чем hard skills. Когда человек только начинает работу, часто у него нет опыта, и его способность общаться с коллегами позволяет применять теорию на практике, решать проблемы и задавать правильные вопросы. Новички должны стараться быть активными, и не бояться признавать, что чего-то не знают. Если они столкнулись с проблемой, важно, чтобы они искали подсказки и обсуждали свои трудности, а не ждали окончания сроков сдачи задачи, когда ментор сам об этом узнает.
Как и где получить эти навыки ?
Во-первых, запомните раз и навсегда:
Одного лишь курса не хватит для того чтобы вы могли трудоустроиться!
Независимо от количества материала, вам потребуется читать статьи по теме, книги, смотреть другие курсы и решать задачи для собеседований параллельно с любым курсом.
Программирование - это не легко!
Это суровая правда, которую многим стоит осознать. Интернет пестрит курсами на 2-6 месяцев, обещающими по окончанию сделать из вас специалистов с престижной специальностью и кругленькой суммой в оффере. Не стоит вестись на такое, попробуйте это бесплатно, какой бы ни была сфера, будет много бесплатной информации, которой предостаточно для того чтобы понять, хотите вы этим заниматься или нет. Если ваша основная мотивация - деньги, бросайте это дело, даже не стоит тратить время. Программист — это специальность, где учиться и развиваться самому — чуть ли на самый важный навык, который будет необходим в течение всей карьеры. Учиться придется много, вашей мотивации хватит на месяц-два, а нормально зарабатывать вы сможете через условный год коммерческого опыта.
Язык программирования: Коtlin
В интернете не мало roadmap-ов по разработке на Android, и все они начинаются с выбора языка: Kotlin или Java ?
На дворе 2024 год. Стоит ли начинать с Java? Если вы планируете работать в конкретной организации, где Java все еще является основным языком, то да. Во всех остальных случаях - нет. Задайте себе вопрос: хотите ли вы потратить значительное время на изучение языка, который в будущем вам практически не пригодится? Сегодня, когда вы открываете Android Studio и нажимаете на кнопку "New Project", выбирая Java вы создаете уже легаси проект.
Это мое мнение, и соглашаться с ним или нет - ваше дело. Вы всегда сможете вернуться к Java после того, как освоите основы и поймете, как и почему что-то работает в Kotlin.
Материалы по изучению Kotlin:
Официальная документация. Стоит, конечно же, начать с Getting Started и идти дальше по списку
Книга "Kotlin in action" Дмитрия Жемерова, Светланы Исаковой
Серия статей по Kotlin в формате вопрос - ответ:
Android
Официальная документация от Google. Большую часть времени стоит уделить именно ей:
Developer Guides — документация по Android framework.
Android Jetpack — унифицированное решение от Google для часто встречающихся задач. Сейчас это уже стандарт для многих решений.
Architecture components samples — Architecture components — это часть Android Jetpack. В этом репозитории найдете примеры, как их использовать.
Курс Architecture Components — беплатный текстовый курс от StartAndroid
Youtube каналы:
Git
GitHowTo — это интерактивный тур, который познакомит вас с основами Git. Тур создан с пониманием того, что лучшим способом научиться чему-нибудь — сделать это своими руками
Цикл статей из двух частей о Git для новичков
Design Pattern
Refactoring Guru — Отличный интерактивный сервис, который позволит погрузиться в мир архитектуры, рефакторинга, принципов SOLID и прочих страшных слов, связанных с архитектурой.
После освоения основ Kotlin, рекомендуется изучить основы Android. Затем выберите тестовое задание, которое хотите выполнить, и изучите то, что для этого необходимо. Таким образом, вы не будете изучать то, что в ближайшее время вам не понадобится
Вот подборка публичных API, с помощью которых можно создать тестовое приложение:
OpenWeatherMap API - позволит добавить прогноз погоды в любом городе мира
Unsplash API - библиотека красивых и бесплатных изображений.
Random User API - содержит тестовые данные случайных пользователей (имена, адреса, аватары и т.д.).
Fake store API - данные о различных продуктах, категориях и отзывах пользователей; будет полезен при разработке онлайн-магазина.
NASA API - база сделанных NASA фото и видео из космоса
Open Food Facts API - данные о продуктах питания, их составе, добавках и полезных свойствах.
Советы для начинающих
Москва не резиноваяПрограммирование подходит не всем. Если вы не готовы усердно работать, и ваш единственный стимул - высокая зарплата, даже не стоит начинать. Ваша мотивация продержится всего месяц.Перед тем, как бежать оформлять рассрочку на дорогостоящее обучение, попробуйте все бесплатное, что найдете на эту тему. Возможно, вы откажетесь от этой затеи после первого урока.
Развивайте soft skills наравне с hard skills. В начале пути это особенно важно.
Следите за бесплатными курсами от компаний. Часто эти курсы предоставляют необходимую базу для работы в этой компании и нацелены на последующую стажировку или трудоустройство.
На этом у меня все. Буду рад если поделитесь своим мнением / полезными ссылками в комментариях.