Найм программистов. Советы от программиста

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

Мои впечатления? Я в печали... Почти все материалы, на мой взгляд, напоминают «вредные советы».

В особенности «порадовала» последняя прочитанная статья: «25 классических вопросов, которые HR-ы задают программистам на собеседованиях» ( ссылка ), после прочтения которой и возникло желание написать данный материал.

Сразу оговорюсь, вся статья — это сугубо личное мнение, однако нашедшее поддержку в лице друзей и коллег программистов.

Итак...

Первая встреча, собеседование без тех специалиста

HR-ы, не обманывайте себя. Вы никогда не поймёте на сколько хорош программист

Разве что только когда сможете воткнуть электроды ему в ухо и запустить end-to-end теститрование. Но пока таких технологий нет, всё что Вы можете оценить — это адекватность и, хотя бы отчасти, мотивацию человека сидящего перед Вами.

И поверьте, этого достаточно.

Ведь Ваша задача найти человека, который сможет влиться в коллектив, плодотворно в нём работать и чтобы его работа вознаграждалась тем способом, который он ожидает, и который может обеспечить Ваша компания(деньги, признание, интересные проекты и т.д.).

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

Что ещё можно спросить на первом этапе? Зависит от специфики вакансии.

Если Вам нужен опытный человек — спрашивайте об опыте, узнавайте какие задачи он решал, какие трудности преодолевал.

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

Собранной на первом этапе информации хватит чтобы отсеять 80% - 90% кандидатов.

Часть вторая. Собеседование с тех специалистом

НЕ НАДО СПРАШИВАТЬ ТЕОРИЮ!

Пожалуйста, великие гуру найма и технари, любящие спрашивать теорию, объясните мне в комментариях в чем смысл Ваших вопросов?

По моему, если ответ на Ваш вопрос лежит по первой ссылке в гугле, то спрашивать его не имеет смысла. Разве что Вы ищите человека на закрытый объект, где нет доступа в интернет. Но в остальных случая — Я считаю теоретические вопросы пустой тратой времени, которая ничем Вам, как работодателю, не поможет.

Я лично знаю несколько человек, которые учились со мной на программистов. У них от зубов отскакивали все теоретические выкладки, но когда дело доходило до реального программирования — ничего путного они сделать не могли.

Также негодование вызывают вопросы, которые возможно и касаются будущей работы, но разобраться в которых не составляет труда. Например «юнит-тесты». Чтобы научиться писать юнит-тесты уйдёт от силы минут 10.

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

Что же, по моему, нужно спрашивать у кандидата?

Спрашивайте технические нюансы из их предыдущего опыта, особенно те, которые пересекаются с будущей работой.

По тому, как человек рассказывает, будет понятно:

  1. Реально ли он разбирается в вопросе или просто придумал эти пункты для набивания себе цены.
  2. На сколько его опыт и знания подходят для текущей вакансии.
  3. Сможет ли он справиться с будущей работой.
  4. Сможет ли он научиться, если не имеет подобного опыта.

И, как мне кажется, этого достаточно, чтобы сделать финальный выбор.

Больше о человеке Вы сможете узнать только на испытательном сроке.

Для дискуссий приглашаю в комментарии.

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

0
453 комментария
Написать комментарий...
Max Yankov
По моему, если ответ на Ваш вопрос лежит по первой ссылке в гугле, то спрашивать его не имеет смысла.

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

Это принципиальная разница между known unknowns и unknown unknowns, которую никак, кроме реальным знанием теории, не решить.

Ответить
Развернуть ветку
Сергей Копылов

Приведу цитату известного физика Ричарда Фейнмана из его книги. Он записался на курс для выпускников по биологии и подготовил доклад:

«Когда пришло время делать доклад по этому предмету, я для начала изобразил очертание кошки и принялся называть различные мускулы.
Другие студенты в аудитории перебили меня: "Мы знаем все это!"
- О, вы знаете? Тогда не удивительно, что я могу догнать вас так быстро после четырех лет занятий биологией. - Они тратили все свое время на запоминание ерунды вроде этой, когда это можно было бы посмотреть за 15 минут. »

Ответить
Развернуть ветку
Nikita

А что же тогда не ерунда? Все можно посмотреть за 15 минут.

Ответить
Развернуть ветку
Сергей Копылов

Из той же книги:

«Когда я был в Массачусетском технологическом институте, я часто любил подшучивать над людьми. Однажды в кабинете черчения какой-то шутник поднял лекало (кусок пластмассы для рисования гладких кривых - забавно выглядящая штука в завитушках) и спросил: "Имеют ли кривые на этих штуках какую-либо формулу?"
Я немного подумал и ответил: "Несомненно. Это такие специальные кривые. Дай-ка я покажу тебе. - Я взял свое лекало и начал его медленно поворачивать. - Лекало сделано так, что, независимо от того, как ты его повернешь, в наинизшей точке каждой кривой касательная горизонтальна".
Все парни в кабинете начали крутить свои лекала под различными углами, подставляя карандаш к нижней точке и по-всякому прилаживая его. Несомненно, они обнаружили, что касательная горизонтальна. Все были крайне возбуждены от этого открытия, хотя уже много прошли по математике и даже "выучили", что производная (касательная) в минимуме (нижней точке) для любой кривой равна нулю (горизонтальна). Они не совмещали эти факты. Они не знали даже того, что они уже "знали".
Я плохо представляю, что происходит с людьми: они не учатся путем понимания. Они учатся каким-то другим способом - путем механического запоминания или как-то иначе. Их знания так хрупки!»

Я думаю, что Фейнман говорит о том, что задача обучения — научиться понимать, как устроено какое-то дело, какая-то наука, какие-то конкретные вещи в ней, а просто механически запоминать что-то (например, названия всех мышц кошки) вообще не нужно.

Ответить
Развернуть ветку
Nikita

Но ведь это и есть та самая теория.

Ответить
Развернуть ветку
Сергей Копылов

Окей, объясню своими словами.

Если меня на собеседовании спросят, какие есть способы сортировки, я вспомню пару штук от силы. Ещё я смогу сказать, что они отличаются тем, что какие-то выполняются быстрее, а какие-то медленнее при определённых условиях.

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

Собеседование, где HR сидел бы со списком способов сортировки, я бы не прошёл. Ну и не был бы печален, есть много компаний, где мне не нужно общаться с человеком, который ничего не понимает в сфере моей работы при трудоустройстве и не может оценить моё понимание вопроса.

Ответить
Развернуть ветку
Bulat Ziganshin

и для большинства позиций ты сгодишься. но вот пример - наивная реализация radix sort сильно тормозит из-за переполнения cpu write buffers. и ты об этом даже не узнаешь - в книгах я этой инфы не видел, и в гугле поиск типа "как ускорить radix sort" тебе не поможет

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

Ответить
Развернуть ветку
DEVVEB Constantine
Автор

А если поискать "how to speed up radix sort" ? Извиняюсь за мой translate английский =)

А Вы сделайте доброе дело и запостите Ваше решение, чтобы его можно было найти в гугле.

Никто не говорит что есть светлые головы, которые умеют какие то супер сложные вещи, но такие люди работу не ищут обычно. Пост всё таки о найме.

Ответить
Развернуть ветку
Bulat Ziganshin
А если поискать "how to speed up radix sort" ? Извиняюсь за мой translate английский =)

вот вы и поищите, порверьте свою теорию. засеките сколько времени потребуется от того, что я вам сказал что решение сущестует, до того как вы его найдёте. ведь за 10 минут всё найти можно, верно?

А Вы сделайте доброе дело и запостите Ваше решение, чтобы его можно было найти в гугле.

оно есть в моём гитхабе, и в чужих я его видел тоже. извините, SEO-оптимизацией мне заниматься недосуг )))

Никто не говорит что есть светлые головы, которые умеют какие то супер сложные вещи, но такие люди работу не ищут обычно. Пост всё таки о найме.

т.е. пост о найме тех, чьи знания не выходят за уровень "найти за 10 минут в гугле"? давайте уточним всё же - ваши к примеру знания за этот уровень выходят, как вы сами считаете?

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
т.е. пост о найме тех, чьи знания не выходят за уровень "найти за 10 минут в гугле"? давайте уточним всё же - ваши к примеру знания за этот уровень выходят, как вы сами считаете?

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

Ответить
Развернуть ветку
Bulat Ziganshin

ну вот вам и ответ - знания CS не "лежат по первой ссылке в гугле". И они нужны для работы, кому-то больше, кому-то меньше. Вы работаете с не high-load вебом, вам они мене нужны чем некоторым другим. Если бы вы начали статью со своей специализации, она стала бы понятней. И ещё добавьте, если вы живёте в не очень большом городе и вам важнее не распукгать хороших программистов нежели отсеясть плохих. Ну т.е случаи разные бывают, вы ведь не олписываете свою конкретную ситуацию, и вам принимаются объяснять почему ваши советы не сработают у других людей

Ответить
Развернуть ветку
DEVVEB Constantine
Автор

Как раз таки Я работаю над high-load сервисом.

Если бы вы начали статью со своей специализации, она стала бы понятней.

Понятней для кого? Она для менеджмента.

Ответить
Развернуть ветку
Bulat Ziganshin

в данном контексте под high-load я имел в виду такие нагрузки, что об использованных решениях было не стыдно рассказать на соотв. конференции. "и так работает" - это не high load

Понятней для кого? Она для менеджмента.

какая разница для кого? специфика-то остаётся. нанять ML-щика в гугл не то же самое что php-шника в совхоз имени крупской

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
ведь за 10 минут всё найти можно, верно?

У меня складывается ощущение, что читают сначала комментарии, потом возможно окинут взглядом саму статью...

Выжимка из статьи, снова...

По моему, если ответ на Ваш вопрос лежит по первой ссылке в гугле, то спрашивать его не имеет смысла.

При чем тут 10 минут, откуда Вы это взяли?

Ответить
Развернуть ветку
Bulat Ziganshin

вы думаете, что я после прочтения сотни комментов здесь помню ещё и вашу статью? или перед каждым ответом должен её перечитывать?

Ответить
Развернуть ветку
DEVVEB Constantine
Автор

Извините, если Вы в голове не можете удержать основные моменты из маленькой статьи, которую комментируете, то как Вы вообще работаете программистом?

Ответить
Развернуть ветку
Bulat Ziganshin

вашу статью я прочёл вчера, написал свой комментарий и постепенно забыл. сейчас я отвечаю на ваш комментарий, а не комментирую статью. согласны?

Ответить
Развернуть ветку
DEVVEB Constantine
Автор

Нет. Как можно вести адекватный диалог, если Вы не помните о чем идет речь?

Ответить
Развернуть ветку
Bulat Ziganshin

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

и с вашей стороны наивно расчитывать, что я буду перечитывать статью, чтобы вспомнить, нет ли в ней чего-то пересекающегося с комментом, на который я сейчас отвечаю

Ответить
Развернуть ветку
DEVVEB Constantine
Автор

Мне то глубоко все равно.

Вы же просто сами себе противоречите и не можете обосновать свою точку зрения.

Ответить
Развернуть ветку
450 комментариев
Раскрывать всегда