{"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 комментария
Написать комментарий...
Nikita Kriuchkov

Нужно было начинать так "Найм макаки-формошлепера... но не программиста

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

Обоснуете?

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

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

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

Пожалуйста приведите пример такой теории.

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

чем отличаются интерпретатор, компилятор и JIT?
зачем нужна соль и scrypt?
что такое нормальные формы в БД?

вообще, если в ВАШЕЙ работе нужно мало CS - это показатель той самой мартышечности труда. fronend где он нужен в минимальной мере - это как раз самая простая с точки зреня программирования вещь. меня неджавно один фронтендер убеждала, что алгоритмы вообще никому не реализовыать не прходится, они нужны только для интервью!!!

backend на js - уже сложнее. энетрпайз на яве - нужно ещё лучшк знать CS. ну а скажем писать прошивку ssd (huawei research как раз это делает) - тут уже нужен целый коллектив из математиков )))

Ответить
Развернуть ветку
Вы в федеральном розыске

Я с некоторых пор начинаю приравнивать фронтендеров к 1С-"программистам"

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

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

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
чем отличаются интерпретатор, компилятор и JIT?

Без понятия. И как то живу... И программы пишу. А они ещё и работают. Дичь какая, ужас ужас.

зачем нужна соль и scrypt?

Вы это у твиттера спросите, где пароли в открытом виде хранились.

что такое нормальные формы в БД?

Не в зуб ногой.

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

вообще, если в ВАШЕЙ работе нужно мало CS

Хотите поспорить на тему языков? =)

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

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

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
Эм, что сложнее обычного CRUD и UI-сортировок то было?

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

И? Есть что добавить?

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

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

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
Кароче. Спорить тут бесполезно. Вы упёртый не к месту.

При чем тут уперт? Вы мне говорите что Я тут сижу в носу ковыряю и по фронтэнду размазываю. Я в ответе указал какие проекты делал. И всё, Ваши доводы закончились? Ну спорить тогда действительно не о чем.

Понятно, если вы делаете говносайтики за 20 тыс о продаже 3-х ложек и 4-х вилок, то какая там теория.

То есть Вы игнорируете то что Я написал перед этим? Забавный Вы человек.

Есть 15 баз данных по 1 таблице в 100 000 000 записей в каждой.
Как вы без теории в минимальный срок найдете MIN-значение в режиме онлайн.

Зачем нужно 15 баз по 1 таблице?! Если у Вас 15 баз где по 1 таблице, тот тут не кодить надо, а архитектуру в порядок приводить.

Вы можете в лоб написать 15 тупых select MIN, а можете подготовить кеширование, аккумулирование стат данных на уровне записи, дополнительный шардинг и мное другое.

Вы сами понимаете какой бред пишите?

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

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

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

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

Ответить
Развернуть ветку
Семён Ефремов

Да не переживай, он такого не увидит в среднесрочном горизонте)

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

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

Приведите примеры тех проектов которые Вы делали. Как Я сделал это Выше.

А отвечая на Ваш волос: огромная разница.

В этом отличие тупого исполнителя от разумного разработчика.

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

Мне сказали - Я предложил изменить архитектуру.

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

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

Ответить
Развернуть ветку
DEVVEB Constantine
Автор
Приведите примеры тех проектов которые Вы делали. Как Я сделал это Выше.

Я уже понял, что Вы неадекватны, но теперь понял, что Вы ещё и хам.

Снова игнорируете мои просьбы, Ваши проекты озвучьте пожалуйста опытный Вы наш программист!

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

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

Ответить
Развернуть ветку
Bulat Ziganshin
Вот 3 вопроса, которые являются пустой тратой времени на собеседовании.

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

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

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

Хотите поспорить на тему языков? =)

не понял, как вы связали CS (Computer Science) с языками и о чём вы предлагаете поспорить

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

Пример: Если мой комментарий выше исчезнет, почему он не будет удален из базы?

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

Где тут теория?
Пример теории...

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

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

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

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

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