Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…
Каждое собеседование начинается с одного и того же вопроса:
— Почему PHP?
И, как ни странно, некоторые умудряются «засыпаться» уже на нем:
— Пробывал язык N — такой сложный, и поэтому решил учить PHP
или еще лучше:
— Решил пока поработать в PHP отделе, а потом перейти в отдел .Net
Но чаще всего слышим один из следующих ответов:
— Делал страничку — понадобилась динамика — выбор пал на PHP
— Кто-то, зачем-то посоветовал
— Преподавали в ВУЗе — только PHP и смог осилить
Далее, приближаемся к программированию, мы пытаемся понять имеет ли собеседуемый хоть какое-нить представление о ООП, о абстракции, наследовании, инкапсуляции и полиморфизме. Ага, кто-то лекции прогуливал в университете ;)
А теперь начинается самое оно:
— Какую версию PHP использовали? В чем различия между четвертой и пятой версиями?
— Какими сторонними библиотеками пользовались?
— Опыт работы с различными CMF/CMS?
— Типы данных в PHP?(их всего 8, не верите — читайте мануал)
— Назови по памяти функции для работы с массивами, строками
— Что такое сериализация?
И далее несколько практических вопросов…
— Что такое Apache? А mod_rewrite?
— Аббревиатура SVN и CVS о чем-нить говорят?
— Багтрекинг системы? BugZilla? JIRA?
Не забываем и о БД:
— Что такое реляционная база данных?
— Нормализация, денормализация
— И чуть-чуть практики (связь многое-ко-многим в MySQL, каталог товаров произвольной вложенности)
HTML + CSS + W3C (знания HTML на базовом уровне считаю обязательным):
— Нарисуй-ка простенькую форму для отправки файла
— CSS знаешь? В чем разница между записью #my и .my?
— Расшифруй вот такую запись в CSS ... (и далее что-то невообразимое, но вполне читабельное, задаю не часто, если только испытуемый заявляет что знает CSS)
— Что такое стандарты W3C?
Linux:
— С *nix знаком?
— Apache и PHP сетапил?
Сетевые технологии и не только:
— Знаешь что такое уровни модели OSI? Назови хотя бы их количество. (это вопрос на «пять»)
— По какому протоколу осуществляется передача данных в сети Интернет?
— Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?
Иностранные языки:
Тут особо не мучаем, если же в резюме указан уровень знания английского как «хорошо» — вот тогда нам на помощь спешит COTOHA — лучше правдиво пишите — уровень университета или начальной школы… ;)
Бывает, озадачиваем каким-нить тестом на сообразительность (поменяй-ка друг значение переменных A и B местами не используя третью переменную)
Вот подумываем написать тест, который однозначно говорил бы о уровне знаний человека (brainbench для новичков не подходит), если у кого есть что предложить — пишите в комментариях…
Кросспост: PHP: Собеседование (и там уже много содержательных комментариев)
Upd: Вторым, или даже первым вопросом наверное скоро будет: «Читаете ли вы Хабр по пятницам?»…
Upd: На ряд вопросов из комментариев отвечу тут:
- Разве должен PHP разработчик знать это… ? — Если человек не ответил на ряд вопросов на собеседовании, это не значит, что он его провалил, возможно некоторые вопросы слишком отстранены от разработки, но их знание никогда не будет лишним
- Вам действительно нужно это всё? — Да, ибо мы используем системы контроля версий и багтрекинг системы, мы сталкиваемся с готовыми CMS системами, кодим используя Zend Framework и CMF/CMS которую сами разрабатываем
- На какую ЗП можно претендовать после прохождения собеседования? — ЗП оговаривается по окончанию испытательного срока, если Вас интересуют более подробная информация см. на www.developers.org.ua
- Есть мануал, зачем помнить на память! — Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл «for» или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели
- Дайте лучше тестовое задание! — Ситуация нынче такова, что junior разработчик не будет делать тестовое задание, а скорей просто пойдет на собеседование в другую компанию
- В какой компании такое «невдалое» собеседование, не пойду в неё работать! — 3 клика мышки отделяет Вас от ответа, если не нашли — мы Вас не ждем...