{"id":14279,"url":"\/distributions\/14279\/click?bit=1&hash=4408d97a995353c62a7353088166cda4ded361bf29df096e086ea0bbb9c1b2fc","title":"\u0427\u0442\u043e \u0432\u044b\u0431\u0435\u0440\u0435\u0442\u0435: \u0432\u044b\u0435\u0445\u0430\u0442\u044c \u043f\u043e\u0437\u0436\u0435 \u0438\u043b\u0438 \u0437\u0430\u0435\u0445\u0430\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435?","buttonText":"","imageUuid":""}

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

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

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

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

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

Итак...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0
453 комментария
Написать комментарий...
Максим Федоров

Немного мыслей:

1. Теория. Нужна, так или иначе.
- Ну очень глупо доверять веб-разработку человеку, не понимающему HTTP
- Как брать человека в команду на проект без понимания SOLID?
- Как брать специалиста, который не умеет думать? Спрашивать "Справитесь ли вы?" Серьезно?!

Но справедливости ради расскажу такой случай. Я относительно молодой спец-т, всего полтора года. Собеседовался в Рамблер и мне в реалтайме дали задание по 5 пыхе на англ языке -- это все ладно, но задания были чисто по синтаксису, точнее его потаенным местам. Так как я развивался и работал только в 2017-18 годах (эпоха 7 пыхи), то конечно я больше заморочен на ООП, СОЛИДЕ и архитектуре, нежели на синтаксисе языка... крч не очень удачно прошел его :(

2. Тестовые задания
Ну я отказываюсь уже... Но опять же -- дело каждого, тут разные мнения.

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

...

А вообще почему это у вас вызывает боль?
Я почти без глубокого опыта после собеседований получаю много предложений. Потому что многим, как вы подметили, важен не уровень, а как человек вольется и на собеседовании часто такое и происходит -- молодые специалисты и кадровики видят хорошего парня и берут его, или у вас не так? Завязывайте со своей оценкой "эти HR -- сплошные ТП".
Сейчас с работой (в Москве) точно нет проблем прогером, а вот найти крутой проект и крутую команду -- есть (это прямо боль :)

...

К проблеме бы я отнес вот какой момент -- не очень тщательно прорабатывают кандидатов и приходится по телефону выяснять все ли так, как в вакансии, кого ищут и как все работает,
а то зовут на бекенд, а на собесе JS фреймворки всплывает на 70% работы

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
1. Теория. Нужна, так или иначе.
- Ну очень глупо доверять веб-разработку человеку, не понимающему HTTP
- Как брать человека в команду на проект без понимания SOLID?
- Как брать специалиста, который не умеет думать? Спрашивать "Справитесь ли вы?" Серьезно?!

Ну например фронтэндеру не обязательно понимать HTTP.
У него есть готовые либы, которые делают запросы на сервер и получают оттуда данные в заранее определённом виде. Поверх этих данных он пишешь фронтэнд.
А принципы и понимание работы самого фронтэнда уже больше относятся к опыту.

По поводу SOLID и ООП в целом - функциональщики негодуют... А если серьезно, в реальных проектах все эти принципы и модели далеко не всегда применимы. К тому же в каждой компании есть свои правила написания кода, некоторые по моделям, некоторые нет.

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

2. Тестовые задания

Ни разу не делал. Жалко время терять. Хотите посмотреть мой код, вот вам гитхаб.

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

Красота кода делается с помощью линтеров. А по второму - методология TDD - сначала тест, к нему код. Ну и тимлид или старший программист или кто там ещё должны ввести новых разрабов в курс дела, как и что пишется. Везде свои нюансы.

Ответить
Развернуть ветку
Shoo
Ну например фронтэндеру не обязательно понимать HTTP.

Кек.

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

Не согласны?

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

Не согласен.
В целом, всё, конечно, сильно зависит от того, что вы понимаете под "фронтендером".
Если это кодманки способный по доке на API и псдшке наверстать формочек - то, конечно, ему ничего кроме ссылки на доку по ангуляру\реакту знать не обязательно.

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

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

Пример из жизни.
Фронт на реакте редаксе графкл на аполо клиенте.
Где здесь нужно знание HTTP?

Второй пример.
Фронтовикам дайют JSON-ки с данными, которые к ним будут прилетать.
Они вокруг них строят интерфейс и всю возможную логику. Отдают бекэндерам, те встраивают общение с сервером.
Где здесь фронту нужно знание HTTP?

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

А если бэкэнд отвечает что запрос с фронтэнда кривой, то что будет делать фронтэндер? Идти к бэкэндеру или сможет сам посмотреть в http запрос и понять на чьей строне баг?

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

Я просто оставлю это здесь.

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
Бэкендеры встраивают общение с сервером

Вроде по русски написано.

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

Оу май. Какая дичь. Я думал это как-то криво сформулировано, но оказывается на самом деле бэкендеры интегрируют http запросы во фронтенд. Скажите где это такое? Не хотелось бы попасть туда.

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

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

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

Спасибо, что оценили мои возможности по фотографии.

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

Я оценил Вас по Вашим комментариям

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

и при этом не удалось найти людей со знанием http? да ладно, здесь все свои...

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

При чём тут найти, прочитай комментарии с самого начала.

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

Гугл подсказывает: https://www.linkedin.com/in/kolkonikz/
Это, в целом, многое объясняет.

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

Ахах, вот ссылка:
https://www.linkedin.com/in/kolomeitsev/

От того Я пароль забыл.

Ну и данные не обновлял уже 3 года

Что там тебе понятно?

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

Что вы пилите сайтики под ключ и вам не нужна теория computer science.

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

Да, у меня есть веб студия, которая пишет сайтики.

Что тебе это говорит? Или ты считаешь что человек должен работать только в одном месте? Или ты считаешь что подработок не должно быть?

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

Фронту нужно знание HTTP в тот момент, когда результаты его работы отдаются через HTTP и\или имеют в себе хотя бы один вызов оного.

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

Функция возвращает JSX код, который рендерится в HTML. Как он попадает к конечному клиенту глубоко плевать и без этого знания он прекрасно проживет и может написать прекрасный код.

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

Ok, вам плевать. Рад, что мы работаем над разными продуктами. :)

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

Мне не плевать, плевать фронтендеру в конкретном примере.
Не надо выдирать слова из контекста и переходить на личности.
Но если мы о личном, то Я тоже рад что мы не трудимся в одной команде. Такой зануда свёл бы меня с ума своим бубнением и нытьем.

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

вот именно здесь - не нужно. а другие работают напрямую с сервером и им может быть нужно

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

Ну а другие - это другой случай не относящийся к данному примеру.

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

к данному проекту, хотите сказать? а что будет, когда этот проект кончится и команда перейдёт к другому? фронтэндер без знания http моджет быть джуном, корого ставят на какие-то узкие участки работы, но думаю для получения лычек мида ему придётся всё же ознакомиться с

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

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

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

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

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

И?

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

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

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

Нет, речь шла о том что чтобы нанять фронтэндера можно не спрашивать на собеседовании знает ли он HTTP

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

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

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

Ну если Вы меня так поняли, Ваше право.

Но почему то Я уверен что Вы никакого отношения к найму вообще не имеете.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

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

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

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

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

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

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

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

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

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

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

Вы делаете какие то ничем не обоснованные выводы с потолка.
Зачем то мне по код ревью говорите, хотя Я о нем уже в комментариях писал.

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

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