Как найти программиста, который подойдет именно вам
Мы нашли очень интересный материал в блоге IT рекрутинговой компании Triplebyte, которая помогает программистам найти «свой» стартап среди компаний Y Combinator (стартап-акселератор, основанный в марте 2005 года), и подготовили его адаптированный перевод.
Оригинал: https://data.triplebyte.com/who-y-combinator-companies-want-c1880a08ac88#.nqv0giyof
Исследование основывается на анализе данных, полученных на протяжении 6 месяцев в результате проведения технических собеседований с программистами (1000+) и интервью с основателями и топ-менеджерами Top 25 стартапов из Y Combinator, для которых компания искала специалистов.
Существуют общие тенденции найма, но есть и много вещей, которые невозможно предсказать. Ключевые моменты включают в себя:
- Типы программистов, которые ищет каждая из компаний, часто не связаны с родом деятельности и нуждами стартапа, и скорее отражают культуру компании и прошлый опыт основателей. Руководствоваться данными критериями отбора внешним людям очень тяжело. Однако в большинстве компаний нетехнические рекрутеры отвергают 50% претендентов, руководствуясь этими принципами. Это огромное разочарование для всех вовлеченных в процесс.
- Общим для всех стартапов, принимавших участие в исследовании, было то, что компании более заинтересованы в поиске программистов, которые хотят делать по-настоящему действительно хороший продукт, и менее заинтересованы в людях, которые имеют чисто технический интерес. Это идет вразрез с тем, что сами программисты говорят о своей мотивации, обычно упоминая о «машинном обучении», «искусственном интеллекте» и т.п. Еще один факт, о котором говорят наши данные – стартапам не очень нравится брать на работу программистов, работавших в крупных корпорациях. Как ни странно, то же касается программистов, писавших на Java и C#.Что, как нам кажется, является довольно спорным моментом. (прим. AmazingHiring)
- На наш взгляд, это основывается на выводах, сделанных стартапами на основании небольшого количества собственных данных. Мы считаем, что стоит искать талантливых программистов с самым разным опытом.
В процессе исследования, мы проводили интервью, не глядя на резюме (для того, чтобы найти талантливых людей, которые, возможно, не очень-то хорошо смотрятся на бумаге), а затем сравнивали отзывы на каждого из них от разных компаний. Это дало нам уникальную точку зрения на профиль кандидата, которого хочет нанять каждая из компаний.
Когда мы начинали, мы предполагали, что все компании будут конкурировать за топ-5% кандидатов – все что нам остается: замерить это и задокументировать. Случай с одним из первых программистов, участвовавших в эксперименте, поразил нас. Это был талантливый программист. Он раскусывал алгоритмические задачи в два счета и очень хорошо разбирался в JavaScript. Мы отправили его в компанию, которой он грезил, и начали ждать момента, когда ему сделают предложение о работе. Каково было наше удивление, когда он провалил первое интервью. Компания сказала нам, что на встрече он не смог написать тест. Они объяснили, что ценят процесс больше, чем просто способности. Кандидат, конечно, получил работу в другой компании и нанимающий менеджер, сказал, что это лучший кандидат, которого он видел в своей жизни.
Эта история скорее правило, а не исключение. На самом деле, никто не проходит идеально ВСЕ свои интервью (даже гениальные люди могут не очень хорошо разбираться в определенных вещах, и если в интервью будет сделан акцент именно на этом аспекте, то пройти его нереально). А еще так происходит из-за того, что каждая компания нанимает за определенные навыки. Компания поставила тестирование на интервью выше алгоритмических способностей и знания JavaScript. Определение этих приоритетов компаний дает нам ситуацию win-win: ведь в этом случае мы сможем подобрать каждому программисту компанию, где будут цениться именно его навыки.
Для того, чтобы выделить приоритеты, мы подготовили описание 9 гипотетических программистов, учитывая паттерны, которые мы выделили за 1000+ интервью. Они варьируются от «Product Programmer», который любит заниматься дизайном продукта и общаться с пользователями больше, чем решать технические задачи (внутри компании мы называем их Steve Jobs programmer) до «Trial and Error Programmer», который программирует быстро и очень продуктивно, но имеет очень специфический подход к дизайну.
Academic Programmer: большая часть карьеры связана с наукой, программирование как часть кандидатской диссертации (PhD). Имеет блестящие интеллектуальные способности, и использует их для решения сложных задач, но часто пишет очень своеобразный код.
Experienced Rusty Programmer: впечатляющий опыт, может много рассказать о различных стеках технологий и баз данных, может рассказать о их плюсах и минусах в деталях. Во время технического интервью выглядит немного неповоротливо. Всегда достигает нужного результата, но иногда для этого нужно время.
Trial and Error Programmer: пишет код быстро и чисто. Впрочем, его подход предполагает метод проб и ошибок. С головой погружаются в проблемы программирования, кажется, даже чересчур. Но его скорость позволяет справляться с задачами, в конце концов, продуктивно.
Strong Junior Programmer: совсем недавно окончил университет, во время учебы проходил стажировки и около года работает полный рабочий день. Впечатляет во время технического интервью. Участвует в большом количестве дополнительных проектов, имеет отличные знания в программировании и информатике в целом. Его уровень намного выше junior.
Child Prodigy Programmer: очень молодой кандидат (около 19 лет), часто выбирает работу, вместо учебы в вузе. Программирует с самого раннего возраста и впечатляюще решает технические проблемы. Участвовал во множестве сторонних проектов и для своего возраста уже очень опытен. В будущем очень вероятно создаст собственный стартап.
Product Programmer: программист отлично показывает себя на технических интервью и заслуживает уважение коллег. Не мотивирован на решение технических проблем, хочет думать только о продукте, общаться с клиентами и вносить свою лепту в развитие.
Technical Programmer: полная противоположность Product Programmer. Хорошо общается и проходит интервью. Не мотивирован думать о продукте и пользователе. Основной упор на решение технических проблем.
Practical Programmer: кандидат легко решает задачи практического программирования, даже очень абстрактные. Тем не менее, ему не очень комфортны термины и задачи теории алгоритмов и структур данных, не имеет глубокого представления о том, как работает компьютер. Силен в ruby/python/javascript и не так хорош в низкоуровневых языках программирования (например, С).
Enterprise Programmer: Кандидат силен в алгоритмах и структурах данных, оценке сложности алгоритмов, имеет опыт, и решает технические проблемы. Работал в крупных корпорациях (Dell и Oracle/IBM). Хочет работать в стартапе, хотя очень боится взять на себя ответственность за проект. Он программирует в основном на Java с использованием IDE, такие как Eclipse.
В действительности, конечно, человек может иметь черты сразу нескольких типов. Мы встретились с основателями и топ-менеджерами компаний, с которыми работали (25) и попросили их оценить эти 9 типов в соответствии с тем, насколько они хотели бы работать с каждым из них. И получили вот такой результат:
Каждая строка показывает предпочтения одной (анонимной) компании. Каждый столбец – гипотетический профиль. Зеленые квадраты означают, что компания хотела бы проинтервьюировать этого человека, красные – нет. Пустые квадраты обозначают ситуацию, когда компания не может ответить ни да, ни нет. Как мы можем увидеть, ни у одного профиля не сложилось ситуации, когда он понравился (или не понравился) более, чем 80% компаний. Это означает, что респонденты согласны друг с другом где-то на 0,09%. Это довольно близко к нулю и обозначает, что предпочтения компании непредсказуемы.
Влияние же на программистов такого результата предсказуемо: они не проходят первичное интервью по туманным причинам. Многие компании отвергают большинство кандидатов во время телефонного разговора с рекрутером либо во время просмотра резюме рекрутером, то есть, не доходя до технического этапа. Среди 25 компаний, с которыми мы провели интервью, в среднем 47% кандидатов были отвергнуты таким образом (варьируясь от 80% до 0%). Это происходит потому, что компании отвергают кандидатов, не подходящих им по профилю. Мы видели это раз за разом, когда представляли компаниям кандидатов. Кто-то не хочет общаться с Java программистами, кто-то с «академическими» программистами, кто-то с «Entperprise-программистами». Мы заметили, что у программистов хватает терпения только на определенное количество интервью, поэтому трата времени на неподходящие компании стоит дорого!
Несмотря на всю непредсказуемость, у компаний все-таки есть схожие приоритеты и вот они:
- Существует больший спрос на программистов, ориентированных на продукт, чем ориентированных на решение сложных технических проблем. Несколько компаний напрямую сказали нам, что интерес к машинному обучению – это плохой сигнал (в обеих компаниях были команды машинного обучения). Тем не менее, наши данные показывают, что программистов, интересующихся машинным обучением в 10 раз больше, чем интересующихся, например, тестированием удобства продукта для пользователей.
- Почти никому не нравятся Java-программисты из крупных корпораций. Мы с этим в корне не согласны. Мы знаем много хороших Java программистов. Но, согласно нашим данным: программисты, пишущие на Java и С# проходили в половину меньше собеседований, чем программисты, использующие Ruby или JavaScript.
- Другие интересные факты: программисты, которые используют Vim проходили интервью с гораздо большей вероятностью, чем программисты, которые используют Emacs, и программисты на Windows, проходили интервью с меньшей вероятностью, чем программистов на OS X или Linux.
Опыт играет огромную роль. Профиль опытного программиста выигрывает у профиля неопытного вне зависимости от выбора технологий. Студенты, прошедшие небольшую стажировку вызывают намного больше доверия, чем не прошедшие. Люди, имеющие опыт работы в Google, Apple, Facebook, Amazon or Microsoft проходили интервью с 30% большей вероятностью, чем кандидаты, не работавшие там.
Советы
Если вы программист и ищете работу, нужно обратить внимание на результаты данного исследования. Программисты, ориентированные на создание лучшего продукта, лучше проходят интервью. Также, при поиске работы в стартапе стоит прочитать биографии основателей и сначала отправлять резюме в те компании, в которых опыт и образование основателей/CTO имеют много общего с вашими – это является наиболее эффективной стратегией поиска работы [в стартапе].
Важная мысль для руководителей стартапов: часто компании не рассматривают сильных кандидатов из-за предубеждений о том, как должен выглядеть хороший программист. Это часто случается из-за нехватки данных. Мы предлагаем вам обратить внимание на недооцененные группы: одна из компаний, принимавших участие в исследовании, не хотела нанимать людей с научным опытом, а потом наняла двух гениальных программистов с PhD. Есть отличные PhD, Java и С# программисты, заинтересованные в стартапах. Покажите им свою любовь!