Вопросы для собеседования с Android разработчиком

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

В результате рекрутинговая кампания для разработчиков Android довольно сложна. Если вы хотите нанять лучших ит специалистов, они должны быть быстрым и точным. В противном случае конкуренты украдут вашего кандидата. Скрининг обычно занимает больше всего времени, поэтому давайте узнаем, как это сделать быстро и эффективно. В статье расскажем про то, кто такой Андроид программист и какие вопросы для собеседования следует использовать.

1. Что такое Android?
Android - популярная в мире операционная система, предназначенная в основном для мобильных устройств. Исходный код разработан Google в рамках проекта с открытым исходным кодом Android (AOSP). Последующие версии обычно выпускаются ежегодно и объявляются на конференциях Google I / O.

Его характерной особенностью является то, что помимо телефонов его можно установить на планшеты и ряд других встраиваемых устройств, например телевизоры (Android TV), дисплеи в автомобилях (Android Auto) или часы (Android Wear).

Основные преимущества системы Android следующие:
  • открытый исходный код (https://source.android.com/)
  • платформа разработана Google. Каждые полгода система предоставляет пользователям и программистам что-то новое. Google очень внимательно относится к разработке всей экосистемы, он разрабатывает ряд библиотек, инструментов (IDE на основе IntelliJ), организует множество конференций, семинаров, скринкастов и т. д.
  • последовательный дизайн, особенно с тех пор, как была введена концепция материального дизайна. Постоянная борьба за поддержание единообразия внешнего вида приложений в Android, чтобы при переключении между приложениями пользователи не терялись в том, как использовать конкретное приложение.

2. Список навыков разработчика Android
Что важно знать ИТ рекрутеру об Android? Есть определенные вещи, о которых ИТ рекрутер должен знать, когда дело касается Android программистов:

  • Архитектура платформы Android: сколько процессов запускается при запуске приложения, сколько потоков запускается, каким образом приложение взаимодействует с системой и другими приложениями (например, как в следующем сценарии: выбор контакта, обмен картинкой) , что такое основной поток и как он работает в Android
  • Основные компоненты платформы: Activity, Fragment, Service, Intent, BroadcastReceiver, ContentProvider.
  • Стандартные и самые популярные библиотеки, поддерживающие создание приложений. Вот несколько примеров библиотек: Android Support Library, Google Play Services, Retrofit, OkHTTP, rxJava, EventBus, Dagger.
  • Шаблоны проектирования, которые позволяют писать приложения таким образом, чтобы упростить обслуживание, расширение и тестирование. Последние тенденции: MVP, MVVM, чистая архитектура
  • Правила, касающиеся создания эффективных представлений, возможность создания многоразовых пользовательских представлений
  • Возможность справляться с фрагментацией рынка и множеством различных устройств от разных производителей с различными версиями системы. Механизмы, которые предлагает платформа для обеспечения бесперебойной работы приложения на устройствах с экранами разного размера / плотности, разными языковыми версиями, различными версиями самой системы
  • [На заметку] В каждой версии Android есть цифра и буква (от C до N). Google всегда пытается придумать название чего-нибудь сладкого, начинающегося с определенной буквы, и именно так он называет последующие версии Android: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Icecream Sandwich, Jellybean, KitKat, Lollipop, Зефир, нуга). Кандидат должен уметь перечислять эти имена, если он / она интересуется жизнью платформы и ее развитием

3. Как проверить навыки разработчика Android на этапе отбора?
Скрининг сложен, когда вы сами не являетесь разработчиком Android. Еще сложнее, когда сама технология постоянно развивается и требует от вас обновления. Итак, давайте перейдем к нескольким практическим советам по подбору ит персонала о том, как проверить навыки разработчика Android.

3.1. Технический отбор и оценка навыков Android на основе резюме
Резюме кандидата может рассказать нам много полезной информации, но вам нужно знать, как выбрать самое важное. Как ИТ-рекрутер, ищите следующую ценную информацию в резюме разработчика:

  • Ряд приложений выпущен в Google Play. Если они все еще доступны, следует проверить, как они выглядят, как работают и сколько загрузок у него в Google Play.
  • Насколько велика была команда разработчиков и какова их роль в проекте? Был ли проект, над которым они работали, также был создан для других платформ (iOS? Windows Phone?)

Если вы не можете понять это из самого резюме, стоит задать эти вопросы во время телефонного или видео-интервью.

Как IT рекрутер, ищущий разработчика Android, вы должны быть знакомы со всей терминологией, используемой кандидатами. Вот почему мы разработали этот глоссарий Android для Менеджеров по персоналу, чтобы вы говорили на том же языке, что и ваш кандидат в процессе отбора.

Технология Android - основной глоссарий терминов Android для ИТ рекрутера:
  • Базовые компоненты Android: Activity, Fragment, Intent, Service, BroadcastReceiver, ContentProvider
  • Инструменты для тестирования: Espresso, Mockito, Robolectric
  • Основные компоненты пользовательского интерфейса (в основном из Material Design): Toolbar, ViewPager, RecyclerView, CardView, Floating Action Button, Navigation Drawer, BottomBar, CoordinatorLayout
  • Инструменты сборки: Gradle (Eclipse and ADT are legacies)
  • Самые популярные библиотеки: Support library, Google Play Services, Retrofit, EventBus, rxJava, rxAndroid, OkHttp, Dagger

Дополнительная информация о технологии Android, полезная с точки зрения ИТ рекрутера
В мире Android есть несколько ключевых системных выпусков, которые в некотором смысле революционны или вводят что-то новое. Для получения дополнительной информации перейдите на http://socialcompare.com/en/comparison/android-versions-comparison или просмотрите краткое изложение ниже:

Android 7.0
  • Многооконный режим (два приложения одновременно отображаются на разделенном экране)

Android 6.0
  • Разрешения во время выполнения. Новый подход к запросу доступа к конфиденциальным данным пользователей (на примере iOS)

Android 5.0
  • Материальный дизайн. Революция пользовательского интерфейса в приложениях

Android 4.0
  • Первая версия системы, не имеющая вариантов для телефонов / планшетов, но работающая на устройствах с любыми типами экранов.

Сертификация в Android
  • Google внедрил схему сертификации, которая не приобрела популярности, поэтому она не имеет большого значения в процессе приема на работу. Для получения дополнительной информации перейдите по ссылке: https://developers.google.com/training/certification/

Предыдущий опыт: что важно знать IT рекрутеру
Если из резюме разработчика Android вы видите, что у них уже несколько лет опыта, копните немного глубже и поищите в их резюме следующие вещи:

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

Что еще в резюме может помочь оценить навыки программирования под Android?
Все, что связано с программированием на Java. Мастер-классы, сертификаты, знание выкройки. Java - это базовый язык программирования Android, и даже если появятся другие языки, они будут основаны на JVM (в частности, Android Runtime, ART), поэтому знание всех ограничений и правил, касающихся программирования Java, очень полезно.

3.2. Техническая проверка навыков Android во время телефонного / видео-интервью
Резюме дает вам некоторую базовую информацию о навыках разработчика, но ничего не говорит вам о разработчике как о человеке и его недостаточно, чтобы предоставить вам твердые знания об их навыках программирования.

Ниже вы найдете несколько примеров вопросов, которые расскажут вам больше о кандидате.

1. Расскажите о самой интересной проблеме, с которой вы столкнулись после публикации приложения для пользователей. Как вы решили эту проблему?
Этот вопрос выявляет любые недостатки в опыте достойного разработчика, который должен предоставить массу примеров тех проблем, которые им удалось решить и которыми они гордились. Если кто-то просто участвовал, он может потеряться, отвечая на вопрос.

2. Перечислите готовые компоненты Material Design, реализации которых можно найти в семействе библиотек Support.
Ответ на этот вопрос демонстрирует знание основного семейства библиотек, которое использует каждое приложение. Кандидат должен уметь перечислить по крайней мере следующее: CardView, RecyclerView, Floating Action Button, Toolbar, Navigation Drawer. Если программист знает эти компоненты, значит, они не будут изобретать велосипед при создании классического приложения, а будут использовать надежные и широко используемые компоненты из бесплатной библиотеки.

3. Какой ваш любимый ярлык в Android Studio?
Ответ на этот вопрос показывает, насколько кандидат заинтересован в инструменте, которым он пользуется ежедневно, и насколько он им овладел. Кандидат должен легко перечислить как минимум 4-5 ярлыков, которые он использует каждый день. Чем больше примеров они приводят, тем лучше это отражается на них. Плохой знак, когда программист не знает ярлыков и во всем пользуется мышью.

4. Что нужно сделать, чтобы приложение Android зависло?
Ответ на этот вопрос: выполнить слишком много операций в основном потоке. Ответ на этот вопрос свидетельствует о знании кандидатом архитектуры платформы. Уметь ответить на этот вопрос абсолютно необходимо. Кандидат, который не может дать ответ, не напишет приложение, которое было бы быстрым и стабильным с точки зрения пользователей.

5. Как бороться с фрагментацией?
Рынок телефонов с Android - самый разнообразный из всех мобильных платформ. Возможность ответить на этот вопрос означает, что кандидат хорошо знает основы платформы, знает, что она предлагает, и знает, как обеспечить совместимость приложения с конкретной версией системы, устройствами с различными экранами и т. Д.

6. Также неплохо спросить об источнике проектов разработчика, например, PSD или предоставленный дизайнером. Как они справляются с нарезкой графики и сотрудничают с дизайнерами?

Также рекомендуем к прочтению статью нашего HR блога 18 вопросов для собеседования с Android разработчиком, где вы сможете найти больше вопросов на оценку хард скиллов программиста Андроид для собеседования. Также дополнительные материалы можно найти в статье Найти Android разработчика. Оценка и найм.
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата