В условиях жесткой конкуренции бизнес должен уделять максимум внимания созданию качественных продуктов и услуг. Технологические компании не могут добиться хорошего результата без сильных разработчиков. Однако нанять программиста, который действительно усилит команду, не так-то просто — часто бывает, что казавшийся на собеседовании идеальным вариантом кандидат после выхода на работу не может ужиться с коллегами, слишком много времени тратит на написание простого кода, но результат все равно не назвать хорошим.
Существуют ли способы еще на этапе собеседования распознать программиста, который окажется действительно хорош в реальной работе и поможет вывести проект на новый уровень? Этим вопросом задались пользователи ресурса StackExchange — мы выбрали лучшие советы рекрутерам от разработчиков, прозвучавшие в ходе дискуссии.
Следует проверить, насколько кандидат любит программирование
Разработчик из лондонского офиса Google Йон Скит (Jon Skeet) советует интервьюерам больше говорить о том, что интересно кандидату-программисту. Страсть, с которой человек говорит о своей работе и своих достижениях – самый надежный индикатор его профессионализма. Скит говорит, что за свою многолетнюю практику не встречал программиста, увлеченно рассказывающего о разработках, но не способного написать качественный код.
Проверить наличие такой увлеченности можно, к примеру, спросив, что кандидат хотел бы улучшить в своем любимом языке программирования или используемой платформе. Также полезно поинтересоваться, есть ли у разработчика собственные проекты, которые он развивает в свободное время. Кроме того, при подготовке к интервью следует просмотреть профили кандидата в соцсетях и профессиональных сообществах, оценив уровень вовлеченности в обсуждение текущих технологических тенденций.
Нужно использовать опыт других компаний
Еще один пользователь StackExchange по имени Хамиш Смит (Hamish Smith) рекомендует применять в ходе собеседований опыт других компаний. К примеру, для построения сценария беседы с кандидатом-разработчиком можно использовать какие-то моменты из опросника для телефонного собеседования от Стива Йега. Неплохим вариантом является и использование руководства по проведению интервью от знаменитого разработчика Джоэла Сполски.
Крайне важно проверить навыки работы с кодом
Разработчик Адам Лисс (Adam Liss) в свою очередь убежден, что важнейшим элементом интервью с техническим специалистом должна быть проверка его навыков работы с кодом. Среди заданий может быть, к примеру, поиск ошибок в кусках уже написанного кода, кроме того, можно попросить кандидата рассказать, что этот код делает, а также оценить стиль его написания, выбранный алгоритм, возможность быстро внести нужные исправления и т.д.
Еще одной задачей может быть написание собственного кода — сразу будут видны такие важные моменты, как скорость работы, качество написанного и удобство поддержки. Полезным методом является и проектирование небольшой системы, решающей конкретную задачу, прямо на собеседовании — так можно понять, насколько человек способен вникнуть в проблему, какие подходы использует, как взаимодействует.
Чтобы оценить честность и реальный опыт кандидата, нужно спросить у него, в чем он, по собственному мнению, действительно хорошо разбирается. Затем нужно задать простой вопрос по теме, если ответ верный, то спросить что-то более сложное, и так шаг за шагом, пока не будет достигнут предел знаний интервьюируемого. Этот метод не только показывает реальный уровень знаний, но и показывает способность кандидата к логическому мышлению и работе в команде. Умение спокойно мыслить и объяснять другим людям сложные вещи в обстановке стресса — важное качество.
Узнать хорошего программиста сможет только хороший программист
Еще один важный момент заключается в том, что программисты — это люди с вполне определенными навыками и талантами. К примеру, программирование способствует развитию навыков верной формулировки вопросов и поисков ответа на сложные вопросы. Не-программисту сложно оценить кандидата в таких критериях, а вот профессиональный разработчик сможет это сделать, считает пользователь под ником Eigir.
По его мнению, рекрутерам следует с самого начала приглашать на интервью технически подкованных людей, поскольку их вопросы помогут лучше раскрыть кандидата — они сформулируют задачу корректнее и спросят вещи, которые покажут реальный уровень специалиста, а не то, как быстро он умеет гуглить, или насколько хорошая у него память.
Нельзя забывать о личных качествах
ASP.Net-разработчик Мэтт Джонс (Matt Jones) также поднял важность проверки не только технических навыков кандидата, но и способность к существованию в коллективе. По мнению Джонса, даже самый гениальный программист, который не умеет ладить с людьми, окажется бесполезным для компании.
При найме технических специалистов же напротив очень часто этому аспекту уделяется не так много внимания, что в будущем приводит к проблемам и разочарованию в нанятом специалисте со стороны его коллег.
Выяснить, насколько коммуникабелен человек, можно довольно просто — достаточно задать ему несколько вопросов, которые часто звучат на собеседованиях кандидатов на не-технические должности. К примеру, вопросы о прошлом месте работы помогут выяснить, насколько хорошо соискатель ладил с коллегами. Программированию можно научить, но научить личным качествам практически невозможно.
Заключение
Поиск разработчиков и проведение интервью с ними — непростое занятие, которое требует подготовки. Технических специалистов оценивают прежде всего по их непосредственным навыкам, однако нельзя забывать и о других важных моментах, вроде коммуникабельности и умении работать в команде.