От переводчика.
За последние несколько дней тема использования головоломок и решения задач на доске при собеседовании программистов в очередной раз попала в тренд. Началось все с поста Егора Бугаенко Why I Don’t Talk to Google Recruiters, потом ссылка на запись появилась на Hacker News и Reddit, а затем получила реакцию в Твиттере. Твит David Heinemeir Hannson-а, создателя Ruby On Rails, запустил целую цепочку ответов в стиле “Hello, I’m … ” где люди высказывались, какого рода алгоритмические задачи они не в состоянии решить, несмотря на большой опыт и успешные проекты за плечами.
Hello, my name is David. I would fail to write bubble sort on a whiteboard. I look code up on the internet all the time. I don't do riddles.
— DHH (@dhh) February 21, 2017
Мне показалось, что будет интересно узнать и про альтернативный подход к собеседованию. Подход, который не включает решение сложных алгоритмических задач у доски или знание тонкостей языка программирования. Ниже — перевод статьи из официального блога компании Pivotal. Проектами компании являются такие программные продукты как: фреймворк для разработки приложений на Java Spring Framework, облачная PaaS платформа Pivotal Cloud Foundry, система обмена сообщениями RabbitMQ. А подразделение Pivotal Labs занимается внедрением гибких практик в разработке ПО.
Как мы проводим собеседования в Pivotal
Спрашивали ли вас когда либо вопрос-головоломку на собеседовании? Например, “почему канализационные люки — круглые?” Или “как много шариков для пинг-понга поместится в школьный автобус?”. Или, возможно, вас просили написать на доске код, который реверсирует связанный список?
На собеседованиях в Pivotal мы так не делаем. Мы знаем, что такого рода вопросы не скажут ничего о том, как хорошо кандидат может писать код production-качества. Или проектировать удобные пользовательские интерфейсы. Или может ли кандидат управлять бэклогом эффективно.
Такого рода теоретические вопросы на интервью так же не дают кандидату шанс увидеть — какого это работать здесь. Мы верим, что собеседование — это дорога с двухсторонним движением. Мы проводим собеседование с вами точно так же, как вы проводите собеседование с нами. И каждый из нас пытается ответить на один и тот же вопрос — “Хотим ли мы работать вместе?”.
Как это работает?
Мы выяснили, что лучший способ, чтобы нам обоим понять, хотим ли мы работать вместе — это попробовать поработать вместе. Если бы мы держали вас в переговорке, заставляя отвечать на коварные вопросы весь день — мы бы знали, какого этого — вместе “работать” над головоломками. Или, что более вероятно, мы бы знали — как вы справляетесь с решением головоломок находясь под пристальным вниманием и постоянной оценкой. Упс.
Наше собеседование для инженеров воплощает эту философию — «попробовать поработать вместе». Если вы кандидат на позицию инженера — мы просим вас прибыть в офис к завтраку. Вы присоединитесь к небольшой команде и увидите своими глазами как мы начинаем каждый день. Затем, вы посетите стэндап, а после — поработаете со своей командой первую половину дня. Затем с другой командой — вторую половину дня. А обед проведете за расслабленной беседой в дружеской компании.
Когда вы работаете с командой, вы программируете в паре с кем-то. Обычно, это включает работу над реальной задачей из бэклога. Скорее всего, если мы хорошо подготовились к вашему приходу, вы даже не заметите, как тщательно подобрана эта задача. Но не думайте, что все так просто — мы действительно подходим к выбору задачи с величайшим вниманием. Задача должна быть такой, чтобы ее можно было быстро объяснить. Не слишком большой, но и не слишком маленькой. Ну и, конечно, должна включать написание кода. Иногда в качестве такой задачи выбирается не самая приоритетная. Но в этом нет ничего страшного. Если бы мы брали исключительно приоритетные задачи — то мы бы шли на риск потратить большую часть времени на объяснение контекста. Или риск работать над чем-то, что не сможет показать ваши навыки программирования.
Вы и тот, кто проводит собеседование, будете работать вместе над задачей, как будто вы уже работаете в Pivotal. Нет правильного или неправильного ответа. Ваш напарник не дает подсказки, чтобы увидеть, можете ли вы решить проблему, решение которой уже известно. Вместо этого, он или она пытаются решить проблему, работая вместе с вами. На время собеседования, вы — одна команда.
Нет придуманных головоломок
Наши собеседования на другие позиции, например дизайнера или Product Manager-а, выглядят немного по другому. Но они придерживаются той же философии — заниматься реальной работой, а не придумывать головоломки.
Когда вы покинете офис в конце рабочего дня, мы надеемся, что вы поймете, как выглядит типичный рабочий день здесь. Мы надеемся, что вы сможете почувствовать дух взаимодействия и ощутить “обратную реакцию” от продукта и его пользователей. Эти два фактора являются ключевыми в нашей философии разработки ПО. А больше всего, в независимости от результата интервью, мы надеемся, что вы просто отлично и весело проведете время.
Мы часто слышим от кандидатов, что наш процесс отличается всего, что они видели до этого. И им это нравится.
Автор: alek_sys