Pull to refresh

3 задачи, которые отсеивают 9 из 10 «Senior PHP» кандидатов

IT career
Кандидаты — «Senior PHP», с опытом, до собеседования проходят первичный отбор по резюме\сопроводительному письму, то есть на собеседование попадают лишь те, кто выглядят как приличные программисты. Собеседования проводятся удалённо — Skype/ICQ (без голоса). Т.е. теоретически можно гуглить, хоть я и прошу этого не делать.

Итак, тесты, которые отсетвают «типа программистов»:


1. подсчитать количество хитов



Задача: у меня есть banner.php, пусть он выводит статичное изображение, какой-то банер. Мы включаем его на страницу просто <img src="/banner.php"/>

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

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

Удивительно, но лишь единицы способны предложить что-то реальное. Все почему-то бросаются использовать сесси либо хранить что-то на стороне клиента. Самое оригинальное было «нужно использовать супер-логгер от фэйсбука. Я о нём ничего не знаю, но настоятельно рекомендую.»

2. основы работы с unix shell + немного креативности



Задача: у меня есть cleanup.php который что-то там делает критичное. Мне нужно, чтобы скрипт запускался каждые 13 секунд.

Большинство предлагает повесить на крон, я прошу по шагам расписать, что мне сделать чтобы появилась cronjob (учтитывая что у меня SSH доступ). Потом выясняется, что у крона только поминутные задачи, и нужен какой-то «хак». Опять же, можно усложнять условия, если кандидат предлагает решение, чтобы понять, насколько глубоко и широко он в «теме». Большенство сливается говоря «я плохо шарю в linux-shell, у нас всё делали админы».

3. немного баз данных — SQL (mysql)



Задача: я хочу хранить свою билиотеку в БД. Меня волнуют названия книг и авторы — больше ничего хранить не надо. Предложите структуру таблиц.

Половина кандидатов не знают что такое many-to-many и не могут решить что лучше — хранить author_id в таблице books или book_id в таблице authors.

Если со структурой всё ок, я прошу вытащить список книг, которые написаны 3-мя со-авторами. То есть получить отчет «книга — количество соавторов» и отфильтровать те, у которых со-авторов меньше 3х.

За 3 месяца, пока я даю этот тест, я могу вспомнить имена кандидатов, которые справились с этим на чистом SQL одним запросом.

Итог



Эти три задачи отсеивают 9 из 10 кандидатов. Иногда мне грустно, и меня терзают смутные сомнения — может быть я упускаю толковых программистов? Возможно, кандидаты волнуются и у них «вылетают из головы» простые вещи, но тогда что будет когда они попадут в команду — «завтра релиз а у нас конь не валялся»? Может быть стоит заранее настроить кандидатов, мол «будте готовы писать код на собеседовании»? Не будет ли хуже? Как Вы думаете, Вам мешало бы что-то пройти адекватно такое собеседование?
Tags:собеседованиетестовое заданиекандидатыphpmysqllinux
Hubs: IT career
Total votes 76: ↑38 and ↓380
Views88K

Popular right now

Top of the last 24 hours