Я занимаюсь разработкой программного обеспечения уже несколько лет. За эти годы мне пришлось провести более тысячи собеседований и посчастливилось нанять более сотни отличных программистов.
Естественно, у меня сложилась определенная практика проведения технических интервью, которой я собираюсь поделиться.
Возможно, это будет кому-то полезно.
Ставим задачу Кого ищем? Мы ищем эффективных бойцов.
Известно, что эффективность программистов с подобным опытом может отличаться в 10 раз ( Ф.
Брукс ) или даже 27 раз ( Р.
Гласс ).
Сразу оговорюсь: эффективность — это не только количество трупов врагов реализованных требований к ПО на единицу трудозатрат, но и умение эффективно взаимодействовать с другими.
Это важно, потому что по моим наблюдениям 50% человеко-часов проекта уходит на коммуникации.
Мы называем это «синхронизацией ментальных моделей».
Поэтому задача, которую мы ставим перед собой при проведении технического интервью, — попытаться оценить эффективность бойца.
Если на заводах людей нанимают за их навыки и обучают правильному отношению, то в разработке программного обеспечения следует делать обратное.
Нанимайте на правильный настрой и обучайте необходимым навыкам.
Не следует брать людей, которые знают и могут, а затем промывать им мозги и пытаться мотивировать их на эффективную работу.
Их знания и навыки ничего не будут стоить через полгода-год. В идеале, конечно, следует стараться привлекать знающих, умелых и подходящих по своей жизненной позиции людей.
Но если приходится выбирать, то лучше выбрать жизненную позицию.
Мы ищем тех, кто хочет развиваться и расти, а затем, при необходимости, помогаем им получить необходимые технические навыки.
Мы предлагаем не работу, а возможности.
Почему мы не тестируем Как правило, технические тесты ориентированы на проверку узкоспециализированных знаний: структур данных, алгоритмов, конкретных стандартов и API и т. д. Правильный/неправильный ответ на вопрос: «i=1; я = я++ + ++я; чему я равенЭ» не указывает на многое.
Более того, правильного ответа на этот вопрос нет, и не дай Бог вам написать подобное в производственном коде! Попытки дать кандидатам олимпиадные задачи по программированию, или задачи из книги «Математические задачи», обычно связаны с желанием, возможно, не очень успешных вчерашних учеников самоутвердиться или с желанием продемонстрировать кандидату свою некомпетентность, чтобы потом снизить предложение по зарплате.
Технические тесты демонстрируют уровень IQ и эффективность левого полушария, возможности которого подтверждаются, как правило, дипломом о высшем образовании и всем успешным опытом предыдущей работы.
Креативность и эффективность человека в командном развитии зависят, прежде всего, от уровня его эмоционального интеллекта.
эквалайзер ) и деятельность правого полушария, отвечающего за решительность, волю, сопереживание, интуицию, способность выносить эвристические суждения.
Но, к сожалению, достоверных тестов правого полушария пока не найдено.
Поэтому слушаем, слушаем и еще раз слушаем.
И самое главное, мы слышим! Принципы.
При проведении технического интервью мы стараемся придерживаться следующих основных принципов:
- Мы помним, что вы ведете переговоры с потенциальным деловым партнером, а не пытаетесь выторговать более дешевый товар на рынке.
- Каждый человек уникален и имеет свою ценность.
Если нам нечего предложить кандидату, это не значит, что он «неудачник».
Мы помним, что несправедливо обиженный кандидат – это пятно на бренде компании.
Сегодня это означает не меньше, чем несправедливо обиженный клиент.
- Люди не рождаются победителями, они ими становятся.
Мы нанимаем кандидата только в том случае, если можем предоставить ему такую возможность.
- Ну и последнее.
«Программист — это не профессия, это образ мышления».
Это позволяет вам быть более объективным, посмотреть на кандидата с разных сторон и лучше его понять.
Давайте начнем знакомиться, кто мы.
Не забывайте, что смена работы — это всегда «стресс», который, по мнению психологов, занимает третье место по значимости после развода и пожара в семье.
Мы помогаем кандидату прийти в себя.
В противном случае мы поговорим с другим человеком.
Кстати, во время собеседования не следует сидеть напротив кандидата за столом, так как это создает формальный барьер и не дает ему расслабиться.
Лучше быть на стороне кандидата или рядом.
Мы спрашиваем: Почему вы рассматриваете предложения о работе? Что Вы ищете? Что вы можете рассказать о своем самом удачном проекте (если студент, то о теме вашего диплома или самом интересном учебном предмете)? Что вы считаете своим самым большим профессиональным достижением? Что вам меньше всего нравилось делать на предыдущей работе? Для уточнения деталей, даже если мы знаем, что такое «конформное отображение», мы попросим кандидата объяснить, что он имел в виду в двух словах.
Предлагается некорректная задача (которая при данных условиях имеет множество решений).
Например, определите количество заправок в Москве ( «Как сдвинуть гору Фудзи» ).
Мы пытаемся усомниться в чем-то очевидном для кандидата и начинаем с ним дискуссию.
Оцениваем эмоции и заинтересованность кандидата при ответе.
Отсутствие «пригорания» — это минус.
«Проекты выполняются не на полную мощность».
Вряд ли нам удастся его «зажечь».
Он будет относиться к нашей работе так же.
Желания «просто работать» мало.
Скорее всего, человек мотивирован избегать неудач, а не добиваться успеха.
От такого человека трудно ожидать инициативы, поиска новых возможностей и творчества.
Логическая последовательность, лаконичность и ясность изложения.
Умение анализировать проблему, разлагать ее на более простые составляющие, определять последовательность действий, синтезировать и обосновывать предлагаемое решение.
Личностная зрелость.
Если кандидат винит в своих неудачах коллег, окружение или начальство, он не является независимым человеком.
Если он не вспоминает своих коллег, рассказывая о своих достижениях, он может недооценивать важность командной работы.
Определение.
Если кандидат не знает, чего хочет, его не следует принимать на работу.
Скорее всего, мы имеем дело с человеком, который так и не стал лидером в личной жизни.
Если у кандидата есть четкое видение своих профессиональных целей и стратегии их достижения, и у нас есть проект, на котором он может реализовать свои цели, скорее всего, он «наш человек».
Даже если знаний и умений пока недостаточно.
Умение вести диалог и эффективно взаимодействовать.
Умение рассуждать, задавать вопросы, анализировать ответы, искать взаимовыгодное решение в конфликтных ситуациях.
Отвечаем Собеседование должно быть двусторонним.
Вы пытаетесь выяснить, подходит ли вам кандидат. Кандидат – подходит ли ему работа, которую вы предлагаете? Если кандидат задает вопросы, это хорошо.
Вопросы, которые обычно ожидаются.
Над каким проектом вы работаете? Каковы твои цели? Когда это началось? Каково условие? Сколько человек постоянно на проекте? Опыт команды? Распределение ролей? Какова скорость оборота? Как организован процесс разработки программного обеспечения? Используемые технологии и подходы? Инструменты автоматизации? Техническая поддержка? Принимая решения? Ставить цели? Отчетность и оценка результатов? Аварийные ситуации? Через некоторое время? Система мотивации? Наличие вопросов свидетельствует об активной позиции кандидата и заинтересованности в работе.
Правильные вопросы свидетельствуют об опыте специалиста.
Принимаем решение «Могу вам предложить…», после чего следует описание должности, должностных обязанностей и размера вознаграждения.
Возможно, это будет иная позиция, чем та, на которую изначально позиционировал себя кандидат, если, на наш взгляд, он будет более эффективен в этой роли.
Или «Я могу вам предложить…», после чего следует список конкретных недостающих знаний и навыков, приобретение которых позволит кандидату занять эту должность в будущем.
Кандидаты вернулись! Теги: #Интервью #интервью #тимбилдинг #программирование
-
5 Диаграмм О Работе Менеджера Среднего Звена
19 Oct, 24 -
Обзор Возможностей Современного Javascript
19 Oct, 24 -
Давайте Говорить По-Русски
19 Oct, 24