Допустимы ли переполнения буфера от дипломированного разработчика? Мы устанавливаем планку слишком высоко? Каковы ожидаемые возможности выпускников / младших инженеров?
Контекст:
В настоящее время мы набираем на должность младшего разработчика, работающего в основном в C на Linux.
В рамках этого процесса мы требуем, чтобы кандидаты проходили тестирование кода на досуге в C.
До сих пор мы отклонили двух кандидатов на основании того, что их код, хотя и читаемый и в одном случае довольно идиоматический, страдает от ошибок переполнения буфера из-за неограниченной записи в буфер.
[Редактировать]:
- Мы явно просим проверенный на ошибки код качества производства.
- Мы предоставляем тестирование и сборку для кандидатов
[Обновить]:
В результате этой цепочки и личных бесед с другими разработчиками мы меняем способ проведения тестов кода и на кого мы нацеливаемся при наборе персонала.
Мы решили, что кандидат не может исправить или понять, что переполнение буфера означает, что он не подходит для той работы, которую мы выполняем, в частности, ему потребуется больше наставничества, чем нам удобно. Поэтому мы все равно будем отклонять кандидатов, которые в конечном итоге не смогут представить надежный образец кода.
Однако мы приняли некоторые меры, чтобы сделать процесс набора персонала более продуктивным как для нас, так и для кандидатов.
Особенно:
- Мы делаем наши ожидания более четкими, с четким объяснением того, что мы подразумеваем под качеством продукции, и с предупреждением о том, что код должен быть надежным в отношении ввода и ошибок.
- Теперь мы связываем кандидатов с ресурсами по защитному программированию и стандартной библиотекой C в описании теста кода.
- Мы изменили нашу целевую аудиторию с младших разработчиков и выпускников на целевых людей с некоторым соответствующим опытом.
- В случае, если представленный код каким-либо образом дает сбой, но в противном случае будет принят, мы сейчас предоставляем минимальный тестовый пример, который вызывает условие ошибки и дает кандидатам возможность исправить свои ошибки (если код не отклонен по какой-либо другой причине). Мы также укажем проблемные линии / функции, если это необходимо.
- Цель самих тестов теперь немного изменилась: от входного фильтра появился шанс создать лучшую картину кандидата, в частности, это сообщит наше телефонное обсуждение. Тем не менее, мы по-прежнему готовы отказаться, основываясь исключительно на коде.
[Обновление 2015-07-09]: Энди Дэвис из Nujob написал интересную и актуальную статью об использовании теста кода с точки зрения кандидата, и эту статью стоит посмотреть. Найдите это здесь .