5 самых частых ошибок, которые делают программисты на собеседовании
Перевод поста пользователя Reddit
За последний год я провёл более 50 телефонных собеседований, и наблюдал, как люди делали одни и те же ошибки снова и снова. В интернете можно найти много советов по поводу навыков, полезных для прохождения интервью, но я не видел текстов, где бы описывались стратегии, помогающие людям преуспеть. Я думаю, что у большей части наших кандидатов, дошедших до интервью, есть необходимые навыки, однако они просто нервничают и не применяют эти навыки эффективно. Чтобы был ясен контекст, наша фирма – это стартап на 100 человек, а до второго раунда интервью доходят порядка 50% людей.
Когда вы нанимаете человека на позицию универсала в компанию, занимающуюся разработкой ПО, маловероятно, что на собеседовании по телефону от вас потребуют знания фильтра Блума (хота это прикольная штука) и методов его применения. Однако же кандидаты постоянно вычёркивают удовлетворительные, не идеально оптимизированные решения, и начинают искать что-то из ряда вон. Как и в программировании, тут надо оставить сложные и специализированные структуры данных для ситуаций, где их применение не вызывает сомнений. Есть причина, по которой мы уже более 70 лет используем массивы (и сортировку слиянием).
Как исправить: используйте стандартные алгоритмы и структуры данных в качестве строительных блоков.
Эта ошибка может проявляться по-разному. Вопиющий вариант – когда интервьюер делает весьма прозрачный намёк, типа «что, если мы возьмём стек вместо дерева?», а этот намёк игнорируется или отвергается. Я, как интервьюер, пытаюсь вам помочь! В данном случае не существует ситуаций, в которых бы вас пытались обмануть. Когда интервьюер делает явное предложение, он пытается либо навести вас на правильный путь, либо заставить вас доказать, что ваше текущее решение оптимальное (а в этом случае вы, наверное, уже знаете, что ваше решение хорошее). Вне зависимости от того, что он делает, игнорирование подсказок ни к чему хорошему не приводит.
Иногда кандидаты принимают подсказку, некоторое время пытаются работать над решением, а потом отбрасывают её и возвращаются к тому, что не сработало ранее (или переходят к чему-то другому). Если кто-то даёт вам подсказку, а вам кажется, что она не работает, ничего страшного – но у вас должно иметься чёткое объяснение того, почему альтернативное решение будет лучше предложенного. Помните, мы пытаемся помочь вам принять верное решение, и у нас есть ответ, поэтому наши решения, скорее всего, будут полезными (однако иногда люди придумывают великолепные решения, не предусмотренные нами).
Как исправить: внимательно рассматривайте то, что даёт вам интервьюер.
Эта ошибка пересекается с предыдущей, однако кандидаты часто встречаются с решением достаточно рано, а потом навешивают на него улучшения для решения любой проблемы. Если вам кажется, что ответ не совсем удачно подходит к задаче, скорее всего, в основе вашего решения есть проблема. Не бойтесь выбрасывать текущее решение (особенно, если вы можете назвать его отрицательные стороны) и выбирать новое. Правильный ответ обычно будет быстрым, поэтому не волнуйтесь по поводу временных ограничений.
Как исправить: не бойтесь выбрасывать текущее решение и выбирать новое.
Эта ошибка не топит кандидатов прямо сразу, но причиняет им неприятности двумя способами. Во-первых, описав решение очень детально, они привязываются к нему и не желают от него отказываться, что приводит к проблеме (3). Что хуже, у интервьюера уходит больше времени на то, чтобы понять, что решение неверно. Интервьюеры обычно уводят вас от неверных решений, и ведут в сторону правильных, поэтому, чем быстрее они поймут ваше решение, тем быстрее они направят вас, куда надо. Поскольку интервью ограничены по времени, лучше дать неправильное решение за 30 секунд, чем за 5 минут. А если решение правильное, или близкое к этому, интервьюер всегда сможет запросить у вас детали.
Как исправить: быстро выдавайте правильный или неправильный ответ и двигайтесь оттуда.
В этой ошибке я обвиняю советы из семинаров колледжа «как пройти интервью на техническую должность» и статьи из онлайн-изданий. Важно довести до интервьюера ваши мысли, но просто бормотать что-то не стоит. Никто из нас не садится сразу же за компьютер и не начинает мгновенно писать код после получения задачи – поэтому можно не начинать говорить прямо сразу после получения вопроса. Вполне можно сказать что-то вроде «дайте-ка я минутку подумаю», и сконцентрироваться на 30 секунд или минуту. По причинам из пункта (4) не задерживайтесь, однако правильный ответ после минуты молчания – это гораздо лучше, чем 2 минуты болтовни без хорошего ответа. Краткое молчание позволяет кандидату собраться с мыслями и выдать связный ответ, что гораздо лучше бессвязного.
Как исправить: сообщайте о ваших мыслях, но не бойтесь привести их в порядок перед этим.
За последний год я провёл более 50 телефонных собеседований, и наблюдал, как люди делали одни и те же ошибки снова и снова. В интернете можно найти много советов по поводу навыков, полезных для прохождения интервью, но я не видел текстов, где бы описывались стратегии, помогающие людям преуспеть. Я думаю, что у большей части наших кандидатов, дошедших до интервью, есть необходимые навыки, однако они просто нервничают и не применяют эти навыки эффективно. Чтобы был ясен контекст, наша фирма – это стартап на 100 человек, а до второго раунда интервью доходят порядка 50% людей.
1) Предполагают, что существует какое-то очень удачное решение
Когда вы нанимаете человека на позицию универсала в компанию, занимающуюся разработкой ПО, маловероятно, что на собеседовании по телефону от вас потребуют знания фильтра Блума (хота это прикольная штука) и методов его применения. Однако же кандидаты постоянно вычёркивают удовлетворительные, не идеально оптимизированные решения, и начинают искать что-то из ряда вон. Как и в программировании, тут надо оставить сложные и специализированные структуры данных для ситуаций, где их применение не вызывает сомнений. Есть причина, по которой мы уже более 70 лет используем массивы (и сортировку слиянием).
Как исправить: используйте стандартные алгоритмы и структуры данных в качестве строительных блоков.
2) Игнорируют советы и подсказки интервьюера
Эта ошибка может проявляться по-разному. Вопиющий вариант – когда интервьюер делает весьма прозрачный намёк, типа «что, если мы возьмём стек вместо дерева?», а этот намёк игнорируется или отвергается. Я, как интервьюер, пытаюсь вам помочь! В данном случае не существует ситуаций, в которых бы вас пытались обмануть. Когда интервьюер делает явное предложение, он пытается либо навести вас на правильный путь, либо заставить вас доказать, что ваше текущее решение оптимальное (а в этом случае вы, наверное, уже знаете, что ваше решение хорошее). Вне зависимости от того, что он делает, игнорирование подсказок ни к чему хорошему не приводит.
Иногда кандидаты принимают подсказку, некоторое время пытаются работать над решением, а потом отбрасывают её и возвращаются к тому, что не сработало ранее (или переходят к чему-то другому). Если кто-то даёт вам подсказку, а вам кажется, что она не работает, ничего страшного – но у вас должно иметься чёткое объяснение того, почему альтернативное решение будет лучше предложенного. Помните, мы пытаемся помочь вам принять верное решение, и у нас есть ответ, поэтому наши решения, скорее всего, будут полезными (однако иногда люди придумывают великолепные решения, не предусмотренные нами).
Как исправить: внимательно рассматривайте то, что даёт вам интервьюер.
3) Запихивают квадратный колышек в круглое отверстие
Эта ошибка пересекается с предыдущей, однако кандидаты часто встречаются с решением достаточно рано, а потом навешивают на него улучшения для решения любой проблемы. Если вам кажется, что ответ не совсем удачно подходит к задаче, скорее всего, в основе вашего решения есть проблема. Не бойтесь выбрасывать текущее решение (особенно, если вы можете назвать его отрицательные стороны) и выбирать новое. Правильный ответ обычно будет быстрым, поэтому не волнуйтесь по поводу временных ограничений.
Как исправить: не бойтесь выбрасывать текущее решение и выбирать новое.
4) Слишком быстро зарываются в детали
Эта ошибка не топит кандидатов прямо сразу, но причиняет им неприятности двумя способами. Во-первых, описав решение очень детально, они привязываются к нему и не желают от него отказываться, что приводит к проблеме (3). Что хуже, у интервьюера уходит больше времени на то, чтобы понять, что решение неверно. Интервьюеры обычно уводят вас от неверных решений, и ведут в сторону правильных, поэтому, чем быстрее они поймут ваше решение, тем быстрее они направят вас, куда надо. Поскольку интервью ограничены по времени, лучше дать неправильное решение за 30 секунд, чем за 5 минут. А если решение правильное, или близкое к этому, интервьюер всегда сможет запросить у вас детали.
Как исправить: быстро выдавайте правильный или неправильный ответ и двигайтесь оттуда.
5) Не заполняют тишину
В этой ошибке я обвиняю советы из семинаров колледжа «как пройти интервью на техническую должность» и статьи из онлайн-изданий. Важно довести до интервьюера ваши мысли, но просто бормотать что-то не стоит. Никто из нас не садится сразу же за компьютер и не начинает мгновенно писать код после получения задачи – поэтому можно не начинать говорить прямо сразу после получения вопроса. Вполне можно сказать что-то вроде «дайте-ка я минутку подумаю», и сконцентрироваться на 30 секунд или минуту. По причинам из пункта (4) не задерживайтесь, однако правильный ответ после минуты молчания – это гораздо лучше, чем 2 минуты болтовни без хорошего ответа. Краткое молчание позволяет кандидату собраться с мыслями и выдать связный ответ, что гораздо лучше бессвязного.
Как исправить: сообщайте о ваших мыслях, но не бойтесь привести их в порядок перед этим.