Рубрика:
Карьера/Образование /
Рынок труда
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Вакансия: Android-разработчик
Android-программисты очень востребованы сегодня, что немудрено: система занимает первое место среди мобильных ОС. По просьбе редакции представители компаний и организаций рассказали, каких Android-разработчиков они охотно берут на работу.
1. Какими знаниями и навыками должен обладать Android-разработчик? 2. Каков инструментарий Android-разработчика? 3. Каковы требования компании к уровню образования соискателей на эту позицию? 4. Какие требования предъявляются к опыту работы? 5. Есть ли особые требования, которые обусловлены спецификой деятельности компании?
Дмитрий Шин, TeamLead Android-направления RentaTeam
«Проблема многих кандидатов, которые приходят на собеседования, в том, что они не понимают, как работают те или иные инструменты»
1. При найме Android-разработчика в первую очередь для нас важны Soft Skills кандидата. Технические навыки легче подтянуть, а вот изменить человека практически невозможно. К примеру, для нашей компании важна ответственность, коммуникабельность, самоходность и нетоксичность.
Что касается Hard Skills, то важна база. Это знание, а самое главное – понимание языков Java и Kotlin. Мы используем язык Kotlin, но знание Java как основы, также важно. Android-разработчик должен понимать фреймворк Android, основные компоненты приложения и принципы их работы.
Проблема многих кандидатов, которые приходят на собеседования, в том, что они не понимают, как работают те или иные инструменты. Причем разработчики могут использовать эти инструменты в своей работе, но не понимают, какую именно проблему они при этом решают. Часто решения просто копируются из Интернета или разработчики бездумно опираются на материалы пройденных курсов. Хорошо, если разработчик понимает и придерживается принципов SOLID и понимает KISS, DRY, YAGNI.
2. В своей повседневной деятельности мы используем разный инструментарий для работы над проектами. Из основного:
- Android Studio, в которой мы собственно и пишем код на языке Kotlin.
- В качестве системы контроля версий мы используем сервис GitLab.
- Для контроля наших задач используем сервис Jira, для коммуникаций – Slack и общие звонки в Google meet.
- Для тестирования web-запросов пользуемся Postman.Конечно, есть и другие сервисы, но зачастую их применение носит частный характер.
- Если нужно выделить топ-11 инструментов, которые должны освоить будущие разработчики, то это: Kotlin; Android jetpack; MVP|MVVM;
- Clean Achitecture; RxJava2, Coroutines + Flow; Room; Dagger|Hilt;
- Navigation component; Retrofit; Picasso|Glide; Firebase.
3. Уверен, что любой может освоить это направление вне зависимости от возраста и образования. Но, как показывает практика, у кандидатов с ИТ-образованием это получается быстрее. Мы не отбираем кандидатов по образованию, оно может стать лишь дополнительным преимуществом при выборе среди других кандидатов.
4. Требования зависят от уровня. Если мы ищем разработчика уровня от middle и выше, то нам нужен специалист, который уже имеет опыт коммерческой разработки не менее года, хорошо разбирается в технике, в основных компонентах и паттернах. Мы рассчитываем, что такой разработчик с первых дней работы интегрируется в проекты и начнет выполнять проектные задачи.
Если мы говорим о Junior-разработчиках, то здесь допускается отсутствие знаний или опыта. Такой разработчик начинает свою деятельность под менторством более опытного коллеги и уделяет значительное время обучению.
Екатерина Пачковская, консультант практики IT&Telecoms в Санкт-Петербурге международной рекрутинговой компании Hays
«Для разработки пользовательских приложений массового характера работодатели готовы обращать внимание на опыт работы и на навыки, чем на образование»
1. Сейчас для Android-разработчика важно знание Kotlin (в некоторых случаях могут быть важны/нужны знания Java). Также ряд работодателей считает важным знание принципов ООП, архитектур, многопоточной разработки и проч. Отдельно нужно упомянуть понимание принципов UX/UI. Важно знание английского языка от уровня чтения/письма и выше.
2. Если мы говорим о стеке технологий, то в данный момент наиболее часто встречающийся и требуемый среди наших кандидатов – это Kotlin, Coroutines, Clean Architecture, Retrofit, Dagger, RxJava и проч.
3. Некоторые компании по-прежнему отдают преимущество специалистам с образованием в сфере ИТ. В каких-то случаях это, может, и правда быть важно, когда речь идет о более инновационных разработках, создании новых продуктов (например, в сфере IoT), где, в том числе, происходит кастомизация самого Android. Тем не менее для разработки пользовательских приложений более массового характера работодатели готовы обращать внимание прежде всего на опыт работы и на навыки, чем на образование (в том числе могут рассматривать кандидатов без высшего образования).
4. Если мы говорим о разработчике уровня middle и выше, то сейчас это в среднем специалисты с опытом от 2 лет. Также обращают внимание на проекты, портфолио, над чем работал кандидат, какую часть проекта делал, какова была именно его роль. Важно, чтобы были завершенные проекты (отлично, если их можно продемонстрировать). Необходимо знание Kotlin. Иногда бывают и требования по знаниям Java (для приложений с legacy, например).
Павел Подкорытов, СЕО Napoleon IT
«Необходим опыт в создании или поддержке клиент-серверных приложений»
1. Android-разработчик должен обязательно знать:
- Языки программирования Kotlin и Java
- Паттерны проектирования и архитектурные решения
- Kotlin Coroutines или Rx
- Компоненты Android и Android SDK
- Работу клиент-серверных приложений (REST)
- SQLite
- Dagger 2/Koin.
Также желательно иметь опыт в написание Unit-тестов, настройки CI.
2. Инструментарий: владение Android Studio, Gradle, Git.
3. Желательно высшее техническое, но не обязательно.
4. Опыт в создании или поддержке клиент-серверных приложений.
5. Особые требования отсутствуют.
Олег Иванов, руководитель группы Android-разработки компании «Рексофт»
«Если говорить про инструментарий Android-разработчика, то главное – это библиотеки»
1. Самый главный навык современного Android-разработчика заключается в умении адаптироваться под новые реалии. Если раньше Android-разработка велась в основном на Java, то сейчас главный язык – это Kotlin. То же самое происходит с библиотеками и подходами к разработке. Когда-то на проектах использовали такие шаблоны проектирования, как MVC (Model View Controller) и MVP (Model View Presenter), сейчас же большее предпочтение отдается MVI (Model View Intent) и MVVM (Model View View-Model). MVVM особенно поддерживает Google.
Программист для Android, как, собственно, и любой другой, обязан уметь самообучаться, быть самостоятельным. Конечно, хороший разработчик должен понимать и применять на практике перечисленные выше шаблоны проектирования, паттерны проектирования (такие как синглтон, наблюдатель, билдер и т. д.), Clean Architecture.
Также немаловажно разбираться в версиях Android, особенностях устройств различных производителей, в типах устройств (смартфоны, планшеты, TV, Android Auto и т. д.), размерах экранов и во многом другом.
В больших компаниях нужно уметь работать с многомодульными android-приложениями. Обычно выделяют app-модуль, core-модуль, различные feature-модули. Монолитные приложения сходят на нет.
Не стоит забывать про Soft Skills. Android-программист должен уметь работать в команде с другими разработчиками, общаться с дизайнерами, аналитиками, тестировщиками, предлагать качественные и аргументированные решения проблем, в общем – быть коммуникабельным. Уметь работать по методологии Scrum/Agile. Будет полезным знание английского – можно читать техническую литературу из первоисточника, быстрее находить ответы на форумах, появится возможность участвовать в иностранных проектах.
2. Если говорить про инструментарий Android-разработчика, то главное – это библиотеки. Сейчас всё чаще ищут программистов со знанием Coroutines, которые пришли на смену RxJava, с навыками работы с View Binding и реже с Data Binding.
Необходимо уметь пользоваться механизмами внедрения зависимостей, самый популярный из которых Dagger. Никуда не уйти от библиотеки сетевого взаимодействия Retrofit и клиента для работы с базами данных – Room. Также в последнее время стало важно знать библиотеки навигации – такие как Navigation Architecture Component или Cicerone. Полезен опыт создания кастомных элементов разметки, знание многопоточности, опыт написания тестов.
3. Для соискателей желательно иметь профильное высшее техническое образование. Вообще, у программистов образование играет не такую большую роль, как у других профессий. Но я считаю, если вы хотите добиться определенных успехов в карьере – оно необходимо. Профильное высшее образование дает хорошую базу, учит правильно мыслить, позволяет самому искать нужную информацию в книгах или Интернете. Обучаясь в университете или институте, вы будете понимать устройство компьютера (смартфон, по факту, это компактный компьютер), в частности устройство процессора или памяти, узнаете основные алгоритмы и структуры данных, познакомитесь с другими операционными системами, получите навыки работы с сетями, базами данных, научитесь программировать, улучшите свои знания математики. Хотя непосредственно мобильная разработка редко встречается в вузах. Из-за нехватки разработчиков в компаниях часто рассматриваются кандидаты без профильного высшего образование, но всё же приветствуется, чтобы за плечами был технический вуз. Для начальных позиций подойдет среднее техническое образование и профильные курсы.
4. В плане опыта в основном наиболее востребованы кандидаты со стажем от 3 лет. На позицию Junior можно рассматривать кандидатов с опытом в районе года или студентов после окончания профильного заведения, желательно наличие каких-то собственных, пусть и небольших проектов.
5. В «Рексофт» нет каких-либо общих специфических требований. Такие требования есть на конкретных проектах, куда компания планирует нанять разработчика. Например, где-то необходимо уметь работать с USB-устройствами, с камерой, где-то уметь отрисовывать объекты на карте, где-то нужен опыт работы с банковскими приложениями и т. д.
Алексей Мельников, Android Team Leader в Dats.Team
«На первом месте инструментария разработчика стоит, конечно, среда разработки»
1. Все зависит от его грейда, конечно. Но если брать по минимальной планке, то разработчик должен быть разработчиком, т. е. уметь писать приложения под Android.
Как минимум он должен знать Kotlin, который сейчас использует большая часть компаний как основной язык программирования. Желательно – Java, хотя бы на базовом уровне. Пока что никто не отменял этот язык при разработке приложений для Android, и всё еще живо большое количество Legacy-проектов, библиотек и прочего, написанного на Java. Некоторые компании даже всё еще используют Java как основной язык при разработке приложений под Android, например Telegram.
Помимо языка программирования, разработчик должен иметь представление о верстке экранов и о сетевом взаимодействии. Понимать, что такое REST API и для чего он нужен.
Будет плюсом знание Git, понимание современных подходов к разработке архитектуры приложений MVP или MVVM, а также опыт в использовании Dependency Injection.
2. На первом месте инструментария разработчика стоит, конечно, среда разработки. Для Android-программиста есть официальная и удобная Android Studio, которая покрывает большую часть запросов любого разработчика. Она позволяет не только писать и отлаживать код, но и пользоваться Git, использовать эмуляторы, собирать информацию об использования памяти приложения и многое другое.
В нашей компании также активно используют:
- Postman + Swagger – они удобны для получения информации по REST запросам;
- Git – для организации хранения кода и независимой работы с задачами в рамках проекта для каждого разработчика;
- Jenkins – для автоматизации сборок и их распространения тестировщикам;
- Charles – для просмотра и отладки сетевых соединений;
- Figma – для верстки экранов по готовым макетам.
3. Последнее время в нашей компании активно нанимают Junior Developer- разработчиков (джунов). То есть людей, обладающих базовыми знаниями, но не очень богатым опытом в разработке приложений. Мы готовы обучать и растить человека, помогать ему в получении новых знаний.
Зачастую инициативный джун очень быстро вырастает в крепкого мидла (Middle Developer) – достаточно опытного разработчика, способного решить большой спектр различных задач в разных частях проекта.
Откуда человек получил начальный опыт при устройстве к нам – не так важно. Всё решает техническое собеседование, а также общее ощущение от кандидата.
4. Если человек устраивается на джуна, то опыт работы в другой компании мы не требуем. Для мидлов и сеньоров, смотрим по ситуации.
Конечно, будет странно, если придет кандидат с безупречными техническими навыками, но который не работал до этого ни в одной компании. Думаю, такое в принципе невозможно.
5. Особых требований в нашей компании нет.
Ключевые слова: Junior Developer, Middle Developer, Android-программист, разработчик, языки программирования, Kotlin
Подпишитесь на журнал Купите в Интернет-магазине
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|