Сегодня отсобеседовали 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
Управляю интернет-проектами, интересуюсь интернет-маркетингом, SEO, а также современными тенденциями в веб-разработке.
Прикольный пост =) А как ты сам ответишь на 9-й вопрос? Очень интересна твоя формулировка.
.my — обращение по классу
#my — по id
верно? :)
Верно, но я думал, ты больше хотел услышать, задавая этот вопрос ))) Но т.к. ты не верстака, понимаю, почему тебе этого было достаточно. А добавить можно следующее — id должен быть уникальным, т.е. только один на страницу.
ну тогда нужно бы еще добавить что у селектора id выше приоритет чем у классового
Ну это можно добавить, но имелось ввиду именно 2 строки в цээсэс файле.
Мне было и этого достаточно. Если эти пишут в резюме «знаю CSS», ты можешь смело писать «Я — Бох CSS!» :)
А можно узнать правильные ответы на эти вопросы? :) Для общего повышения самообразования.
гы…девятый забавно не знать, претендуя на роль кодера..ИМХО. :)
На 6-й и 7-й тоже бы не ответил. Хотя не могу сказать, что тру кодер :)
А так пост хорош. Понравилась ;)
повеселило ) кстати не сильно жесткое собеседование…
@BlogBot, правильные ответы в гугле :)
@Vatanaba, забавно не знать девятый, написав в резюме о знании CSS и jQuery.
@AngelOfFate, у меня не было задачи заебать кандидатов :) Главное, я определил, кто шарит, а кто нет.
о_О окуеть…бывают же люди. Видимо расчитывали, что запутают умными словами…
Vatanaba, не на того напали :-D
Из опыта у меня лично создается впечатление, что будучи очень хорошим специалистом в какой то ОДНОЙ из этих областей — можно уже получить работу. Ну то есть если знаешь что то одно (скажем проектирование бд) на 5+ , то остальное можно знать постолкьу поскольку и в среднем будешь в теме.
Эти люди, видимо кроме одного, были средненькими специалистами во всех темах.
@Андрей, нет. Эти люди были новичками в программировании и решительно ничего не понимали в проектировании БД и CSS.
Я бы новичка, который знает, что такое сериализация взял бы (хотя странно, что не знают…), потому что это автоматически умение работать с cookies для каталога с корзиной итд итп..
полюбому человек с фантазией главное, а остальное само придет, просто задачи ему ставить, с расчетом, на его постепенное развитие :)
работать с кукис — всмысле он не просидит час, думая как туда массив из id-шников в каталоге записать, чтобы удобно потом пользоваться
@Vzzz, я не ставлю на собеседовании требования ответить на все вопросы. На самом деле то, что человек отвечает важно лишь на 50%. Важно еще посмотреть может ли человек думать, умеет ли он общаться, понимает ли задачи, которые я ставлю (может мы с ним несовместимы коммуникационно и он тупо не понимает, что я от него прошу). Поэтому вопросы нужны лдя того, чтобы понять текущий уровень человека. Если бы все поголовно не пиздели в своих резюме, я бы может и вообще не спрашивал про пхп :-)