Android-программисты очень востребованы сегодня, что немудрено: система занимает первое место среди мобильных ОС. По просьбе редакции журнала «Системный администратор» Олег Иванов, руководитель группы Android-разработки «Рексофт», рассказал, каким должен быть хороший Android-разработчик.
– Какими знаниями и навыками должен обладать Android-разработчик?
– Самый главный навык современного 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. Будет полезным знание английского – можно читать техническую литературу из первоисточника, быстрее находить ответы на форумах, появится возможность участвовать в иностранных проектах.
– Каков инструментарий Android-разработчика?
– Если говорить про инструментарий Android-разработчика, то главное – это библиотеки. Сейчас всё чаще ищут программистов со знанием Coroutines, которые пришли на смену RxJava, с навыками работы с View Binding и реже с Data Binding.
Необходимо уметь пользоваться механизмами внедрения зависимостей, самый популярный из которых Dagger. Никуда не уйти от библиотеки сетевого взаимодействия Retrofit и клиента для работы с базами данных – Room. Также в последнее время стало важно знать библиотеки навигации – такие как Navigation Architecture Component или Cicerone. Полезен опыт создания кастомных элементов разметки, знание многопоточности, опыт написания тестов.
– Каковы требования компании к уровню образования соискателей на эту позицию?
– Для соискателей желательно иметь профильное высшее техническое образование. Вообще, у программистов образование играет не такую большую роль, как у других профессий. Но я считаю, если вы хотите добиться определенных успехов в карьере – оно необходимо.
Профильное высшее образование дает хорошую базу, учит правильно мыслить, позволяет самому искать нужную информацию в книгах или Интернете. Обучаясь в университете или институте, вы будете понимать устройство компьютера (смартфон, по факту, это компактный компьютер), в частности устройство процессора или памяти, узнаете основные алгоритмы и структуры данных, познакомитесь с другими операционными системами, получите навыки работы с сетями, базами данных, научитесь программировать, улучшите свои знания математики. Хотя непосредственно мобильная разработка редко встречается в вузах. Из-за нехватки разработчиков в компаниях часто рассматриваются кандидаты без профильного высшего образование, но всё же приветствуется, чтобы за плечами был технический вуз.
Для начальных позиций подойдет среднее техническое образование и профильные курсы.
– Какие требования предъявляются к опыту работы?
– В плане опыта в основном наиболее востребованы кандидаты со стажем от 3 лет. На позицию Junior можно рассматривать кандидатов с опытом в районе года или студентов после окончания профильного заведения, желательно наличие каких-то собственных, пусть и небольших проектов.
– Есть ли особые требования, которые обусловлены спецификой деятельности компании?
– В «Рексофт» нет каких-либо общих специфических требований. Такие требования есть на конкретных проектах, куда компания планирует нанять разработчика. Например, где-то необходимо уметь работать с USB-устройствами, с камерой, где-то уметь отрисовывать объекты на карте, где-то нужен опыт работы с банковскими приложениями и т.
Источник: Системный администратор
Изображение: Denny Müller/Unsplash.com
ЕЩЕ НОВОСТИ