Как проводят техническое собеседование в Gismart. Советы для соискателей и интервьюеров

Источник материала:  
26.04.2018 13:00 — Разное

iOS-разработчик Gismart, Евгений Хроленок, написал для dev.by колонку о том, как в компании проводится техническое собеседование и дал несколько рекомендаций, которые могут быть полезны и соискателям, и нанимателям.

Техническое собеседование в различных компаниях, очевидно, имеет различные формы.

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

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

Цель любого собеседования — получить максимально точную информацию о техническом уровне кандидата и его навыках, личностных качествах и умении работать в команде.

Главная итоговая задача — нанять работника, эффективно справляющегося с поставленными задачами (непосредственно для него, не просто с абстрактными задачами).

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

Как проводят техническое собеседование в Gismart. Советы для соискателей и интервьюеров

Ниже описана схема, которая эффективно работает для нас и так же эффективно может работать для других.

Регламент собеседования

Тайминг зависит от уровня соискателя, но в целом это 1,5 — 2 часа. Вводная часть от HR включает описание компании и её миссии, продуктов над которыми мы работаем, краткосрочные и долгосрочные цели, описание сотрудников.

После задаются вопросы общего характера от HR, направленные на раскрытие мотивации соискателя, его личностных качеств и т.д. Затем следует непосредственно техническое собеседование (большая часть времени) с двумя специалистами от компании. Почему двумя? Чтобы внести меру объективности оценки. Один человек априори даёт субъективную оценку происходящему. Когда вас двое, можно поделиться впечатлениями, убедиться или усомниться в своих предположениях и скорректировать свою позицию, что в итоге позволит откорректировать общую рецензию. Завершающая часть включает в себя встречные вопросы от соискателя. Мы также даём фидбэк (что понравилось, над чем стоит поработать), обсуждаем технические моменты.

После собеседования технические специалисты общаются с HR. Что обсуждаем: как принимаем решение (говорим, что понравилось, что нет, проверяем соответствие заявленными требованиям, релевантность опыта, сравниваем с предыдущими кандидатами).

Как проводят техническое собеседование в Gismart. Советы для соискателей и интервьюеров

Технические вопросы

Технические вопросы зависят от каждой конкретной ситуации, но в основном делятся на следующие группы.

Вопросы в зависимости от направления задач для кандидата в будущем: игровой, музыкальный, спортивный проект — все имеют свою специфику, поэтому если мы берём сотрудника под конкретный проект, лучше задавать конкретные вопросы, связанные с его потенциальными задачами. Например, с кандидатом под игровые проекты мы будем говорить об iOS Sprite Kit, Scene Kit, AR Kit и т.д. Вопрос задаём от общего к частному, постепенно погружаясь в детали и принципы работы.

Например:

1) Локальное хранение данных в iOS → Доступные библиотеки;
SDK → CoreData (основные сущности) → Реализация миграции в CoreData → Стратегии миграции CoreData.

2) Работа с сетью при разработке под iOS → SDK и библиотеки → Реализация клиента oAuth 2.0.

Как проводят техническое собеседование в Gismart. Советы для соискателей и интервьюеров

Вопросы из опыта кандидата. Необходимы для того, чтобы убедиться в состоятельности кандидата и релевантности его опыта.

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

Теоретические (абстрактные): ООП, SOLID, DI, паттерны проектирования.  Практические задачи: UIKit, Foundation, obj-c runtime и т.д., объяснить что под ними понимаем, рассказать зачем задаем те или иные вопросы.

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

Примеры вопросов (конкретные 10 вопросов из всех областей):    

1. Основные сущности (классы) библиотеки CoreData, их назначение. Как построить CoreData стек с асинхронной работой с данными (вне главного потока). Тоже самое про Realm.

2. Основные сущности библиотеки Grand Central Dispatch, что такое поток, методы синхронизации потоков в GCD, что такое dispatch_source_t.

3. Управление памятью в Objective C и в swift. Что такое autorelease pool. Сколько в памяти занимает экземпляр класса. Как отследить и устранить утечки памяти в приложении.

4. Во что и как компилируется obj-c/swift код. Что такое линковщик. Что такое статическая/динамическая библиотека, фреймворк.

5. Описать протокол HTTP, в чем разница с HTTPS. Что такое инкапсуляция сетевых протоколов. Протоколы TCP/IP, UDP. Что такое маршрутизация, как осуществляется соединение точка-точка в локальных сетях, как это происходят в сети интернет для передачи медиатрафика (голосовая, видеосвязь).

6. Принципы SOLID, что такое DI, принципы написания юнит тестов.

7. Какие паттерны проектирования реализованы в языках Objective C, Swift, в стандартных библиотеках iOS (Foundation, UIKit). Описать типовые паттерны, такие как фасад, фабрика, стратегия, команда, и т.д.  

Экзаменатор, учитель, студент и другие типичные портреты кандидатов и нанимателей

Существует несколько классических портретов кандидатов и нанимателей, которым, на наш взгляд, не стоит следовать, если вы хотите успешно пройти или провести собеседование.       

Наниматели

— Экзаменатор

Этот поведенческий антипаттерн подразумевает под собой интервью в режиме монолога. Мы задаём вопрос, ждём ответ, просим подумать ещё, но никак не помогаем. Между интервьюером и интервьюируемым должен быть постоянный диалог. Собеседование — довольно волнительное для многих соискателей мероприятие. Если мы видим, что человек плавает, не может перевести свои мысли в слова (такое часто бывает, когда мыслишь в парадигме кода, диаграмм, данных, команд), нужно помочь ему, задать наводящие вопросы. Скорее всего, в итоге вы услышите то, что хотите. А в ходе диалога откроете и другие знания кандидата.

— Учитель

Интервьюер-учитель задаёт вопрос и, если не получает ответ, начинает сам объяснять, как это работает. Как было упомянуто ранее, целью собеседования для соискателя не является получение новых знаний. Не сумев ответить на какой-то вопрос, он сам может найти необходимую информацию после, если захочет. Не стоит терять время.

— Старшеклассник

Задаёт самые сложные вопросы, чтобы показать, кто круче. Чаще всего так делают люди с большим эго. Интервью в таком случае превращается в интеллектуальный буллинг. Это во-первых, непродуктивно. А во-вторых, неуважительно.

Как проводят техническое собеседование в Gismart. Советы для соискателей и интервьюеров

— Mне это не нужно

Здесь интервьюер забывает о целях интервью. Задаёт короткие стандартные вопросы и затем выносит вердикт, не придерживаясь никакой стратегии и спрашивая всё подряд.

Кандидаты

— Студент

Кандидат молчит, долго думает, пытается угадать ответ на вопрос. Объяснять, почему это плохо, думаю, не имеет смысла.

— Азартный (любитель спорить)

Вступает в активную полемику там, где это не нужно.

— Умножение в уме

Кандидат отвечает на все вопросы устно. Специфика технического собеседования заключается в том, что технического ответа, данного чисто на словах, часто не достаточно. Нужно увидеть что-то ещё, чтобы понять, правильно ли мыслит кандидат. Пользуйтесь (и давайте пользоваться) дополнительными материалами. Можно открыть Swift Playground и попробовать там, можно рисовать на листике, показывать какие-то вещи через псевдокод, рассуждать и т.д.

— Не сделал домашнюю работу

Кандидат не подготовился к собеседованию. Не может ответить на базовые вопросы либо отвечает что-то типа «Давно было, я уже все забыл. Давайте лучше расскажу о том, чем занимаюсь сейчас».

— Расскажу всё, что знаю

Кандидат отвечает (или нет) не только на заданный вопрос, но и начинает рассказывать всё, что он знает, по вопросам около рассматриваемой темы. Мы теряем время и возможность оценить по максимуму знания и навыки кандидата, необходимые в работе с нашими проектами.

Немного рекомендаций

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

Для нанимателей

  • Экономьте время, не тяните кандидата, если видно, что он абсолютно не ориентируется. Вы не преподаватель на экзамене, переходите к следующим вопросам, вопросам из другой области.
  • Не нужно показывать, что вы умнее всех. В первую очередь вам нужно получить информацию от кандидата.
  • Будьте приветливыми и открытыми, поддержите, если человек волнуется.
  • Старайтесь не отвечать сами на неотвеченные вопросы — получение знаний кандидатом не является задачей собеседования.

Для кандидатов

  • Подготовьтесь к собеседованию (да, это пункт, который стоит упомянуть).
  • Вы не на экзамене. Не отвечайте в надежде угадать ответ, не отвечайте в стиле «Я этого не знаю, но знаю что-то похожее».
  • Не спорьте, не будьте агрессивными.
  • Задавайте уточняющие вопросы, рассуждайте, рисуйте на листе бумаги.
  • Не тратьте много времени на ответ, на описание предыдущего опыта, проекта, над которым вы работали.

 

Читайте также: Если сферическая лошадь сдохла, слезь. Технические интервью не нужны?

←Ученые России призвали остановить "вредоносную деятельность" Роскомнадзора

Лента Новостей ТОП-Новости Беларуси
Яндекс.Метрика