FizzBuzz 2.0: прагматичные вопросы для программистов

Original author: Mike Robbins
  • Translation


В прошлом году более 100 000 программистов прошли викторину Triplebyte. Приведённая ниже статистика показывает, что пять вопросов с множественным выбором легко отделяют настоящих инженеров-программистов от остальных (вопросы отобраны путём машинного обучения на базе заранее размеченных «успешных» и «неуспешных» программистов — прим. пер.)

Как и печально известный тест Fizz Buzz десятилетней давности, эти вопросы тривиальны для любого, кто профессионально занимается разработкой программного обеспечения, но обычно ставят в тупик любого другого человека. Приведённые ниже вопросы — первые пять в нашем тесте, и 98% успешных инженеров правильно отвечают по крайней мере на четыре из пяти. Я уверен, что если вы инженер-менеджер, проводящий собеседование, то не станете делать предложение никому ниже этого уровня.

Результаты


Прежде чем смотреть на вопросы, вот данные об успешности инженеров, основанные на количестве правильных ответов:



Мы называем «успешным» программиста, которому пришло хотя бы одно предложение о работе в компании, соответствующей его личным предпочтениям. Статистика нормализована по группе 5/5. В совокупности группы инженеров, которые правильно ответили на 4 или 5 вопросов, составляют 98% всех успешных пользователей нашей платформы. Напротив, 3/5 или ниже указывают на почти определённый отказ.

Вопросы


Вот первые пять вопросов из самой популярной «универсальной» викторины. Если взять один из наших специализированных тестов для ML, Data Science, DevOps, Front-End, iOS или Android, то там будут другие вопросы, но принцип тот же.

Вопрос 1


Какой оператор SQL извлекает данные из таблицы?

Выберите правильный ответ:

○ LOOKUP
○ READ
○ FETCH
○ SELECT

Этот вопрос в основном спрашивает «Вы когда-нибудь раньше видели SQL-запрос?» Правильно ответили 80%.

Вопрос 2


Добавьте недостающую строку кода



Выберите правильный ответ:

max_num += num
max_num += 1
num = max_num
max_num = num

Базовая императивная логика. Правильно ответили 76%.

Если вас беспокоит, что мы спрашиваем в синтаксисе Python, то это просто удобный псевдокод для этого примера, и любой программист в состоянии выбрать правильный ответ, даже если никогда не видел Python.

Вопрос 3


Почему для повышения производительности чтения используется кэширование?

Выберите правильный ответ:

○ Оно ускоряет второе и последующие операции чтения
○ Оно ускоряет чётные операции чтения
○ Оно ускоряет нечётные операции чтения
○ Оно ускоряет первую операцию чтения

Кэширование возникает в таком множестве контекстов, что это в основном универсальная концепция компьютерной науки и невероятно практичная в повседневной разработке программного обеспечения. Правильно ответили 89%. Ух ты! Cамый простой вопрос из пяти.

Вопрос 4


Что из приведённого ниже используется для поддержания залогиненной сессии, когда пользователь просматривает несколько страниц на веб-сайте?

Выберите правильный ответ:

○ HTTP куки
○ HTTP keep-alive
○ Глобальные объекты Javascript
○ WebSockets

«Ты знаешь, как работают сайты?» Правильно ответили 80%.

Вопрос 5


Каково значение z после выполнения следующего кода?



Выберите правильный ответ:

'foo'
'baz'
undefined
'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», «разрешение домашних животных в офисе» — что угодно. Нынешний работодатель по умолчанию блокируется от просмотра вашего профиля.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 18

    +10
    Я бы предложил исправить неточность в статье — вместо «После прохождения теста вы увидите свои результаты и сможете создать профиль» должно быть «После прохождения теста оставьте нам максимум личной информации и тогда мы покажем вам результат». Не находите, что такой подход снижает готовность работать с вашей компанией и забивает вашу базу мусорными данными?
      +1
      Компания занимается интервьюированием, было бы странно не делиться информацией из CV :)
      Правда этот сервис доступен только для тех, кто в US, для остальных только тест. Компания, куда устраиваетесь может скинуть ссылку на него, там данных о себе вводить не надо.
      +1
      Мне было 15 лет, когда я мог правильно ответить на первые три вопроса. На остальные — ну чуть позже. На основе ответов на эти вопросы что, реально оцениваются какие-то знания? Больше похоже на решение кроссворда какого-нибудь, так тоже можно «оценивать» :D
        0
        Это online assessment. Он нужен только для того, чтобы понять, может ли человек за пару минут прочитать и понять/поправить код и отличать, какую технологию применить (e.g. REST или streaming api на websockets). Потом уже оценивают, если прошел этот скрининг. По-моему удобно, т.к. потом на интервью обычно не спрашивают какие-то basic вопросы, сразу к заданию посложнее.
          0
          Ок, не лучше ли тогда уж по 10 вопросов из 5-х областей, например: 1) логика (как второй вопрос, там ведь даже знание языка программирования не нужно), 2) программирование (в частности вопрос 5, синтаксис), 3) БД (это к первому, думаю на нормализации споткнулись бы сразу все, кто не в теме, а также когда она применима и когда следует отойти от канонов), 4) таки математика, чтобы не путались когда флоаты выдают что-то непотребное и как с этим бороться, 5) ну и собственно веб-технологии, тут уж фантазии должно хватить.
            0
            P.S. Ну если короче, тесты — это отсеять полный бред.

            P.P.S. А неполный — чуть позже, в зависимости от человеческого фактора, и неизвестно что получите в итоге.
              0
              Эта компания (Triplebyte) специализируется на проведении предварительных интервью для компаний в US. Сначала проходишь этот тест (на реддите народ пишет, что сложно! :) ), потом заполняешь CV и через какое-то время они проводят интервью со своими software enginner'ами, если проходишь успешно, то мэтчат с компаниями и проходишь там.

              Таким образом не надо по сто-пясот раз делать для каждой компании online assessment'ы, только в triplebyte (ну это в идеале).

              Тот тест, что в топике он общий, вопросы на разные темы, и не думаю, что имеет смысл глубокие знания в нем спаршивать, там есть отдельные тесты для ML, DevOps etc.

              +3
              отличать, какую технологию применить (e.g. REST или streaming api на websockets)

              Хм, а я этого не знаю. Пойду уйду из программистов.

            +6
            Кликбейт из серии «99% людей не могут пройти этот тест». А на деле сборщик данных.
              +2
              Все тесты на основе выбора правильного варианта среди небольшого множества — отстой полный. В первую очередь они лишь отсеивают тех, «кто лыка не вяжет», во вторую — «кто не вполне в теме». Достаточно интуиции и здравого смысла, чтоб их пройти (ну и может чуть знаний).

              P.S. Как правило, нужный ответ бросается в глаза, так как остальные ну никак не могут быть правильными. Наверное их составляют те ребята, которые на апворке подписываются на контракты типа «составить 10 тестов по C++»
                0
                Специально для таких умников я завел ящик с названием типа «boxforspam», который время от времени чищу, не читая.
                  0
                  mailinator.com же
                +5
                то вы прошли FizzBuzz 2.0 и, вероятно, должны попробовать тест Triplebyte (если результат 3/5 или ниже, то вряд ли мы вам чем-то поможем)

                Для тех кто ещё не кликнул — там регистрация, потом 35 технических вопросов, штук 20 психологических, потом просят место работы и телефон (я по привычке вбил прочерки, проканало).
                Пропускать шаги нельзя, работу предлагают в основном в USA, есть опция Remotely.
                  0

                  Кому как. У меня почту и создание аккаунта запросило сразу после первого.

                  +1
                  Ruby python python ruby js js python js js ruby… ruby python python…… ruby js js python js js ruby… ruby python python ruby js js python js js ruby………
                  всего 1 вопрос по go, ни одного по java :( Или это только мне так повезло?
                    0
                    если результат 3/5 или ниже

                    Но там несколько полей…
                      +2

                      Вопросы напомнили бородатый анекдот:
                      Вопрос на экзамене — Не в Амперах ли измеряется сила тока?
                      Варианты ответов-


                      1. Да.
                      2. Есть.
                      3. Так точно.
                        0

                        Я не понимаю это что шуточный пост? Я начал изучать питон не давно, про SELECT помню ещё из вордпресс
                        Вопросы шуточные?
                        А что сложного в написании программы FizzBuzz? Это уровень Аля первые две недели в изучении языка с нуля.

                        Only users with full accounts can post comments. Log in, please.