Задачи на собеседовании
- modified:
- reading: 2 minutes
Прочитав недавнюю статью на хабрахабр Кодоребус или паттерн «стратегия» на .Net 4.0 у меня всплыла мысль о том, какие задачи нужно давать на собеседовании. Всплыла она потому, что в последнем абзаце, а именно в PS, было
P.S. Обсуждение приведенного кодоребуса может быть хорошей темой для беседы с кандидатом на должность .Net разработчика
Если бы я был бы этим кандидатом, то я бы, наверное, просто напрягся из-за того, что подумал бы, с каким ужасным кодом мне предстоит работать, если я устроюсь в эту компанию. Если они предлагают такую задачу, значит предполагают то, что мне предстоит встречаться с таким кодом. Я сейчас не говорю о том, сложная эта задача или легкая, нужно ли ее решать или не нужно. Я просто говорю о коде, который вы встретите. И я не хочу упрекнуть автора статьи в том, что у него плохой код, у нас у всех код нехороший, главное дать ему время испортиться. И скорее всего автор сильно упростил этот код, чтобы что-то донести до читателей, поэтому используемый подход стал выглядеть ужасно. В общем, я сейчас говорю о том, насколько все-таки важно подбирать задачи на собеседованиях.
Еще один отличный пример достаточно распространенной задачи на собеседованиях – это задача с использованием оператора new для переопределения методов, полей базового класса (new Modifier). Я ни разу в жизни не использовал этот подход, так как он очевидно плох для архитектуры приложения. И я бы не хотел иметь дело с кодом, в котором он бы использовался. Но, на собеседованиях любят давать задачу на эту тему, и что же ожидают услышать от кандидата? По мне так хороший ответ был бы “И что, у вас так делают? Зачем вы меня спрашиваете об этом?”. По мне так - это 100% верный ответ. Второй по верности ответ был бы “Я, честно говоря, не помню, чтобы оператор new можно было бы применять для методов, поэтому, если это, действительно, возможно, я попробую решить ее интуитивно и опираясь на какие-то домыслы, которые я вам приведу.”, и не важно какое будет потом решение. И уже следующим для меня “правильным решением” будет просто правильное решение.
В общем, подводя итог: нельзя давать на собеседованиях задачи, основанные на вашем говнокоде.