Наткнулся на еще один опус о том, как правильно подбирать программистов: Давайте наймем программиста... Сама статья мне показалась ну очень уж знакомой – такое впечатление, что где-то тоже самое я уже неоднократно читал, на английском. Ну да не суть.
Важнее другое. Автор говорит, что домашние задания для соискателей – это хорошая штука – и здесь я с ним согласен (с кучей оговорок, однако). Но вот пример подходящего тестового задания просто офигителен (выделение мое):
Как пример – новостная лента или несложный сервер (HTTP или FTP).
Как говорится, я фигею с этих русских. Что такое “несложный сервер”? Это какое-то убогое подмножество HTTP-протокола с совершенно убогими возможностями по обслуживанию TCP-шных подключений?
Если так, то в чем польза такого задания по сравнению, скажем, с хрестоматийной функцией reverse? Что эта задачка покажет? Что соискатель способен сваять халтурку на коленке? Или что-то иное?
Как по мне, так подобные рекомендации являются замечательной демонстрацией того, что тестовые задания для соискателя – это очень сложная задача для самого работодателя. Мне в свое время повезло хорошую (как я думаю) задачку найти (случайным образом). Теперь ищу новую. Пока безрезультатно :( Но это точно будет не “несложный сервер” (С)
С некоторых пор тоже участвую в проведении собеседований. По хорошему надо собирать свою базу качественных задач.
ОтветитьУдалитьВот недавно проскакивала задача про get_byte... достаточно интересная тем, что испытуемый может многое забыть при реализации. Много аспектов не оговоренных в задаче. Достаточно интересна для того чтобы оценить глубину знаний испытуемого.
Очень не нравятся дурацкие вопросы с дурацким кодом, Надо рассказать что делается. - Если кто-то в проекте попытается написать такой код - руки поотрываю... :) И задавать такие вопросы - глупо.
Код должен быть красивый и обязательно компилироваться.
С поиском ошибок в коде достаточно хорошо справляются компиляторы. нет смысла требовать это от кандидатов.
@Андрей Валяев:
ОтветитьУдалить>Код должен быть красивый
Это, к сожалению, очень субъективно.
>обязательно компилироваться
и не только компилироваться, но и линковаться :) И это объективно :))
@Евгений Охотников:
ОтветитьУдалить>>Код должен быть красивый
>Это, к сожалению, очень субъективно.
Ну не скажи...
Есть стандартные рекоммендации.. типа как не делайте слишком больших функций, не используйте одну переменную для двух разных целей, Не объединияйте несколько несвязанных операций в одном выражении...
Это может быть не совсем красота, понятность, удобочитаемость... но с красотой перекликается. :)
@Андрей Валяев:
ОтветитьУдалить>Ну не скажи...
Таки вынужден сказать. Не смотря на то, что большинство разработчиков могут легко придти к общему знаменателю по поводу базовых вещей, все равно находятся люди, которые будут категорически против функций-однострочнико или которые считают лямбда-функции на 100 строк вполне нормальными и красивыми.
меня поразило количество ошибок которое народ делает в трех соснах (видел в http://blog.not-a-kernel-guy.com/2011/02/08/980 и следующем и многих постах в жж на тему ). Причем забавно именно то что задачка ставится на "на доске" чтобы побеседовать с человеком а не его компилятором :)
ОтветитьУдалить@Myroslav Rubanets:
ОтветитьУдалитьСпасибо за ссылочку, очень поднимает настроение.
На самом деле два правильных вопроса там задал Alexander Yastrebov:
>
1. Размер пакета big endian или little?
2. Что делать, если не хватает размера буфера для приема пакета?
Не имея ответов на них писать что-нибудь бесполезно.
так там же сказано - у доски с беседой. умение задать эти вопросы тоже оценивается. Так же забавно что из желавших написать только 1 вариант при 2м случае оставлял поток в определенном состоянии :)
ОтветитьУдалить>так там же сказано - у доски с беседой.
ОтветитьУдалитьЯ это о тех, кто в комментариях стал приводить решения даже не озвучив эти вопросы.
>умение задать эти вопросы тоже оценивается.
Угу, так оно и есть. Иногда наводящие вопросы от соискателя важнее написанного им решения.