outcoldman
outcoldman Denis Gladkikh

Задачи на собеседовании

Interview, Собеседование, Этюды, and Задача

Прочитав недавнюю статью на хабрахабр Кодоребус или паттерн «стратегия» на .Net 4.0 у меня всплыла мысль о том, какие задачи нужно давать на собеседовании. Всплыла она потому, что в последнем абзаце, а именно в PS, было

P.S. Обсуждение приведенного кодоребуса может быть хорошей темой для беседы с кандидатом на должность .Net разработчика

Если бы я был бы этим кандидатом, то я бы, наверное, просто напрягся из-за того, что подумал бы, с каким ужасным кодом мне предстоит работать, если я устроюсь в эту компанию. Если они предлагают такую задачу, значит предполагают то, что мне предстоит встречаться с таким кодом. Я сейчас не говорю о том, сложная эта задача или легкая, нужно ли ее решать или не нужно. Я просто говорю о коде, который вы встретите. И я не хочу упрекнуть автора статьи в том, что у него плохой код, у нас у всех код нехороший, главное дать ему время испортиться. И скорее всего автор сильно упростил этот код, чтобы что-то донести до читателей, поэтому используемый подход стал выглядеть ужасно. В общем, я сейчас говорю о том, насколько все-таки важно подбирать задачи на собеседованиях.

Еще один отличный пример достаточно распространенной задачи на собеседованиях – это задача с использованием оператора new для переопределения методов, полей базового класса (new Modifier). Я ни разу в жизни не использовал этот подход, так как он очевидно плох для архитектуры приложения. И я бы не хотел иметь дело с кодом, в котором он бы использовался. Но, на собеседованиях любят давать задачу на эту тему, и что же ожидают услышать от кандидата? По мне так хороший ответ был бы “И что, у вас так делают? Зачем вы меня спрашиваете об этом?”. По мне так - это 100% верный ответ. Второй по верности ответ был бы “Я, честно говоря, не помню, чтобы оператор new можно было бы применять для методов, поэтому, если это, действительно, возможно, я попробую решить ее интуитивно и опираясь на какие-то домыслы, которые я вам приведу.”, и не важно какое будет потом решение. И уже следующим для меня “правильным решением” будет просто правильное решение.

В общем, подводя итог: нельзя давать на собеседованиях задачи, основанные на вашем говнокоде.

Have feedback or questions? Looking for consultation?

My expertise: MongoDB, ElasticSearch, Splunk, and other databases. Docker, Kubernetes. Logging, Metrics. Performance, memory leaks.

Send me an email to public@denis.gladkikh.email.

The content on this site represents my own personal opinions and thoughts at the time of posting.

Content licensed under the Creative Commons CC BY 4.0.