Настоящие Программисты, Где Вы?

[Это перевод статьи из блога компании Переосмыслить БД — калифорнийский стартап, разрабатывающий механизм хранения данных MySQL, оптимизированный для SSD-накопителей.

Вы можете прочитать оригинал статьи Здесь ] RethinkDB довольно активно нанимает сотрудников в последние месяцы, и за это время мы стали уверены, что Джефф Этвуд статья о FizzBuzz не отклонился ни на йоту от истины.

Без лишнего хвастовства могу сказать, что мы предъявляем очень высокие требования к соискателям.

И мы совершенно не собираемся снижать эту планку.

Более того, мы уверены, что чем больше слабых программистов мы отфильтруем, тем лучше и сильнее в конечном итоге будет наша команда.

Некоторые, однако, отмечают, что под наши требования вскоре попадут только обладатели докторской степени по информатике со вторым дипломом по квантовой механике.

Конечно, все это гнусные инсинуации.

Наше основное правило — не нанимать людей, которые не умеют программировать.

Чтобы не быть голословными, опубликуем наш основной тест, который отсеивает 19 кандидатов из 20 на этапе телефонного собеседования (несмотря на то, что на телефонное собеседование мы принимаем не всех, а только тех, чьи резюме мы проверяем).

понравилось).

Мы не просим вас решать сложные алгоритмические задачи.

Мы не заставляем кандидатов ломать голову над разведывательными проблемами.

Мы не даем умопомрачительных задач по арифметике указателей.

Задача, непосильная подавляющему большинству наших кандидатов, выглядит так: Напишите на языке C функцию, которая меняет порядок элементов в односвязном списке.

Все.

Точка.

Среди тех, кто не решил эту проблему, были люди, в чьих резюме было указано «писали патчи для ядра Linux» и «участвовали в разработке компиляторов».

Есть также немало докторов наук в области компьютерных наук, которые наткнулись на эту задачу.

Конечно, это не единственный вопрос, который мы задаем.

Нам также интересно узнать какова максимальная сложность вставки N элементов в вектор (или в ArrayList, или как называется динамический массив на вашем любимом языке).

Если вы не знаете, не волнуйтесь, давайте попробуем подумать вместе! Мы будем рады объяснить вам внутреннюю реализацию вектора.

Черт возьми, мы даже посчитаем O(N*logN) правильным ответом! Как бы вы реализовали блокировку чтения и записи? ? Код писать не обязательно, хотя бы объясните основную идею.

О, вы знакомы с концепцией голодания? Это здорово! Нет? Что это, расскажи нам что-нибудь! Мы спрашиваем о различиях между кооперативная и вытесняющая многозадачность .

Мы спрашиваем о условные переменные в межпотоковом общении.

В 19 случаях из 20 в телефоне только тишина.

Суть этих вопросов очень проста: они позволяют узнать, насколько хорошо кандидат усвоил самые элементарные вещи, которым его учили в университете.

Кроме того, все эти вещи так или иначе возникают в нашей работе.

Наш опыт собеседований показывает, что если вы знаете разницу между потоками и сопрограммами, если вы можете перевернуть односвязный список и если вы хоть немного знаете об условных переменных, то вы уже находитесь на гораздо более высоком уровне, чем большинство кандидатов-программистов.

вакансии.

Конечно, наши интервью не ограничиваются этими простыми вопросами.

Мы требуем гораздо более широких знаний от людей, с которыми хотим работать.

Но мы не требуем невозможного.

Мы хотим, чтобы наши сотрудники имели хорошую фундаментальную подготовку, были увлечены созданием крутых вещей и искренне любили свою профессию.

Мой коллега, впервые прочитав статью FizzBuzz, спросил: «Если они не могут написать FizzBuzz, что им делатьЭ» Повторяю: первичный отбор отсеивает 19 кандидатов из 20. Каждое телефонное интервью занимает у меня около 45 минут. Если не считать нескольких часов, потраченных на просмотр резюме, телефонные разговоры с 20 кандидатами занимают в общей сложности около 15 часов.

И все это лишь для того, чтобы найти одного(!) человека с базовыми навыками программирования и только после этого приступить к личному собеседованию с ним.

Где вы, настоящие программисты? ОБНОВЛЯТЬ.

Небольшое уточнение: телефонное собеседование предполагает не просто разговор по телефону, а еще и некий общий веб-блокнот, в котором кандидат может что-то написать, а интервьюеры, соответственно, могут посмотреть написанное.

Автор вовсе не требует от кандидатов диктовать в телефон код C. Теги: #интервью #FizzBuzz #Карьера в ИТ-индустрии

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.