«Вопросы на собеседовании» — вечная тема, но новый пост Егора Бугаенко спровоцировал совсем уж громадную волну обсуждений, в которой отметились самые разные люди.
В посте Бугаенко написал, что на все обращения рекрутеров из крупных компаний вроде Google отвечает одинаково: «Я действительно очень заинтересован и не имею ничего против собеседования. Но с одним условием: его должен проводить мой непосредственный будущий начальник». После этого рекрутеры тут же испаряются и больше не дают о себе знать.
По словам Егора, к такому ответу его подтолкнул опыт общения с рекрутерами Amazon. Два года назад ему написали оттуда о том, как заинтересованы в работе с ним, но затем, когда он тоже проявил интерес, не имеющие никакого представления о его заслугах люди заставили его почти четыре часа писать алгоритмы на доске, и он не прошёл эту проверку.
Бугаенко не утверждает, что эта проверка вообще ни о чём не говорит или что он хороший программист. Он говорит только то, что его компетенции лежат в другой области, и если бы рекрутер сразу сообщил, что им нужен эксперт в алгоритмах, то обе стороны не потратили бы время зря. Поэтому теперь он заинтересован только в общении с тем, кто действительно знаком с его бэкграундом и может понять, в чём он принесёт пользу.
Его запись определённо резонирует с ощущениями многих людей. И на Reddit, и на HackerNews ссылки на пост получили сотни комментариев и апвоутов, и большинство комментаторов согласны с тем, что опора на алгоритмы в собеседованиях имеет мало общего с реальными рабочими задачами разработчика. Более того, в дискуссию ввязались известные люди вроде создателя Ruby on Rails, поддержавшие идею, что неспособность доказать свою состоятельность алгоритмами ещё не говорит об общей несостоятельности как программиста:
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
Также нашлись люди, которым повезло больше: Тагир Валеев (JetBrains) заметил в комментариях, что в его случае собеседование проводил как раз непосредственный начальник, и его имеющиеся заслуги были учтены.
Но помимо людей, в целом согласных с Бугаенко, нашлись и возражающие. Например, Алексей Шипилёв считает, что задачи на алгоритмы — хороший способ быстро отсеять давно не кодивших, и дальше продолжить разговор с теми, с кем есть, о чём говорить.
FizzBuzz, basic computer arithmetic, binary search, DFS/BFS, trivial collections are great filters for those who did not code recently.
— Aleksey Shipilëv (@shipilev) February 22, 2017
Близких позиций придерживается, например, Вячеслав Егоров (экс-разработчик V8):
if you can't reason about two integers being swapped in an array in isolation, how can you reason about thousands of intertwined parts?
— Vyacheslav Egorov (@mraleph) February 22, 2017
А также Никита Прокопов:
Why are people so proud of not being able to write bubble sort or tree traversal on a whiteboard? These are two most trivial things in CS 1/
— Nikita Prokopov (@nikitonsky) February 22, 2017
А что думаете вы: упор на алгоритмы — это тупой подход, вызванный неумением работать с большим потоком разношёрстных кандидатов, или эффективный способ первичного отсеивания явно непригодных?
- Алексей ШипилёвРаботает над производительностью Java вот уже почти 10 лет. Успел позаниматься производительностью Apache Harmony в Intel, затем перешёл в Sun Microsystems, а потом и в Oracle, где работал над производительностью Sun/Oracle JDK, в том числе производительностью JVM, библиотек классов, фреймворков и приложений. На данный момент трудится в Red Hat. Являлся техническим представителем Oracle в Standard Performance Evaluation Corporation (SPEC), занятой разработкой и поддержкой промышленных бенчмарков. В данный момент серьёзную часть времени тратит на Java Microbenchmark Harness, инструмент для измерения производительности Java-кода.
- Тагир ВалеевРазработчик в JetBrains, занимается статическим анализатором кода IntelliJ IDEA, инспекциями и квик-фиксами. Также он кидает патчики в OpenJDK и разрабатывает опенсорсную библиотеку StreamEx. Известен на Хабрахабре как lany, в твиттере — как @tagir_valeev.
- Егор БугаенкоЕгор уже более десяти лет CTO в Teamed.io — софтверной компании с уникальной методологией разработки в распределенном режиме. Егор регулярно пишет на www.yegor256.com, пишет на Java в rultor.com, takes.org и jcabi.com. Егор живет то в Пало-Альто, то в Киеве. @yegor256