В прошлом году более 100 000 программистов прошли викторину Triplebyte. Приведённая ниже статистика показывает, что пять вопросов с множественным выбором легко отделяют настоящих инженеров-программистов от остальных (вопросы отобраны путём машинного обучения на базе заранее размеченных «успешных» и «неуспешных» программистов — прим. пер.)
Как и печально известный тест Fizz Buzz десятилетней давности, эти вопросы тривиальны для любого, кто профессионально занимается разработкой программного обеспечения, но обычно ставят в тупик любого другого человека. Приведённые ниже вопросы — первые пять в нашем тесте, и 98% успешных инженеров правильно отвечают по крайней мере на четыре из пяти. Я уверен, что если вы инженер-менеджер, проводящий собеседование, то не станете делать предложение никому ниже этого уровня.
Результаты
Прежде чем смотреть на вопросы, вот данные об успешности инженеров, основанные на количестве правильных ответов:
Мы называем «успешным» программиста, которому пришло хотя бы одно предложение о работе в компании, соответствующей его личным предпочтениям. Статистика нормализована по группе 5/5. В совокупности группы инженеров, которые правильно ответили на 4 или 5 вопросов, составляют 98% всех успешных пользователей нашей платформы. Напротив, 3/5 или ниже указывают на почти определённый отказ.
Вопросы
Вот первые пять вопросов из самой популярной «универсальной» викторины. Если взять один из наших специализированных тестов для ML, Data Science, DevOps, Front-End, iOS или Android, то там будут другие вопросы, но принцип тот же.
Вопрос 1
Какой оператор SQL извлекает данные из таблицы?
Выберите правильный ответ:
0 LOOKUP
0 READ
0 FETCH
0 SELECT
Этот вопрос в основном спрашивает «Вы когда-нибудь раньше видели SQL-запрос?» Правильно ответили 80%.
Вопрос 2
Добавьте недостающую строку кода
Выберите правильный ответ:
0max_num += num
0max_num += 1
0num = max_num
0max_num = num
Базовая императивная логика. Правильно ответили 76%.
Если вас беспокоит, что мы спрашиваем в синтаксисе Python, то это просто удобный псевдокод для этого примера, и любой программист в состоянии выбрать правильный ответ, даже если никогда не видел Python.
Вопрос 3
Почему для повышения производительности чтения используется кэширование?
Выберите правильный ответ:
0 Оно ускоряет второе и последующие операции чтения
0 Оно ускоряет чётные операции чтения
0 Оно ускоряет нечётные операции чтения
0 Оно ускоряет первую операцию чтения
Кэширование возникает в таком множестве контекстов, что это в основном универсальная концепция компьютерной науки и невероятно практичная в повседневной разработке программного обеспечения. Правильно ответили 89%. Ух ты! Cамый простой вопрос из пяти.
Вопрос 4
Что из приведённого ниже используется для поддержания залогиненной сессии, когда пользователь просматривает несколько страниц на веб-сайте?
Выберите правильный ответ:
0 HTTP куки
0 HTTP keep-alive
0 Глобальные объекты Javascript
0 WebSockets
«Ты знаешь, как работают сайты?» Правильно ответили 80%.
Вопрос 5
Каково значение z после выполнения следующего кода?
Выберите правильный ответ:
0'foo'
0'baz'
0undefined
0'bar'
«Ты умеешь читать код?» Будучи представленным здесь в синтаксисе JavaScript, концепция словаря/хэша/ассоциативного массива/карты знакома любому, кто когда-либо работал с чем-нибудь более продвинутым, чем Бейсик.
Только 62% ответили правильно. Безусловно, это самый трудный из пяти вопросов. Лично я очень удивлён, что этот вопрос сложнее, чем вопрос № 2, но получен статистически значимый результат (p<0,001). Если у вас есть какие-то идеи, почему мы теряем так много людей на этом, дайте нам знать.
Данные
Из более чем 100 000 инженеров-программистов, которые в прошлом году прошли этот тест, вот распределение фактических результатов викторины:
Удивительно, но только 42% участников правильно ответили на все вопросы! Лучшие 67% правильно ответили, по крайней мере, на четыре вопроса (и на эти 67% приходится 98% успешных пользователей на нашей платформе).
Успешность в каждом из пяти вопросов не является независимым фактором. Если просто перемножить вероятности отдельных вопросов, то получается 27%, но реально на все вопросы отвечают 42%. Это в полтора раза больше ожидаемого показателя, если бы каждый вопрос был независимой случайной величиной. На самом деле, простая модель, рассматривающая все вопросы как независимые, подразумевает пик на 4/5, а также больший вес в ячейке 3/5, чем мы видели в реальных данных:
Оцените cебя
Если вы правильно ответили по крайней мере на четыре из пяти вопросов выше без какой-либо помощи, то вы прошли FizzBuzz 2.0 и, вероятно, должны попробовать тест Triplebyte (если результат 3/5 или ниже, то вряд ли мы вам чем-то поможем).
После прохождения теста вы увидите свои результаты и сможете создать профиль, который позволит технологическим компаниям связаться с вами, когда у них появятся возможности, соответствующие вашим предпочтениям, например, «размер компании 500+», «только удалённая работа», «инклюзивное рабочее место», «минимальная зарплата X», «разрешение домашних животных в офисе» — что угодно. Нынешний работодатель по умолчанию блокируется от просмотра вашего профиля.
Imenem
Я бы предложил исправить неточность в статье — вместо «После прохождения теста вы увидите свои результаты и сможете создать профиль» должно быть «После прохождения теста оставьте нам максимум личной информации и тогда мы покажем вам результат». Не находите, что такой подход снижает готовность работать с вашей компанией и забивает вашу базу мусорными данными?
Nfan
Компания занимается интервьюированием, было бы странно не делиться информацией из CV :)
Правда этот сервис доступен только для тех, кто в US, для остальных только тест. Компания, куда устраиваетесь может скинуть ссылку на него, там данных о себе вводить не надо.