Сегодня отсобеседовали 4-х кандидатов на должность PHP-программиста.
Дабы в посте были не только эмоции, набросаю сюда список вопросов, которые задавал, мало ли кому пригодиться. Вдохновлялся постом на хабре.
Опыт разработки на PHP. Какие приложения писал?
Почему вы выбрали PHP?
Предпочтительная среда разработки?
Опыт работы с CMS и сторонними библиотеками.
Какие вы знаете типы данных в PHP?
Что такое сериализация?
Как у вас с проектированием БД?
рисуем структуру для банальной гостевухи (конкретное задание ниже),
рассказываем, как будем укладывать в БД категории неограниченной вложенности (обычно предлагают parent_id, узнаем знает ли человек о nested sets).
Что такое нормализация БД?
CSS: В чем разница между записями .my #my
Адекватность оценки времени разработки.
Я предлагал кандидату оценить время разработки вот такого скрипта:
Гостевая книга.
Посетители:
просмотр гостевой книге в виде ленты по 20 постов на страницу;
регистрация.
Пользователи:
авторизация,
восстановление пароля,
добавление постов в гостевуху.
Администратор:
редактирование постов,
добавление ответов на посты (1 пост — 1 ответ).
Адекватным ответом я считал 4 — 8 часов. 16 долго, но в целом адекватно :)
Вот для этой задачи мы рисовали БД выше. Отдельное внимание тому, как кандидат планиирует хранить пароли (в открытом виде или хэш), и тому, как реализуется ответ на посты админом (в отдельной таблице или в той же где посты).
Если бы вам предложили работу сразу в нескольких компаниях, в какую бы вы пошли? (навеяно постом Фрица о мотивации)
Еще ряд вопросов орг. характера (график, например).
Ну и собственно все. Из 4-х кандидатов, прошедших отбор по резюме, с вопросами удовлетворительно справился только один. Все 4 заявляли о знаниях CSS, на простой вопрос №9 уверенно ответил один, второй ответил, но с трудом, двое других не ответили.
О nested sets не знает никто. Сериализация/нормализация — один человек. И один смог примерно сформулировать суть нормализации, не зная что это такое («Я не знаю, но думаю, что это примерно ээ..»). В назначенное время пришел один. Один опазадал на 7 минут, другой на 15, третий пришел вообще на полчаса раньше. Один кстати пришел с другом :) Ну типа просто за компанию...
Все типы данных в php не назвал никто (я бы тоже назвал только 7 из 8ми), лучшие назвали по 6 и двое других назвали 3 и 4.
Удивительно, но все знакомы с линуксами. Причем не только как юзеры, но и как админы. Делаю вывод, что линуксоиды притягиваются :)
В общем и целом, картина не впечатлила. Видимо, мало денег. Серьезные программеры тут хотят получать Питерскую зарплату. А я пока не готов ее платить.
P.S. Все 4 — с опытом админства. И ни одного бородатого. Это не труодмины!!! :-D
Верно, но я думал, ты больше хотел услышать, задавая этот вопрос ))) Но т.к. ты не верстака, понимаю, почему тебе этого было достаточно. А добавить можно следующее — id должен быть уникальным, т.е. только один на страницу.
Ну это можно добавить, но имелось ввиду именно 2 строки в цээсэс файле.
Мне было и этого достаточно. Если эти пишут в резюме «знаю CSS», ты можешь смело писать «Я — Бох CSS!» :)
гы…девятый забавно не знать, претендуя на роль кодера..ИМХО. :)
На 6-й и 7-й тоже бы не ответил. Хотя не могу сказать, что тру кодер :)
А так пост хорош. Понравилась ;)
@BlogBot, правильные ответы в гугле :) @Vatanaba, забавно не знать девятый, написав в резюме о знании CSS и jQuery. @AngelOfFate, у меня не было задачи заебать кандидатов :) Главное, я определил, кто шарит, а кто нет.
Из опыта у меня лично создается впечатление, что будучи очень хорошим специалистом в какой то ОДНОЙ из этих областей — можно уже получить работу. Ну то есть если знаешь что то одно (скажем проектирование бд) на 5+ , то остальное можно знать постолкьу поскольку и в среднем будешь в теме.
Эти люди, видимо кроме одного, были средненькими специалистами во всех темах.
Я бы новичка, который знает, что такое сериализация взял бы (хотя странно, что не знают…), потому что это автоматически умение работать с cookies для каталога с корзиной итд итп..
полюбому человек с фантазией главное, а остальное само придет, просто задачи ему ставить, с расчетом, на его постепенное развитие :)
@Vzzz, я не ставлю на собеседовании требования ответить на все вопросы. На самом деле то, что человек отвечает важно лишь на 50%. Важно еще посмотреть может ли человек думать, умеет ли он общаться, понимает ли задачи, которые я ставлю (может мы с ним несовместимы коммуникационно и он тупо не понимает, что я от него прошу). Поэтому вопросы нужны лдя того, чтобы понять текущий уровень человека. Если бы все поголовно не пиздели в своих резюме, я бы может и вообще не спрашивал про пхп :-)
Прикольный пост =) А как ты сам ответишь на 9-й вопрос? Очень интересна твоя формулировка.
.my — обращение по классу
#my — по id
верно? :)
Верно, но я думал, ты больше хотел услышать, задавая этот вопрос ))) Но т.к. ты не верстака, понимаю, почему тебе этого было достаточно. А добавить можно следующее — id должен быть уникальным, т.е. только один на страницу.
ну тогда нужно бы еще добавить что у селектора id выше приоритет чем у классового
Ну это можно добавить, но имелось ввиду именно 2 строки в цээсэс файле.
Мне было и этого достаточно. Если эти пишут в резюме «знаю CSS», ты можешь смело писать «Я — Бох CSS!» :)
А можно узнать правильные ответы на эти вопросы? :) Для общего повышения самообразования.
гы…девятый забавно не знать, претендуя на роль кодера..ИМХО. :)
На 6-й и 7-й тоже бы не ответил. Хотя не могу сказать, что тру кодер :)
А так пост хорош. Понравилась ;)
повеселило ) кстати не сильно жесткое собеседование…
@BlogBot, правильные ответы в гугле :)
@Vatanaba, забавно не знать девятый, написав в резюме о знании CSS и jQuery.
@AngelOfFate, у меня не было задачи заебать кандидатов :) Главное, я определил, кто шарит, а кто нет.
о_О окуеть…бывают же люди. Видимо расчитывали, что запутают умными словами…
Vatanaba, не на того напали :-D
Из опыта у меня лично создается впечатление, что будучи очень хорошим специалистом в какой то ОДНОЙ из этих областей — можно уже получить работу. Ну то есть если знаешь что то одно (скажем проектирование бд) на 5+ , то остальное можно знать постолкьу поскольку и в среднем будешь в теме.
Эти люди, видимо кроме одного, были средненькими специалистами во всех темах.
@Андрей, нет. Эти люди были новичками в программировании и решительно ничего не понимали в проектировании БД и CSS.
Я бы новичка, который знает, что такое сериализация взял бы (хотя странно, что не знают…), потому что это автоматически умение работать с cookies для каталога с корзиной итд итп..
полюбому человек с фантазией главное, а остальное само придет, просто задачи ему ставить, с расчетом, на его постепенное развитие :)
работать с кукис — всмысле он не просидит час, думая как туда массив из id-шников в каталоге записать, чтобы удобно потом пользоваться
@Vzzz, я не ставлю на собеседовании требования ответить на все вопросы. На самом деле то, что человек отвечает важно лишь на 50%. Важно еще посмотреть может ли человек думать, умеет ли он общаться, понимает ли задачи, которые я ставлю (может мы с ним несовместимы коммуникационно и он тупо не понимает, что я от него прошу). Поэтому вопросы нужны лдя того, чтобы понять текущий уровень человека. Если бы все поголовно не пиздели в своих резюме, я бы может и вообще не спрашивал про пхп :-)