Pull to refresh

Собеседование на позицию разработчика, как оно есть

Reading time 8 min
Views 50K
Доброго времени суток. На данный момент я занимаю должность Senior/Team Lead IOS Developer. Так вышло, что за последний год мне довелось побывать на огромном количестве собеседований, так сказать, по обе стороны баррикад. Поэтому мне бы хотелось поделиться своим опытом и поговорить о том, как, на мой взгляд, надо проводить собеседование, ведь в общей суматохе можно упустить ряд важных моментов, что, впоследствии, может негативно отразиться на качестве собеседования.

image

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

Заповеди


Заповедь номер раз


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

Заповедь номер два


Ваша задача – выяснить, что данный человек может сделать для Вашей фирмы сейчас и через три месяца, а не то, что он мог сделать год назад.

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

Заповедь номер три


Ваша задача – определить сможет ли человек влиться в команду.

Вне зависимости от уровня собеседуемого попытайтесь определить для себя, сможете ли вы работать с этим человеком в команде, даже если вы знаете, что делать этого не придется. Однажды на собеседование приходил товарищ, который в течение первых 5 минут умудрился съязвить HR-менеджеру и на протяжении всего собеседования был далек от делового тона, хотя некоторыми знаниями обладал. После собеседования его кандидатура более не рассматривалась, так как никто работать с ним в одной команде не хотел. В свою очередь Вы, как бы вам не нравился человек, должны быть сдержаны и приветливы, так как Вы представляете всю фирму, а он только себя.

То, на что надо обратить внимание


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

  1. Собеседование следует проводить в переговорной комнате (далее переговорке). Если переговорка занята – перенесите собеседование. По большому счету, данная комната вместе с вами – это лицо компании для собеседуемого. И если вам действительно нужен сотрудник, позаботьтесь о том, что бы «лицо» выглядело подобающим образом. Ни в коем случае не проводите собеседование в холле офисного центра или вблизи своего рабочего места со снующими рядом коллегами. Все это не создаст спокойной атмосферы и не поможет сформировать у человека приятного мнения о фирме. Мне, к сожалению, пришлось побывать в подобной ситуации.
  2. На столе обязательно должен стоять стакан воды для «гостя». Чай и кофе — это опции, но вода должна быть обязательно. Во-первых, говорить в течении долгого времени довольно тяжело. Во-вторых, вы избавите человека от необходимости просить у вас что-то во время собеседования. И наконец, в случае временной заминки он не будет сидеть и нервно скручивать пальцы в гордиев узел, а просто возьмет стакан воды.
  3. Проводите собеседование без листика или ноутбука, иначе может сложиться впечатление, что вы сами не уверены в том, что спрашиваете. Четко формулируйте вопрос, предварительно отработав его на коллегах. Собеседуемый должен понимать, что вы от него хотите.
  4. На собеседовании задавать вопросы должен один человек. При этом в помещении могут присутствовать несколько, что бы было с кем обсудить результаты. Трое на мой взгляд оптимально.Часто из-за неуверенности мы норовим захватить с собой коллегу, который подстрахует нас в сложную минуту. Из-за этого, собеседование превращается в перекрестный допрос с участием двух плохих полицейских. Такого быть не должно (см. заповедь 1).
    Если на собеседовании имеется необходимость поговорить сразу о нескольких областях, например программирование и управление проектами. То разбейте собеседование на 2 части, так что бы сначала собеседуемый общался с 1-ым специалистом, а потом со 2-ым. Избегайте перекрестных допросов.
    (данный пункт исправлен после комментария Пользователя: xoposhiy)
  5. После собеседования не поленитесь прямо на резюме пометить информацию о претенденте. Все что считаете нужным: правильные или неправильные ответы, эмоциональное впечатление от общения с человеком, и т.д.
    Спустя пару недель и 6-7 собеседований вы скажете себе спасибо за это дальновидное решение, когда надо будет приглашать человека на работу. Плюс ко всему у вас накапливается неплохая база данных.
  6. Ограничение во времени. В свое время мне пришлось столкнуться с требованием со стороны HR менеджера сократить время проведения собеседования до получаса, мол люди сильно устают после долгих собеседований и у них формируется плохое впечатление о фирме.
    Смело шлите такие предложения ко всем чертям. Во-первых, раз собеседование проводите вы, то только на ваших плечах лежит весь груз ответственности по принятию на работу данного человека. И, следовательно, в случае неверного выбора отвечать тоже вам.
    Во-вторых, люди скорее устают от неинтересных и скучных собеседований, нежели от долгих.
    Помнится, я выходил раздосадованный с 40-минутных собеседований по списку стандартных вопросов, и совсем другое дело после 2 часов жесткого собеседования с авторскими вопросами, которых раньше никогда не слышал. После второго я почерпнул что-то новое, а на первом просто потратил время.
  7. В целях сокращения времени выделите ряд ключевых вопросов, в случае отсутствия ответа на которые собеседование можно максимально сократить, не оскорбив при этом человека. Может через годик-другой он станет высококлассным специалистом.

Мне пришлось проводить собеседование на различные должности, и ниже я попытаюсь изложить основные моменты, которые надо учитывать.

Собеседование на junior программиста


Цель – выяснить обучаемость собеседуемого.

Для начала выясните, где человек учился или учится (я сторонник того, что для работы программистом необходимо иметь инженерное образование, так как это позволит вам говорить на одном языке). Бог свидетель, ко мне на собеседование приходили люди из музыкальной консерватории, которые прошли 2-месячные курсы по программированию.
Обучаемость может частично компенсироваться усердием. И тут на помощь приходит система образования. Выясните какой у претендента средний балл, учится он платно или бесплатно. Квадратный зад в программировании пригодится.

Для меня наибольшую сложность представляло формирование списка вопросов, так как многие за исключением создания класса или массива вообще ничего не знают.

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

  • Попытайтесь придумать несколько задач на догадливость и сообразительность собеседуемого. Например, что такое Single Responsibility. Выслушав человека, Вы поймете, как он действует, столкнувшись с незнакомой задачей: в каком направлении двигается или просто впадает в ступор. Это важно.
  • Дайте простую задачу, скажем, на добавление элемента в массив и листик с ручкой. Это даст возможность понять, способен ли человек вообще что-то написать без подсказок среды.
  • Предложите соискателю описать классы, которые он бы создал для реализации, скажем, страницы сообщений VK. Исходя из этого, можно судить, умеет ли человек мыслить в формате ООП.

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

Собеседование на middle/senior программиста


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

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

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

Разумеется, надо иметь в голове список вопросов, которых вы бы хотели коснуться, чтобы направлять беседу в нужное русло. Такой тип собеседования позволит проверить очень важное качество человека – его честность. Был следующий случай. Пришел на собеседование человек, который рассказал, что работал на проекте на ведущих ролях, а также что в его проекте было более 50 таблиц в базе данных, не один десяток миграций и обращения к базе идут в разных потоках и много чего еще. Однако при вопросе, как была организована работа с базой из многих потоков, внятного ответа не последовало (см. заповедь 2). Думаю, всем понятно, что место в нашей компании этот человек не получил.

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

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

Вы должны найти границу знаний собеседуемого, если пробел обнаружен не стоит тратить 10 минут на добивание, лучше двигайтесь дальше. Такой вариант будет приятнее для собеседуемого и продуктивнее для вас. (см заповедь 1).

Если в результате собеседования были даны ответы на все вопросы – грош цена такому собеседованию. Вы не дали собеседуемому в полной мере раскрыть свой потенциал.

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

Как вести себя на собеседовании


  1. Я умышленно не касаюсь темы заработной платы, так как в сфере IT – это очень индивидуально. Единственное, что могу сказать просите столько, чтобы вам хотелось работать и вы не чувствовали себя обманутым.
  2. Не поленитесь уделить полчаса перед собеседованием на то, чтобы повторить основные моменты. Поверьте, это время окупится с лихвой. Помнится был на собеседовании человек, который на вопрос «Что такой ООП?», ответил «Ну, Э… Это нужно для наследования».
  3. Не надо напяливать галстук или костюм, если вы не носите его в повседневной жизни. Меня больше смутит человек в непривычной ему удавке, чем в байке. Если в фирме есть дресс-код – вам об этом скажут. Главное – выглядеть опрятно.
  4. Не врите о своих заслугах. Ложь легко вскрывается.
  5. Заранее подготовьтесь к вопросам типа: «какой проект понравился вам больше всего?» — этот вопрос нужен, чтобы начать беседу.
    «Почему вы ушли с предыдущего места работы?» — не буду говорить, как надо на него отвечать, но худший ответ, который слышал я, был: «Мне в другом месте больше предложили». После такого ответа к человеку появляется множество вопросов.

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

  • фактическую сумму, которую вы будете получать на руки (за вычетом налогов и бог знает чего еще);
  • формат помещения в котором вы будете работать: open space/отдельные комнаты. Желательно даже посмотреть;
  • предоставляемая техника: мониторы, ноутбуки;
  • подробно расспросите про проекты, размеры команд и вашу роль на них;
  • выясните, кто будет вашим непосредственным начальником. Это может быть человек, который вел собеседование. А если это не так, то можно попросить познакомиться с ним.

Заключение


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

Всем удачный поисков и высококлассных специалистов.
Tags:
Hubs:
+30
Comments 51
Comments Comments 51

Articles