среда, 16 февраля 2011 г.

[work.flame] HTTP-сервер как тестовое задание для соискателя – это оригинально!

Наткнулся на еще один опус о том, как правильно подбирать программистов: Давайте наймем программиста... Сама статья мне показалась ну очень уж знакомой – такое впечатление, что где-то тоже самое я уже неоднократно читал, на английском. Ну да не суть.

Важнее другое. Автор говорит, что домашние задания для соискателей – это хорошая штука – и здесь я с ним согласен (с кучей оговорок, однако). Но вот пример подходящего тестового задания просто офигителен (выделение мое):

Как пример – новостная лента или несложный сервер (HTTP или FTP).

Как говорится, я фигею с этих русских. Что такое “несложный сервер”? Это какое-то убогое подмножество HTTP-протокола с совершенно убогими возможностями по обслуживанию TCP-шных подключений?

Если так, то в чем польза такого задания по сравнению, скажем, с хрестоматийной функцией reverse? Что эта задачка покажет? Что соискатель способен сваять халтурку на коленке? Или что-то иное?

Как по мне, так подобные рекомендации являются замечательной демонстрацией того, что тестовые задания для соискателя – это очень сложная задача для самого работодателя. Мне в свое время повезло хорошую (как я думаю) задачку найти (случайным образом). Теперь ищу новую. Пока безрезультатно :( Но это точно будет не “несложный сервер” (С)

8 комментариев:

Andrey Valyaev комментирует...

С некоторых пор тоже участвую в проведении собеседований. По хорошему надо собирать свою базу качественных задач.

Вот недавно проскакивала задача про get_byte... достаточно интересная тем, что испытуемый может многое забыть при реализации. Много аспектов не оговоренных в задаче. Достаточно интересна для того чтобы оценить глубину знаний испытуемого.

Очень не нравятся дурацкие вопросы с дурацким кодом, Надо рассказать что делается. - Если кто-то в проекте попытается написать такой код - руки поотрываю... :) И задавать такие вопросы - глупо.

Код должен быть красивый и обязательно компилироваться.

С поиском ошибок в коде достаточно хорошо справляются компиляторы. нет смысла требовать это от кандидатов.

eao197 комментирует...

@Андрей Валяев:

>Код должен быть красивый

Это, к сожалению, очень субъективно.

>обязательно компилироваться

и не только компилироваться, но и линковаться :) И это объективно :))

Andrey Valyaev комментирует...

@Евгений Охотников:

>>Код должен быть красивый
>Это, к сожалению, очень субъективно.


Ну не скажи...
Есть стандартные рекоммендации.. типа как не делайте слишком больших функций, не используйте одну переменную для двух разных целей, Не объединияйте несколько несвязанных операций в одном выражении...

Это может быть не совсем красота, понятность, удобочитаемость... но с красотой перекликается. :)

eao197 комментирует...

@Андрей Валяев:

>Ну не скажи...

Таки вынужден сказать. Не смотря на то, что большинство разработчиков могут легко придти к общему знаменателю по поводу базовых вещей, все равно находятся люди, которые будут категорически против функций-однострочнико или которые считают лямбда-функции на 100 строк вполне нормальными и красивыми.

Miroslav комментирует...

меня поразило количество ошибок которое народ делает в трех соснах (видел в http://blog.not-a-kernel-guy.com/2011/02/08/980 и следующем и многих постах в жж на тему ). Причем забавно именно то что задачка ставится на "на доске" чтобы побеседовать с человеком а не его компилятором :)

eao197 комментирует...

@Myroslav Rubanets:

Спасибо за ссылочку, очень поднимает настроение.

На самом деле два правильных вопроса там задал Alexander Yastrebov:

>
1. Размер пакета big endian или little?
2. Что делать, если не хватает размера буфера для приема пакета?


Не имея ответов на них писать что-нибудь бесполезно.

Miroslav комментирует...

так там же сказано - у доски с беседой. умение задать эти вопросы тоже оценивается. Так же забавно что из желавших написать только 1 вариант при 2м случае оставлял поток в определенном состоянии :)

eao197 комментирует...

>так там же сказано - у доски с беседой.

Я это о тех, кто в комментариях стал приводить решения даже не озвучив эти вопросы.

>умение задать эти вопросы тоже оценивается.

Угу, так оно и есть. Иногда наводящие вопросы от соискателя важнее написанного им решения.