Итак, мой топ-7 способов быстрой проверки компетенций IT-специалистов до собеседования:
7. Изучить портфолио, примеры кода, открытые репозитории кандидата.
6. Короткое тестовое задание на время (выполняется за 30-60 минут).
5. Короткое экспресс-собеседование про навыки по телефону/скайпу (как опросник, только онлайн и голосом).
4. Live-Doing (Coding) – решаем простую задачку в реальном времени с расшаренным экраном.
3. Опросники с открытыми вопросами про опыт.
2. Короткие тесты с вариантами ответов, ограниченные по времени прохождения.
1. Многоэтапное тестовое задание, первый этап выполняется до собеседования.
Далее я подробно рассматриваю эти способы, их достоинства и недостатки и ситуации, в которых я использую тот или иной способ быстрой проверки компетенций программистов.
В предыдущей статье про воронку найма habr.com/ru/post/447826 я проводил опрос среди читателей про способы быстрой проверки навыков IT-специалистов. В этой статье я рассказываю о способах, которые нравятся лично мне, почему они мне нравятся и как я их применяю. Я начинаю с первого места и закончу седьмым.
1. Многоэтапное тестовое задание, первый этап выполняется до собеседования
Я считаю этот способ проверки компетенций разработчиков – лучшим. В отличие от традиционного тестового задания, когда вы говорите «держи задачу и иди делай», в моем варианте процесс выполнения тестового задания разбивается на этапы – обсуждение и понимание задачи, проектирование решения и оценка требуемых ресурсов, несколько этапов реализации решения, документирование и сдача-приемка решения. Этот подход ближе к нормальной современной технологии разработки ПО, чем просто «возьми и сделай». Подробности далее.
В каких случаях я использую этот способ
Для своих проектов я обычно нанимаю удаленных сотрудников, которые разрабатывают отдельную, обособленную и относительно независимую часть проекта. Это уменьшает необходимость коммуникации между сотрудниками, часто до нуля. Сотрудники общаются не друг с другом, а с руководителем проекта. Поэтому мне важно сразу оценить способности человека быстро разобраться в задаче, задать уточняющие вопросы, самостоятельно выработать план действий по решению задачи, оценить необходимые ресурсы и время. В этом мне хорошо помогает многоэтапное тестовое задание.
Как реализовать
Выделяем и формулируем самостоятельную и оригинальную задачу, связанную с проектом, над которым предстоит трудиться разработчику. Я обычно описываю в качестве задания упрощенный прототип основной задачи или будущего продукта, для реализации которого разработчику придется столкнуться с основными проблемами и технологиями проекта.
Первым этапом тестового задания является ознакомление с задачей, уточнение непонятного, проектирование решения, планирование шагов по решению задачи и оценка времени на выполнение отдельных шагов и всего тестового задания. На выходе я ожидаю документ на 1-2 страницы, где расписан план действий разработчика и оценка времени. Также я прошу кандидатов указать какой из этапов они хотели бы реализовать полностью для подтверждения своих навыков на практике. Программировать пока что ничего не нужно.
Это задание (одно и то же) раздается нескольким кандидатам. Ожидается, что ответы от кандидатов поступят на следующий день. Далее, через 2-3 дня, когда все ответы получены, анализируем что же нам прислали кандидаты и какие уточняющие вопросы они задавали, прежде чем приступить к выполнению задания. На основе этой информации можно пригласить на следующий этап любое нужное вам количество кандидатов.
Следующим этапом является короткое собеседование. Нам уже есть, о чем поговорить. Кандидат уже примерно представляет себе предметную область проекта, над которым ему предстоит работать. Основная задача этого собеседования – ответить на технические вопросы кандидата и замотивировать его на выполнение основного тестового задания – программирования той части задачи, которую он сам выбрал. Или той части, реализацию которой хотите увидеть вы.
Всегда очень интересно наблюдать какую часть задания разработчик хочет реализовать. Некоторые предпочитают раскатывать структуру проекта, декомпозировать решение на модули и классы, то есть двигаются сверху вниз. Некоторые – выделяют отдельную подзадачу, наиболее важную на их взгляд, не прописывая решение в целом. То есть идут снизу вверх – от самой сложной подзадачи к целому решению.
Преимущества
Мы можем увидеть эрудицию кандидата, применимость его знаний к нашему проекту, развитость коммуникативных навыков. Также нам легко сравнить кандидатов между собой. Обычно я отбрасываю тех кандидатов, кто дал слишком оптимистичные и слишком пессимистичные оценки времени выполнения задачи. Разумеется, у меня есть собственная оценка времени. Малая оценка кандидата говорит скорее всего о том, что человек не вник в задачу должным образом и выполнил данное тестовое поверхностно. Слишком большая оценка времени обычно говорит о том, что кандидат плохо представляет себе предметную область, не имеет опыта в нужных мне темах. Я не отбрасываю кандидатов сразу на основе их оценки, а прошу мотивировать свою оценку, если оценка не была уже в достаточной степени мотивирована.
Кому-то этот способ может показаться сложным и затратным. Моя оценка трудоемкости применения этого способа такая – на описание тестового задания нужно 30-60 минут и затем на проверку ответа каждого кандидата – 15-20 минут. У кандидатов выполнение такого тестового задания обычно занимает не более 1-2 часов, при этом они погружаются с суть задач, которые им придется в дальнейшем решать. Уже на этом этапе кандидату может стать неинтересно, и он отказывается от общения с вами, потратив немного времени.
Недостатки
Во-первых, нужно придумать оригинальную, изолированную и ёмкую тестовую задачу, это не всегда возможно. Во-вторых, не все кандидаты сразу понимают, что на первом этапе не требуется программировать. Некоторые сразу приступают к программированию и пропадают на несколько дней, потом присылают полностью выполненное тестовое задание. Формально, они не справились с данным тестовым заданием, потому что сделали не то, что от них требовалось. Но одновременно с этим, они и справились, если прислали адекватное решение всего тестового задания. Чтобы исключить такие казусы, я обычно обзваниваю всех кандидатов, получивших задание, через 2 дня после выдачи задания и узнаю, как у них дела.
2. Короткие тесты с вариантами ответов, ограниченные по времени прохождения
Я нечасто применяю этот способ, хотя он мне очень нравится, и я считаю его одним из лучших способов быстрой проверки компетенций. Я напишу про этот способ отдельную статью в ближайшее время. Такие тесты широко применяется в разных областях знаний. Самый яркий и типичный пример – теоретический экзамен для получения водительского удостоверения. В России этот экзамен содержит 20 вопросов, на которые нужно ответить за 20 минут. Допускается одна ошибка. При двух ошибках необходимо безошибочно ответить на 10 дополнительных вопросов. Этот способ прекрасно автоматизируется.
К сожалению, я не встречал хороших реализаций подобных тестов для программистов. Если вы знаете хорошие готовые реализации подобных тестов для программистов, пожалуйста, напишите в комментариях.
Как реализовать
Я работал с самостоятельными реализациями подобных тестов работодателями при выполнении заказов в качестве рекрутера-аутсорсера. Реализовать такой тест вполне возможно. Например, с помощью Google Forms. Основная проблема – в составлении вопросов и вариантов ответов. Обычно фантазии работодателей хватает на 10 вопросов. К сожалению, в Google Forms невозможно реализовать ротацию вопросов из пула и ограничения по времени. Если вы знаете хороший онлайн-инструмент для создания своих тестов, где можно ограничить время прохождения теста и организовать выбор разных вопросов для разных кандидатов, то напишите, пожалуйста, про такие сервисы в комментариях.
В каких случаях я использую этот способ
Сейчас я использую такой способ по просьбе работодателей, если у них есть готовые тесты, которые можно дать кандидатам. Также возможно сочетание подобных тестов с четвертым способом из моего рейтинга – просим кандидата расшарить свой экран и пройти тест. При этом вы можете обсуждать с ним вопросы и варианты ответов.
Преимущества
При хорошей реализации этот способ автономен. Кандидат может выбрать удобное ему время на прохождение теста и вам не нужно тратить много своего времени.
Недостатки
Качественная реализация этого способа довольно затратная и это не очень удобно для маленькой компании, изредка нанимающей новых сотрудников.
3. Опросники с открытыми вопросами про опыт
Это набор открытых вопросов, предлагающих кандидату порассуждать на основе своего опыта. При этом мы не предлагаем варианты ответов. Открытые вопросы – это такие, на которые нельзя ответить просто и односложно. Например, вспомните самую трудную задачу, которую вы решали с помощью фреймворка такого-то? В чем заключалась основная сложность для вас? На такие вопросы нельзя ответить односложно. Точнее, единственный простой ответ – у меня нет такого опыта, не работал с этим инструментом.
Как реализовать
Легко реализуется с помощью Google Forms. Главное – придумать вопросы. Я использую несколько стандартных конструкций.
Расскажите про последний проект, который вы делали с помощью ХХХ, что было для вас самым трудным в этом проекте?Соответственно, эти конструкции можно применить к многим технологиям из вашего рабочего стека. На такие вопросы непросто ответить шаблонными фразами из сети, так как они личные и про личный опыт. Отвечая на эти вопросы, кандидат обычно держит в голове мысль, что на собеседовании любой из его ответов может получить развитие в виде дополнительных вопросов. Поэтому если опыта нет, то кандидаты часто самоустраняются, понимая, что дальнейшая беседа может быть бессмысленной.
Какие главные достоинства технологии ХХХ для вас, приведите примеры из своего опыта?
Выбрав технологию ХХХ, какие еще альтернативы вы рассматривали и почему выбрали именно ХХХ?
В каких ситуациях вы предпочтете технологию ААА, а не ВВВ?
Расскажите про самую сложную задачу, которую вы решали с помощью ХХХ, в чем заключалась основная сложность?
В каких случаях я использую этот способ
При работе с заказами на подбор специалистов, если заказчик не предложил своего способа первичной проверки компетенций, я применяю этот способ. У меня уже есть заготовленные опросники по ряду тем и мне ничего не стоит применить этот способ для нового заказчика.
Преимущества
Несложно реализовать с помощью Google Forms. Причем новый опрос можно сделать на основе предыдущего, заменив названия технологий и инструментов на другие. Например, опрос про опыт с React будет мало чем отличаться от опроса про опыт с Angular.
Составление такого опросника занимает 15-20 минут, а на ответы кандидаты обычно тратят 15-30 минут. Затраты времени небольшие, но мы получаем информацию про личный опыт кандидата, от которой можем оттолкнуться и сделать каждое собеседование с кандидатами уникальным и более интересным. Обычно продолжительность собеседования после такого опросника меньше, так как не приходится задавать простые однотипные вопросы.
Недостатки
Чтобы отличить собственный ответ кандидата от «нагугленного» нужно разбираться в тематике. Но это быстро приходит с опытом. После просмотра 10-20 ответов вы научитесь отличать собственные оригинальные ответы кандидатов от найденных в сети.
4. Live-Doing (Coding) – решаем простую задачку в реальном времени с расшаренным экраном
Суть этого способа в том, чтобы попросить кандидата решить несложную задачу и наблюдать за процессом. Кандидат может пользоваться чем угодно, нет запрета на поиск информации в сети. Кандидат может испытывать стресс от того, что за его работой наблюдают. Не все кандидаты соглашаются на такой вариант оценки их навыков. Но, с другой стороны, этот способ позволяет увидеть какие знания у человека есть в голове, чем он сможет воспользоваться даже в стрессовой ситуации и за какой информацией он пойдет в поисковик. Практически сразу заметен уровень кандидата. Новички используют самые базовые, даже примитивные возможности языка, часто начинают реализовывать функционал базовых библиотек вручную. Более опытные кандидаты хорошо ориентируются в базовых классах, методах, функциях и могут быстро решить простую задачу – в 2-3 раза быстрее новичков, применив знакомый им функционал базовой библиотеки языка. Еще более опытные кандидаты обычно начинают с рассуждений о разных подходах к решению задачи и рассказывают несколько вариантов решения, спрашивают – реализацию какого из вариантов я хочу увидеть. Все что делает кандидат можно обсудить. Даже на основе одной и той же задачи интервью получаются очень разные, как и решения кандидатов.
В качестве разновидности этого способа можно попросить кандидата пройти какой-нибудь тест на проверку профессиональных компетенций, обосновавая выбор того или иного из вариантов ответов. В отличие от обычного тестирования, вы узнаете, насколько обоснованным был выбор ответов. Вы можете придумать свои разновидности этого способа с учетом особенностей вашей вакансии.
Как реализовать
Этот способ легко реализуется с помощью Skype или другой аналогичной системы видео-связи, позволяющей демонстрировать экран. Задачи можно придумать самостоятельно или воспользоваться площадками типа Code Wars, разнообразными готовыми тестами.
В каких случаях я использую этот способ
Когда подбираю программистов и по резюме совсем не понятно какой уровень знаний у кандидата, я предлагаю кандидатам собеседование в таком формате. По моему опыту – примерно 90% разработчиков не возражают. Им приятно, что с первого же собеседования начинается общение про программирование, а не дурацкие вопросы типа «кем вы себя видите через 5 лет».
Преимущества
Несмотря на стресс и волнение кандидата, сразу и хорошо виден общий уровень навыков кандидата. Также становятся хорошо заметны коммуникативные навыки кандидата – как он рассуждает, как объясняет и мотивирует свое решение. Если нужно обсудить кандидата с коллегами, нетрудно сделать видеозапись со своего экрана и затем показать собеседование другим людям.
Недостатки
Связь может прерываться. Из-за волнения кандидат может начать тупить. В этой ситуации можно прерваться и дать ему время поразмыслить над задачей в одиночестве, перезвонить минут через 10 и продолжить. Если и после этого кандидат ведет себя странно, то стоит попробовать другой способ оценки навыков.
5. Короткое экспресс-собеседование про навыки по телефону/скайпу
Это просто разговор голосом по телефону, скайпу или другой системе голосовой связи. При этом мы можем оценить коммуникативные навыки кандидата, его эрудицию и кругозор. В качестве плана разговора можно использовать опросник. Как вариант – можно более подробно обсудить с кандидатом его ответы на ваш опросник.
Как реализовать
Договариваемся с кандидатом о беседе и звоним. Задаем вопросы, фиксируем ответы.
В каких случаях я использую этот способ
Этот способ я обычно применяю вместе с опросником, когда ответы кандидата показались мне оригинальными или недостаточно убедительными. Я беседую с кандидатом вокруг вопросов из опросника и выясняю его мнение более подробно. Я считаю подобную беседу обязательной, когда важны коммуникативные навыки кандидата, умение просто и доходчиво формулировать свои мысли.
Преимущества
Без разговора голосом на профессиональные темы обычно невозможно определить, насколько хорошо кандидат умеет излагать свои мысли.
Недостатки
Основной недостаток – дополнительные затраты времени. Поэтому я применяю этот способ в дополнение к другим, если в этом есть необходимость. Кроме того, есть кандидаты, которые отлично говорят на профессиональные темы, но на практике умеют мало. Если нужен программист, который будет стабильно и качественно решать задачи, то лучше выбрать другой способ первичной проверки компетенций. Если нужен менеджер или аналитик, то есть специалист, который переводит с человеческого языка на «программистский» и обратно, то этот способ проверки компетенций будет весьма кстати.
6. Короткое тестовое задание на время (выполняется за 30-60 минут)
Для ряда профессий важно умение специалиста быстро найти решение задачи. Как правило, задачи решаются несложные, но важно время решения задачи.
Как реализовать
Договариваемся с кандидатом о времени выполнения тестового задания. В назначенное время отправляем кандидату условия задачи и выясняем понял ли он что от него требуется. Засекаем время, затраченное кандидатом на решение задачи. Анализируем решение и время.
В каких случаях я использую этот способ
В моей практике этот метод применялся для проверки компетенций специалистов технической поддержки, SQL-программистов и тестировщиков (QA). Задачи были типа «найди проблемные места и придумай как устранить проблему», «оптимизируй SQL-запрос, чтобы работало в 3 раза быстрее» и т.п. Разумеется, вы можете придумать свои задачи. Для начинающих разработчиков такой метод тоже можно применять.
Преимущества
Мы тратим свое время только на составление и проверку задания. Кандидат может выбрать удобное ему время выполнения задания.
Недостатки
Основной недостаток – в сети могут быть размещены решения ваших задач или подобных, поэтому нужно иметь некоторое количество вариантов и периодически придумывать новые задания. Если нужно протестировать скорость реакции и кругозор, лично я выбираю тесты на время (способ №2).
7. Изучить портфолио, примеры кода, открытые репозитории кандидата
Это, пожалуй, самый понятный способ проверки компетенций, при условии, что у ваших кандидатов есть портфолио и у вас в команде подбора есть специалисты, способные оценить портфолио.
Как реализовать
Изучаем резюме кандидатов. Если находим ссылки на портфолио, то изучаем. Если указаний на портфолио в резюме нет, то запрашиваем портфолио у кандидата.
В каких случаях я использую этот способ
В моей практике этот способ применялся очень редко. Нечасто в портфолио кандидатов можно найти работы по нужной теме. Опытные кандидаты часто предпочитают этот способ вместо типового и неинтересного тестового задания. Они говорят – «посмотрите мой реп, там десятки примеров моих решений разных задач, вы увидите как я пишу код».
Преимущества
Экономится время кандидатов. При наличии времени у профессионалов в вашей команде возможно быстро и без коммуникации с кандидатами отсеять неподходящих. Пока рекрутер ищет кандидатов, его коллега – оценивает портфолио. Получается достаточно быстрая и параллельная работа.
Недостатки
Применять этот способ можно далеко не для всех IT-профессий. Для оценки портфолио нужно самому обладать развитыми навыками. Если вы – не специалист, то вы не сможете качественно оценить портфолио.
Коллеги, приглашаю обсудить прочитанное в комментариях. Расскажите, какие еще способы быстрой проверки компетенций вы применяете?
Комментарии (75)
faoriu
07.05.2019 11:37На мой взгляд тесты и им подобные способы подходят лучше всего, поскольку позволяют исключить вкусовщину и прочие перекосы в восприятии кандидата.
red_perez
07.05.2019 11:391. Многоэтапное тестовое задание
На одном из этих «многих» этапов кандидата уведет конкурент, у которого этапов меньше
7. Изучить портфолио, примеры кода
Вообще не вариант, у меня с работодателем НДА подписано, тот код что я пишу это его собственнось.
Более того, новый работодатель видит как я демонстрирую кому попало код старого работодателя вряд ли захочет на его месте оказаться.
Показать могу только тот код что пишу для развлечения дома, но там показывать особо нечего.
igor-sheludko Автор
07.05.2019 12:02На одном из этих «многих» этапов кандидата уведет конкурент, у которого этапов меньше
Интересно, вы суть прочитали или только заголовок?red_perez
07.05.2019 12:19Пробежал по диагонали,
ибо, как вы верно заметили, скептицизм начался уже с заголовка.
Это уже выглядит странно — давать кандидату практичесское задание до того как он прошел собеседование.
Меня бы это насторожило и возможно даже отпугнуло, часто попадаются всякие тайм-вейстеры занимающиеся исследованием рынка и прочей бурдой.
Реакция автоматическая — они даже не поговорили со мной а суют какое-то задание, значит они ограничены в ресурсах, возможно потому что пытаются просеять информацию от 100500 кандидатов, а возможно от недостатка финансирования, при любом раскладе это не означает ничего хорошего для меня.
И таки да, это удлинняет ваш отбор потому что одно и то же задание раздается разным кандидатам и вам надо синхронизировать по времени получение и обработку ответов.alex-ivanovich
07.05.2019 16:16Ну так почитать о проекте и потом собеседование. Это же лучше чем собес про ваше видение себя через 5 лет :)
red_perez
07.05.2019 16:54Ну так почитать о проекте и потом собеседование
На мгновение мне показалось что речь шла о выполнении «Многоэтапного тестового задания». «Почитать» никто не предлагал.
igor-sheludko Автор
07.05.2019 18:38Цитирую
Первым этапом тестового задания является ознакомление с задачей, уточнение непонятного, проектирование решения, планирование шагов по решению задачи и оценка времени на выполнение отдельных шагов и всего тестового задания. На выходе я ожидаю документ на 1-2 страницы, где расписан план действий разработчика и оценка времени.
Ознакомиться с задачей и задать вопросы, описать план действий — это выполнение первого этапа. Занимает 20-60 минут, если проект заинтересовал. Программировать не требуется.red_perez
07.05.2019 18:50К этому этапу вопросов нет, а дальше то что?
igor-sheludko Автор
07.05.2019 19:04Опять цитирую
Следующим этапом является короткое собеседование. Нам уже есть, о чем поговорить. Кандидат уже примерно представляет себе предметную область проекта, над которым ему предстоит работать. Основная задача этого собеседования – ответить на технические вопросы кандидата и замотивировать его на выполнение основного тестового задания – программирования той части задачи, которую он сам выбрал. Или той части, реализацию которой хотите увидеть вы.
Всегда очень интересно наблюдать какую часть задания разработчик хочет реализовать. Некоторые предпочитают раскатывать структуру проекта, декомпозировать решение на модули и классы, то есть двигаются сверху вниз. Некоторые – выделяют отдельную подзадачу, наиболее важную на их взгляд, не прописывая решение в целом. То есть идут снизу вверх – от самой сложной подзадачи к целому решению.
Задача первого этапа — откинуть самых неадекватных кандидатов. Общаться голосом в кандидатами имеет смысл всегда. Вопрос — о чем? В Яндексе первая беседа голосом — с HR про жизнь и планы на будущее. Я же предлагаю в первой беседе голосом уже обсуждать будущий проект и тестовое задание.red_perez
07.05.2019 19:06Ну не издевайтесь надо мной уже.
Следующий этап то какой?igor-sheludko Автор
07.05.2019 19:27Следующий после какого?
1. Знакомитесь с задачей, присылаете план и оценку времени выполнения.
2. Созваниваемся и беседуем про проект и ТЗ (30 мин примерно).
3. Если вы заинтересованы, вы делаете кусок ТЗ, который вам интересен (или нам интересен) — на 1-3 часа работы.
4. Смотрим ваш код и делаем предложение или отказываем.
Все.red_perez
07.05.2019 20:203. Если вы заинтересованы, вы делаете кусок ТЗ
Да, вот это.
То есть просто «почитав» проскочить не выйдет?igor-sheludko Автор
07.05.2019 21:24Проскочить на следующий этап отбора — собеседование. На вакансию откликнулось 10 человек. Задача побеседовать с самыми заинтересованными и подходящими. Даём почитать и смотрим на вопросы и оценку. Беседуем с 3-4. Теперь понятно?
alex-ivanovich
07.05.2019 16:14Написано же — первый этап — понять суть тестового задания и будущего проекта и задать вопросы, оценить как будешь делать тестовое, а потом собеседование — что может быть проще и приятнее? Собес уже о проекте и если и придётся кодить, то ту часть, которая тебе интересна.
vlreshet
07.05.2019 11:41Live Coding… Из-за волнения кандидат может начать тупить.
О, знакомая ерунда. Завалил так начисто собеседование. 5 лет опыта работы, а в режиме «реши вот такую задачку при мне, код пишем в гугл доке» затупил на… цикле. На банальном, мать его, «for» цикле. И докажи потом что ты не идиот, просто волнуешься) В жизни то никто над душой не стоит, когда код пишешьigor-sheludko Автор
07.05.2019 12:03Ну в доке — это тупость :) в своей удобной и настроенной среде — нормально
Lexicon
07.05.2019 21:01Тоже отличился однажды тем, что забыл в какую сторону делать "<", не думаю что ide бы помогла.
Помогло бы выполнение кода и 0.5сек на исправление, но на собеседованиях "у нас так не принято! [утрируем] вас просят сделать не так, как вы будете делать работая, а просто угадать" [/наутрировались]
alex-ivanovich
07.05.2019 22:26Мне кажется, что если не в ide, то там скорее алгоритм обсуждается, а не код, который будет стопроцентно работать.
alex-ivanovich
07.05.2019 16:18+1Буквально сегодня тут статья про отбор в яндексе — они просят на бумажке или доске писать при личной встрече. Это же маразм, но народ к ним идёт.
s0x90
07.05.2019 18:39+2Отказываюсь от интервью с Live кодингом. Еще в школе впадал в ступор, когда преподаватель смотрел через плечо как я решаю задачу. Да и вообще идея таких интервью выглядит бредовой, что интервьюер хочет посмотреть, как я могу печатать? Ну давайте каменщиков на собеседовании будем просить показать как они кладут кирпичи.
igor-sheludko Автор
07.05.2019 18:41Этот способ подходит не всем. Я так и написал в статье. Основная цель — увидеть что вы можете сделать сами и когда полезете за решением в интернет или документацию.
alex-ivanovich
07.05.2019 22:27Не поверите, но у каменщиков именно этот проверяют — покажи как будешь выкладывать тот или иной элемент
vlreshet
08.05.2019 09:33Это даже на работе работает, при чём почти у всех: стоит позвать кого-то мол «посмотри свежим взглядом какая тут у меня херня» — и начинают пальцы промахиваться, какой-нибудь простейший dd($data); вбить не можешь.
suntexnik
07.05.2019 11:58Название статьи не соответствует описанию.
В статье больше про программиста, а не IT-специалиста. Ведь к ним относятся и сисадмины, и DBA.igor-sheludko Автор
07.05.2019 12:04Большинство способов можно применить и для админов. Примеры про программистов. Проявите фантазию.
paranoya_prod
07.05.2019 12:43Из всех предложенных вариантов для сисдамина подходят только три: 5,3,2. И то, второй с большой натяжкой.
InChaos
07.05.2019 14:02Ну очень ко многим админам, и именно к ним, будь они сис или дб или еще какие буквы, применим вообще только п.5.
П.7 в их случае это просто места и срока предыдущих работ, выполняемые функции, что еже может, кроме описанных в резюме.
Все остальное мимо, т.к. для этого и берут, потому что у работодателя нет компетенций, и так все или уже не работает или вот-вот рухнет с существующими работниками.alex-ivanovich
07.05.2019 16:23Ну нет же. Тестовые задания вполне возможны. Тесты с вариантами.
InChaos
08.05.2019 09:36А кто их составлять будет? Если работодатель скачает с инета, там будут вопросы на все случаи жизни )) и 100500 вопросов не относящихся ни к фирме ни к предполагаемой работе, если кто на них и ответит, то только такой гуру, которые и так нарасхват. Так они админа никогда не найдут, а отсеивать эти вопросы некому.
Ну опять же я утрирую, я же не сказал про всех админов, но про многих. Просто сам уже который раз так устраиваюсь. ))VolCh
08.05.2019 09:49Не задавать фиксированный "проходной балл", а, например, на следующий этап пустить 10 лучших или 10% лучших.
igor-sheludko Автор
08.05.2019 10:13+1Вопросы из типичной практики. Составить может непосредственный начальник, лидер команды. Тот, кому придётся оценивать кандидатов и выбирать. У этого человека такие вопросы обычно уже есть и он их задаёт на собеседовании. Ему нужно только переложить их в форму или тест.
alex-ivanovich
07.05.2019 16:21На хабре читал про компанию, которая как раз админов тестирует следующим образом — скачиваешь образ виртуальной машины с поломанными сервисами, ищешь причины проблем и чинишь. Свой прогресс документируешь и сдаёшь отчёт — что и где починил. Чем не тестовое задание?
paranoya_prod
07.05.2019 16:57Хм. А если я через десять минут им скажу, что такую систему проще убить, чем восстанавливать? То есть, зная время развертывания каждого сервиса и время требуемое для их восстановления, можно прийти к выводу, что переустановка быстрее вернёт сервисы в работу, меня возьмут на работу? :)
PS. Просто прикольно скачивать несколько десятков гигов образа, если это Винда, на своём не всегда быстром домашнем канале в Интернет.igor-sheludko Автор
07.05.2019 18:47Я тоже про это читал. Там про линукс сервера было. 1-2 гига образ в архиве. Если это какой-нибудь консалтинг, то их клиенты хотят, чтобы им правильно настроили, а не снесли и восстановили из бэкапа.
Если вам нужно придумать тестовые задания в вашу компанию — можем обсудить ваш случай исходя из того, какие навыки вы хотите проверить.paranoya_prod
08.05.2019 10:04Настроили и починили — это две разные задачи.
Настроили предполагает поднять сервисы с нуля. А починить предполагает восстановить работу упавших сервисов. Восстановление работы сервиса — это SLA. Время на восстановление включает изучение причин падения, их анализ и принятие решения либо о починки того, что было, либо восстановлении из бекапа, либо поднятии с нуля по имеющемуся плану поднятия сервиса с нуля, если он есть.
Единственный вариант который приходит мне в голову для восстановления того, что упало — это критичные данные не имеющих бекапа, но тогда это работа может занять много времени и зависит от внутренней структуры файлов хранения данных.
Для таких заданий, по моему мнению, важнее не восстановление данных, а алгоритм по которому претендент будет действовать.igor-sheludko Автор
08.05.2019 10:16+1В общем создать ситуации тестовые можно. Однако часто на отбор забивают и просто берут того, кто лучше пел на собеседовании. Через 1-2 недели в работе становится ясно и либо оставляют либо увольняют. Такая практика тоже есть. Но я за качественный отбор.
VolCh
07.05.2019 19:42Ну вариант: последний бэкап был 59 минут назад, данные в образе критические для бизнеса.
igor-sheludko Автор
07.05.2019 21:26+1Часто бывает так — все годами работает, потом раз — взломали и что-то повредили. Бэкап вернёт вас в систему до взлома, которую опять можно взломать. Задача — исправить систему, устранив уязвимости.
Koyanisqatsi
07.05.2019 13:08+1Видимо автор работает в некоей компании-мечте, куда все хотят, т.к. если какая-то контора, про которую я не знаю, начнет мне предлагать многоэтапное тестовое задание, я свалю.
alex-ivanovich
07.05.2019 16:24-1Скорее всего это будет к лучшему и для работодателя. Зачем нужен сотрудник, который убегает в ответ на просьбу изучить задачу и предложить на словах план решения.
aknew
07.05.2019 17:55Так убегает-то не сотрудник, а всего лишь человек который подумывал пойти к ним (причем еще большой вопрос кто инициировал контакт) и который вполне может посчитать что ему не интересно тратить столько времени на эту вакансию.
igor-sheludko Автор
07.05.2019 18:58+1Убегает то кандидат, но зачем такой сотрудник :)
В любом случае, перечисленные способы служат для отсева неподходящих кандидатов с малыми затратами усилий. Полноценное собеседование отнимает 1-2 часа времени у квалифицированного сотрудника. Если потенциальный кандидат посмотрел на тестовое задание и даже не готов расписать план действий по выполнению этого задания, то скорее всего (на 99%) он не подойдет и нет смысла планировать с ним собеседование и выделять 2 часа времени на общение с ним. В случае бесполезного собеседования время тратит также и кандидат, поэтому такое тестовое уважает интересы и кандидата.aknew
07.05.2019 19:19Ну как бы собеседование — процесс обоюдный и на нем не только вы узнаете кандидата, но и кандидат вас (а то в вакансиях и резюме все горазды писать как у них все хорош), а сразу начинать с тестового выгодно только работодателю. Хотя конечно тут много дополнительных вопросов:
— кто инициировал общение — я это уже упоминал выше и скорее всего именно это меня и настораживает, а конкретно прилетевшая недавно на почту вакансия где мне даже не представились, но сразу речь про тестовое задание
— что за компания (собственно, с чего началась эта ветка) и насколько я в нее хочу попасть
— насколько у кандидата есть сейчас время и т.п.igor-sheludko Автор
07.05.2019 21:29Конечно не так как вы описали. Вначале выясняется ваша заинтересованность в вакансии. Потом предлагается ознакомиться с тестовым заданием. Если вы желаете — будет созвон перед тестовым. Или созвон после того как вы познакомились с тестовым и вам что-то непонятно.
igor-sheludko Автор
07.05.2019 18:49Меня как работодателя никто не знает особо. Мне нужны люди, которые сразу понимают на какой проект они идут. Похоже, что вы не поняли почему задание — многоэтапное. Первый этап — познакомиться с задачей и определить план действий по выполнению задачи. Если уже на этом этапе вам не понравится проект, стек технологий или наш подход, то скорее всего мы не сработаемся.
White_Scorpion
08.05.2019 11:29+1Первым этапом для кандидата должно быть — не "познакомитсья с задачей", а объяснение того, зачем ему вообще хотя бы пытаться проходить эти этапы.
VolCh
08.05.2019 12:10Ну, видимо, предполагается, что тестовое проходят те, кто или сам откликнулся на публичную вакансию или те, кого рекрутёры уже как-то заинтересовали. Не "холодная продажа".
White_Scorpion
08.05.2019 16:55Если соискатель уже проходил какие-то этапы то вот это "Первый этап — познакомиться с задачей и определить план действий по выполнению задачи" — уж точно НЕ первый этап.
alex-ivanovich
07.05.2019 16:27-1Про многоэтапное тестовое задание — мне очень понравилось. Я очень был бы рад, если бы меня так собеседовали — показали задачу из будущего проекта, над которым работать, дали возможность выбрать ту часть, которая интересна.
Stas911
07.05.2019 21:23Сначала хотел написать, что «ну вас в баню с тестовыми заданиями». Но потом подумал, что лично я бы все же предпочел сделать домашнее задание в спокойной обстановке, чем кодить что-то на ходу с расшаренным экраном.
White_Scorpion
08.05.2019 10:22-1Многоэтапное тестовое задание
Зачем мне выполнять его? Какой профит? Если интересное — ещё может быть возможно, но в свободное время и когда я это решу делать. А если нет — нафиг мне проходить этап за этапом имея потенциальный риск на любом из этапов равновероятно получить "вы нам не подходите"? Ради тех самых "у нас страховка, и бонусы, и плюшки, и бла-бла-бла"? Ребята, хватит из себя строить Google (который, кстати, по словам некоторых — уже не торт), в который все прям бегут и мечтают попасть.
Когда же до HR дойдёт, что разработчик с опытом — уже давно всем и всё доказал. Посмотри на портфолио разработчика — если он не прыгал по компаниям каждые полгода туда-сюда (потенциальная угроза того, что его увольняли), а достаточно продолжительно работал в 2-3 местах — ОН УЖЕ ПИСАЛ КОД И РЕШАЛ ЗАДАЧИ. Достаточно опроса что он делал и звонка в соответствующие компании, для подтверждения квалификации. Во ВСЕ компании — мало ли он на последнем месте работы поругался с каким нибудь манагером? Вам же не нужно выяснять кто из них адекватный, а кто нет — поэтому чем больше точек обзвонишь — тем объективнее ситуация.
Тесты
Серьёзно? Чтобы получить работу я должен не показать знания и навыки, а сдать тест? А если я знаю ответ на тест шире, чем ответ поставленный в тесте? Допустим на вопрос "что такое PDF" лично я вместо ответа "Portable Document Format", если поднапрягусь — могу вспомнить внутреннюю структуру и требования к оформлению смещений ссылок на страницы внутри PDF как минимум по спецификации 1.5. А как это в тесте показать? Короткой скромной подписью — "знаю чуть больше, но нет места куда вписать ответ"?
На такие тесты очень хочется заявить ответное: А давайте я проверю HR на ошибки — как он нанимает людей? Тест проведу — умеет ли он вообще нанимать? Достоин ли он — нанимать меня? И нет ли рядом какого-нибудь более компетентного HR?
Опросники с открытыми вопросами про опыт
Единственное что более менее разумное, но… "Чтобы отличить собственный ответ кандидата от «нагугленного» нужно разбираться в тематике" — иди ты? Реально? Вот мы и дошли до ситуации, что чтобы нанять разработчика — нужен… другой разработчик. И вся эта катавасия с "опросами, тестами и т.д." это какая-то отсебятина, чтобы… Для чего она? Чтобы показать собственную значимость? Как то сразу становится очевидно, что роль HR на самом деле начинается и заканчивается на "встретить человека и препроводить к компетентному специалисту для профессиональной беседы", а не то, что они себе понапридумывали. Но кушать то — HRам тоже хочется. А за просто "препровождение" — много не заплатят.
Live-Doing (Coding) – решаем простую задачку в реальном времени с расшаренным экраном
Ладно так и быть — это тоже разумная вещь, если бы не одно но: терпеть не могу, когда кто-то смотрит в мой экран из-за спины.
По моему опыту – примерно 90% разработчиков не возражают. Им приятно, что с первого же собеседования начинается общение про программирование
Ну так для этого надо в теме — шарить, а много ли найдётся "шарящих в теме программирования HR"? Я вот за всю свою (с 2004 нанимаюсь) карьеру — не встречал шарящих HR. В лучшем случае — слова знакомые слышали. И единственный реальный профессионализм, который HR показывали — скорость препровождения к нужному лицу для беседы.
rjhdby
08.05.2019 15:08Как то сразу становится очевидно, что роль HR на самом деле начинается и заканчивается на "встретить человека и препроводить к компетентному специалисту для профессиональной беседы"
Вот нет. Роль HR(при личной встрече) как минимум:
а) Убедиться, что соискатель не буйный псих/тихий говнюк и не пришел собеседоваться с торчащим из засаленных трусов чебуреком. Т.е. определить общую адекватность человека.
б) Ответить на вопросы по специфике работы в компании. Ну вот те самые фишки про режим работы, премии, штрафы, отпуска, печеньки и прочую хренотень. Т.е. дать человеку возможность сразу соскочить, не мучая себя и других, если что-то не нравится.
в) Ненавязчиво поспрашивать про предыдущие места работы, почему решил уйти. Т.е. прикинуть, не уйдет ли он через пол года, рассказывая другому HR-овцу, какое говно его бывшая компания.
И только после этого вести к компетентному специалисту, чтобы шансы, что они вдвоем с соискателем потратят пару часов своей жизни(и работы) не в пустую, были повыше.
White_Scorpion
08.05.2019 15:38Поправка принимается. Пункты "а" и "в" у вас — можно в принципе объединить…
rjhdby
08.05.2019 15:52Пункт "в" не столько про адекватность человека, сколько про несовместимость его с вашими реалиями. Допустим его прямо бесит, что надо раз в неделю писать отчет о проделанной работе, к которому придираются за грамматические ошибки. Так-то в рамках пункта "в" эта тема может и не подняться, а потом выстрелить — мама не горюй.
argamidon
А они должны быть в обязательном порядке, да? Например мой enterprise код не является моей собственностью => никаких открытых репозиториев.
Или каждый разраб должен уметь бесплатно «работать за идею»?
А если вас, как собеседующего, попросят показать свой код, вы покажете? Собеседования уже давно идут в две стророны, я бы даже что сказал кандидат собеседует работодателя.
В 2018 году я проходил цикл собеседований и нигде меня не спрашивали «примеры кода». Совпадение? Не думаю.
RPG18
Лично я тестовое задание передаю через GitHub, как говориться с паршивой овцы хоть шерсти клок.
igor-sheludko Автор
Поэтому этот пункт на 7-м месте :) Потому что нечасто у кого есть :) И да — все тестовые, что вы делали — можно туда, если работодатели не будут бурно возражать :)
RPG18
Если тестовое задание не оплачивается, то:
alex-ivanovich
Бывает, что тестовое выдаётся под NDA
RPG18
Это где выдаётся под NDA?
GCU
Согласно NDA соискатель не может об этом говорить :)
igor-sheludko Автор
Прямо вот под NDA — не доводилось встречать. Поэтому мне тоже интересно. Конечно же небольшим работодателям не нравится когда их оригинальное тестовое задание гуляет по сети.
Stas911
Все конторы FAANG
alex-ivanovich
В конторках, выполняющих заказы всяких там гос-корпораций и минобороны
RPG18
Я работал в конторах выполняющие гос заказы минобороны. Вам в тестовом задании никто не даст то, что является гос. тайной.
VolCh
Тогда 100% оплаты под минимум 1,5 ожидаемого часового рейта
igor-sheludko Автор
Да, вы правы. Тестовые задания — это нормальный способ наполнить свой реп и потом отказываться от выполнения похожих. Не все это хорошо воспринимают. Но адекватные компании нормально реагируют на «я делал нечто похожее, посмотри вот тут у меня».
artem_se
Почему сразу «бесплатно за идею». Например, работая на фрилансе, я выделил несколько типовых решений и опубликовал в PyPi, чтобы прекратить копипастить и
начать житьставить из зависимостей. Теперь за примером кода работодатель идет смотреть репозитории, на предложение сделать тестовое отправляется туда же.alex-ivanovich
А что спрашивали? Неужели не было ничего про «покажи как ты пишешь код»?
0xd34df00d
Некоторые разрабы любят писать код и иногда делают это даже в свободное время.
Ну и да. Это правда зачастую отменяет всякие тестовые задания и упрощает остальные этапы собеседования.
Lexicon
Я обожаю писать код вне работы. А с другой стороны в личное время мы делаем для себя.
"мы хотим видеть как вы мыслите", а мыслю я так, как мыслит человек, который пилит мод под игру совместно с 2 людьми которые научились программировать вчера, а паре тысяч игроков хотелось бы, чтобы вышел мод в день обновления игры и не ломал то, что они уже делали.
Хорош ли мой код?
Определённо он достаточно хорош для задачи.
Готов ли я дать этот код черт знает кому, чтобы он "оценил, как я мыслю", даже не представляя как мыслит он сам?
Да я скорее сброшусь с моста.
Похожая ерунда с тестовыми заданиями. За редким исключением не попадалось задания, описанного достаточно подробно,
чтобы не тратить существенное количество неоплачиваемого рабочего времени на угадывание критериев оценки неизвестного человека.
Ну и в конце-концов, даже не будь nda, часто в проектах код или архитектура ну очень далеки от того идеально вылизанного чудовища, которое можно воплотить в задании.
igor-sheludko Автор
Именно поэтому я поставил на первое место способ, где вначале обсуждается задание, имеющее непосредственное отношение к последующей работе в случае найма.
VolCh
Я обычно, когда сдаю тестовое, если уточнение задачи не предполагалось, делаю README (и дублирую его в письме) с перечнем сделанных предположений, допущений и ограничений. Начиная с банального "задача реализована в "лоб", любые значимые изменения требований потребуют большого рефакторинга" или "задача реализована с учётом изменения требований в стороны такие-то"
rjhdby
Репа на гитхабе — это, по сути, портфолио разработчика. Лебедев (как бы кто к нему не относился) в свое время дал крайне грамотный совет — если вам нечего показать в своем портфолио, то сами придумайте себе заказчика, задание и требования и сделайте его так, как будто вам платят за это хорошие деньги.