interview
Я довольно часто провожу собеседование с программистами.

Раньше мы это делали следующим образом:

  • сначала проверяли людей на адекватность и просили заполнить короткий бриф. Критерий отбора – соблюдение формата. Ведь в дальнейшем он будет выполнять задачи, и если он не выполняет формат на собеседовании, нет смысла ждать от него аккуратности при выполнении задач.
  • оставшимся даются тестовые задания, которые они делают и присылают на почту.
  • если человек сделал хорошо, то пробуем с ним работать, давая оплачиваемое задание уже по проекту.

Эта схема плоха тем, что реально мы не знаем, чего стоило ему выполнить это задание. Может он сделал его за 5 минут. А возможно он рогом уперся, перерыл весь интернет, делал всю ночь и все-таки сделал это задание. Согласитесь, это совсем разные истории.

Сейчас мы пришли к тому, что гораздо эффективнее проводить собеседование следующим образом:

  • созвон по скайпу;
  • запрашиваем уровень ожиданий – какой опыт по технологиям и какая почасовая ставка;
  • человек запускает демонстрацию своего экрана, открывает блокнот и делает ваши базовые типовые задания по технологиям;
  • уже по первым минутам вы поймете, с кем имеете дело. По моему опыту, можно по одному заданию сразу понять, соответствует ли человек тому, что он указал (ставка, опыт). Если человек говорит, что у него опыт jQuery 1-2 года, и ставка 300 руб. в час, но при этом он не может правильно написать, как добавить div элемент в body – то все сразу становится понятно и на свои места.

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

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

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

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

П.С. Очень многие программисты говорят “Это я не помню на память, я всегда быстро найду в Google”. Дайте ему задачу посложнее и пусть решит с помощью Google. Если быстро решит, то можно его рассматривать. Однако помните, что поиски в Google оплачивать в итоге будете вы. Любой поиск – это отрыв мыслительного процесса от программирования, а это снижает общую эффективность программиста.

П.С.2. Ориентация на курс в некоторой степени уменьшает вероятность появления чужих senior developer (т.е. чужих опытных программистов). Мы сознательно выбрали этот путь. Собеседования показали, что очень часто подавляющее количество таких “senior” не имеют даже базовых знаний по тем технологиям, по которым у них опыт проставлен от года. Очень сложно понять, кто есть кто. Курс решает эту проблему – мы четко понимаем возможности каждого человека в команде.

UPD. Если вы в целом интересуетесь процессами совершенствования своей системы – то читайте про Гипотезы и инновации.