Как собеседовать джуниоров
От: vsb Казахстан  
Дата: 10.03.22 21:10
Оценка: 14 (2) +2 :)
Приходится мне собеседовать ребят, нужно нанять несколько человек. Джуниоры-мидлы. Особо за ними смотреть некому, поэтому нужно, чтобы писали что-то адекватное, прям нянчиться ресурсов нет.

Я себя вспоминаю, когда первый раз устраивался на работу на 3 курсе. Знал весь стандарт С++ (ну не заучивал, конечно, но по любому вопросу был способен найти раздел). Мог на шаблонах написать факториал. Отлично знал все обычные возможности. Занимал места на олимпиадах в школе, поэтому проблем с алгоритмами, по крайней мере не навороченными не испытывал. На собеседовании меня спрашивали, как написать максимально эффективный TCP-сервер в линуксе, ответ про select не удовлетворил, хотели про epoll услышать, спрашивали, как с select организовать многопоточную обработку запросов. Дали довольно сложную задачу по WinAPI, которую я писал часов 16 на выходных и в итоге сделал.

На собеседованиях я сейчас первым делом даю задачу — написать на JS функцию isPalyndromic(n) — проверить, является ли число палиндромом в десятичной записи. Предполагаемое решение — преобразовать число в строку и сравнить символы. Ожидается, что кандидат знает основы JS (как число в строку преобразовать), умеет писать хоть какой-то код, умеет писать циклы, понимает, что такое массивы. Ну и вообще умеет читать формально поставленную задачу и преобразовать её в программный код. Мой идеальный джуниор должен построить m без преобразования в строку (перевернутая n) и вернуть return n === m (эффективное и с какой-то точки зрения изящное алгоритмически решение без выделения лишней памяти). По факту из трёх кандидатов пока ни один не справился. Один сказал, что они такое не проходили, один написал что-то вроде if (n == 707) console.log("true") else console.log("false") с кучей синтаксических ошибок, один сидел 15 минут и написал только объявление функции. При этом у всех в резюме там технологий насувано — и реакты и фреймворки всякие, и какие-то слова невтемные (что значит технология https в резюме?).

Собеседования или по зуму, тогда через codeshare.io код, я сразу говорю, чтобы писал в чем удобно и копировал результат, или вживую, тогда даю ноутбук с vscode/jetbrains по вкусу.

Задаю вопросы вроде чем отличаются let/const/var (тоже никто не ответил правильно), да и вообще на любые вопросы даются какие-то абсолютно расплывчатые ответы, без всякой конкретики и при попытке уточнить человек сразу тонет. При этом я понимаю, что эти все вопросы, они к работе прямого отношения не имеют и без этого знания можно код писать, но что тогда спрашивать? На гитхабе или ничего нет, или какая-то лажа автосгенереная лежит.

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

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

У меня в целом нет вопросов, как собеседовать человека, у которого 15 лет опыта. С таким я просто общаюсь по его проектам, даю вопросы вроде с какими БД вы сталкивались, как бы подобрали нужную для проекта, ну в общем вопросы больше архитектурного плана. Но с человеком, который цикл не может написать, какая тут архитектура.

Продолжать ли в том же духе?

Кстати многие приходят в возрасте за 30. Работали на несвязанной с программированием работе, потом начали что-то сами изучать и тд.

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

Я предполагаю, что можно просто программировать, вызывая функции, склеивая их как-то там, и на задачу, где этого не хватает, просить помощь. Но разве будет польза от такого программиста?
Отредактировано 10.03.2022 21:13 vsb . Предыдущая версия . Еще …
Отредактировано 10.03.2022 21:12 vsb . Предыдущая версия .
Отредактировано 10.03.2022 21:11 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.