В нашей компании собеседование состоит из двух этапов: практическое задание и теоретическая часть.
Практическое задание по тематике непосредственно похоже на предполагаемую в дальнейшем работу: если фронтенд, то сверстать дизайн-макет с клиентской логикой на яваскрипте, если серверное программирование, то сделать несложный движок какого-нибудь сервиса (простенький блог, форум, хранилище документации и прочее). Сроки, как правило, неограничены, это сделано по двум причинам: банально лень выдумывать дедлайн и для того, чтобы посмотреть, как сам кандидат относится к такому важному ресурсу как время. С практическими заданиями все всегда согласны, потому что они напрямую связаны с дальнейшей работой человека.
С теоретическим заданием сложнее. Оно, как правило, является тестом на логику либо логической головоломкой. Отошёл от этого правила я только один раз на теоретической части при собеседовании Дениса Скрипниченко: вместо логических заданий мы ушли в математику и теорию вероятностей, разобрали криптографическую схему обмена секретными ключами при полностью прослушивающемся канале связи (протокол Диффи-Хеллмана из-за своей красоты, простоты и важности является одним из самых любимых мной алгоритмов), а потом ещё оценили временные сложности алгоритмов определения авторства анонимного текста (анонимность — это миф). Но не будем о гениях…
Поскольку теоретическое задание непосредственно не связано с рабочими заданиями, я часто слышу критику в их адрес. Человек, мол, устраивается работу работать, а не решать глупые логические задачки. Особенно острая критика поступает от Стаса Агаркова. Ну, ему легко говорить — у него-то всё в порядке.
Попробую выступить в поддержку логических заданий.
Логически подкованный разум легче проводит ассоциации, находит взаимосвязи между объектами, прогнозирует события, позволяет находить решения задач не на бытовом, но на качественно более высоком уровне. Всё вместе это означает способность к получению нового знания из уже известного.
Таким образом, тест на логику даёт нам примерную оценку обучаемости, то есть, способности человека к дальнейшему образованию и, соответственно, прогрессу.
Кратко проиллюстрировать ситуацию можно таблицей:
Практика | Логика | Общая оценка и комментарий |
---|---|---|
да | да | хорошо: хорошие практические навыки, перспектива обучения |
нет | да | средне: практика не очень, но легко обучить, выведя на другой уровень |
да | нет | средне: хороший практик, но перспектива роста туманна |
нет | нет | плохо: мало опыта, плохо с обучением |
Здесь: да — это хорошее выполнение задания, нет — средний результат. Если человек не выполнил оба задания вообще или из рук вон плохо, то разговаривать с ним пока не о чем. Пусть потренируется и приходит потом.
Бывают и всевозможные отклонения:
Разумеется, все эти оценки носят полностью вероятностный характер, и бывают исключения (для их обнаружения у людей существует интуиция), но каждый раз полагаться на исключения крайне неразумно. Также важно понимать, что тестовые задания обязательны, даже если на вакансию откликнулся один человек: лучше не взять вообще никого, чем взять человека, который замедлит или нарушит работу всей команды.