Требования работодателей к Android программисту

Когда-то давно, примерно лет пять назад я написал статью «Требования работодателей к Android разработчику». Давайте посмотрим, что изменилось за это время, какие новые требования выдвигают работодатели к кандидатам на позицию программиста под ОС Android, а какие пункты, наоборот, более не актуальны.

Проанализировав около 80 вакансий, можно получить срез требований, показанный ниже. Требования отсортированы по частоте упоминания, показанной в последнем столбце. Чтобы не терять четкости картинки, некоторые позиции слиты вместе.

НавыкЧастота упоминания
1Знание ООП, алгоритмов, структур данных, шаблонов и паттернов проектирования (DI, MVP, MVC, MVVM, SOLID, Clean architecture)54
2Опыт работы с сетевыми протоколами обмена данными (HTTP, HTML, JSON), опыт разработки клиент-серверных приложений, WebSocket, REST API52
3Знание Java48
4Наличие реализованных проектов, опыт публикации приложений на Google Play42
5Знание Android SDK (+ понимание отличий между SDK различных версий), и понимание архитектуры ОС Android37
6Git, Git Flow, CI/CD36
7Знание Kotlin31
8Знание RxJava/RxAndroid31
9Опыт работы в стиле TDD (unit и автоматизированные UI тесты), знание Robolectric, JUnit, особенно востребован Espresso30

10Знание Dagger20
11Опыт разработки кастомных View, сложных, нестандартных UI, анимаций17
12Знание OkHttp, Retrofit15
13Понимание специфики Material Design, Android Design Guidelines14
14Опыт использования технологии NDK/JNI, знание C++14
15Навыки анализа и профилирования приложений, поиска ошибок, поиска и исправления узких мест14
16Умение работать с Google Play Services (Maps, Location, GCM, Authorization, Analytics, Tag Manager)13
17Опыт интеграции SDK Facebook или других социальных сетей11
18Опыт работы по гибким методологиям (Agile, Scrum)11
19Знание Gradle10
20Знание Realm10
21Знание Butterknife9
22Опыт работы с OpenGL9
23Знание SQLite8
24Английский язык, достаточный для самостоятельного чтения технической документации8
25Опыт совместной работы с backend-разработчиками7
26Опыт разработки многопоточных приложений6
27Опыт работы с SDK рекламных сетей5
28Опыт разработки геолокационных сервисов4

Какова же динамика требований, что изменилось за последние 5 лет? При сравнении этого и предыдущего списков отчетливо прослеживаются следующие тенденции:

Git окончательно победил SVN; если раньше знание SVN требовалось чуть реже, чем знание Git, то теперь упоминание SVN в тексте вакансий можно найти, только если очень постараться.

Kotlin, что называется, «выстрелил»: достаточно больше число работодателей требуют от соискателей знание Kotlin, а некоторые компании прямо в тексте вакансии анонсируют планируемый в ближайшее время переход на Kotlin.

• Знание английского языка стало реже выступать в качестве обязательного требования к Android программисту. Маловероятно, что это связано с распространением знания иностранных языков в широких программистких массах, в связи с чем английский язык переходит в требования «по умолчанию», не упоминаемых специально в тексте вакансии, вроде обычной грамотности или владения офисными пакетами. Скорее, работодатели ориентируются на использование достаточно неплохого прогресса в области машинного перевода, имевшего место быть в последние годы. Даже всплыл из небытия оборот «английский язык, достаточный для самостоятельного чтения технической документации», только сейчас он обозначает не активное использование бумажных словарей, а активное использование в работе Google Translator, причем не только для англо-русского перевода, но и в обратном направлении, для активного общения в англоговорящей среде и написания писем.

• Использование сторонних библиотек стало промышленным стандартом. Использование самописных велосипедов категорически не приветствуется; напротив, Butterknife, Realm, Dagger, OkHttp, Retrofit, а особенно RxJava/RxAndroid используются повсеместно.

• И, пожалуй, самое знаковое изменение, назревшее за эти годы — пункт «Знание ООП, алгоритмов, структур данных, шаблонов и паттернов проектирования» переместился из низа таблицы на самый верх, став требованием № 1. Не может не радовать, что компании ищут именно программистов, способных выдать читаемый, сопровождаемый, тестируемый код, а не просто закодировать пожелания старшего товарища.

Обратите, кстати, внимание на довольно существенный разрыв между пунктами 9 и 10 таблицы. Похоже, пункты по 9 включительно формируют костяк требований к Android-программисту, который надо иметь в виду, даже претендуя на должность junior уровня.

Закладка Постоянная ссылка.

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

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

    «Я беру на себя смелость предсказать, что метод освобождения энергии синтеза термоядерной реакции контролируемым способом будет найден в ближайшие два десятилетия. Когда это произойдет, энергетическая проблема всего мира будет поистине разрешена навсегда, потому что топлива тогда будет так же много, как и тяжелой воды в океанах», — индийский физик-теоретик Хоми Баба, председатель Международной Конференции по мирному использованию атомной энергии, Дворец наций, Женева, 1956 год.