Антон Шевчук // Web-разработчик

PHP: Собеседование. Сегодня // PHP

Interview

В сферу моих профессиональных обязаностей входит проведение собеседования для соискателей на должность PHP разработчика. И дальше речь пойдет о собеседовании…

Два года назад подобный пост вызвал бурное обсуждение как на моё блоге так и на Хабре, я не буду говорить что изменилось, я думаю вы сами это увидите.

Наши HR-ы уже достаточно опытны и поэтому часть вопросов берут на себя:

Почему ушли с предыдущего места работы?
Почему выбрали нашу компанию?
С чего начали изучать программирование?
Почему выбрали PHP?

Ответы на данные вопросы формируют первое впечатление о человеке. Зачастую оно верно…
Далее разговор переходит в техническое русло. Можем начать с основ ООП – наследование, инкапсуляция и полиморфизм, а возможно и пропустим сей шаг.

С какими PHP библиотеками, фреймворками знакомы?

Соискатель должен знать о существовании таких фреймворков как Zend Framework, CakePHP, CodeIgniter или Symfony, и желательно иметь опыт работы с одним из них (список можно расширить – это не так принципиально).

С какими API приходилось работать?

Интересуют Google API, AMF PHP, различные payment gateway, Facebook API, Twitter API и т.д.

Есть ли опыт работы с различными CMS?

Опыт работы не как web-мастера, а как программиста…

Работал с PHP 4? Назови различия с 5-ой версией.
Что нового в PHP 5.3?
Типы данных в PHP?

Этот вопрос на добивание, он часто ставит в тупик, если человек отвечает что их восемь, а потом начинает их перечислять, значит он готовился к собеседованию :)

Что такое сериализация?
Что самое сложное разрабатывали на PHP?

Этот вопрос может расставить все точки над “i”, но не стоит его задавать в самом начале – это пугает…

Какие шаблоны проектирования знаешь? Расскажи в чем соль каждого?
Что есть MVC? Какую роль выполняет каждый из составляющих элементов?

С какими web-серверами работал? Apache? Nginx? IIS?
Можешь описать как можно подробнее, что происходит между тем, как пользователь ввёл в адресной строке http://google.com и тем, как браузер показал страницу?
Системы контроля версий? SVN? CVS? Git? Что есть branch/trunk/tags?
Багтрекинг системы?

Немного мучаю по БД:
С какими БД работал? Что такое транзакции, хранимые процедуры, тригеры?
Коль работал с MySQL то сможешь назвать различия между версиями 4.1, 5.0, 5.1?
Каковы различия между MyISAM и InnoDB?

И для полноты знаний web-разработчика естественно не хватает вопросов о HTML, CSS, Javascript:
Ваша субъективная оценка своих знаний по CSS по пятибальной шкале?
Приходилось ли верстать сайт?
Почему CSS это каскадные таблицы стилей?
Что здесь написано? Напишите HTML код к которому будет применен данный стиль.

#my p.sel:first-line, .main li li a:hover + span
{
    color:#f00; /* Что это за цвет? */
}

Ваша субъективная оценка своих знаний по Javascript’у?
Что самое сложное разрабатывали с использованием Javascript’a?
С какими Javascript фреймворками работали? Какие плагины использовали? Писали ли плагины, виджеты?

Интересуют jQuery/UI, Prototype/Aculo, MooTools/MochaUI, Dojo Toolkit, ExtJs.

Каким образом можно реализовать наследование в Javascripte?
Что такое AJAX и как он работает?
Что такое JSON? С JSONP сталкивались?

И последний вопрос – Какие у Вас есть к нам вопросы? – интересно узнать что же все-таки интересует соискателя.

Бывает еще задаю вопросы на сообразительность, иль какие не по теме – что-бы сбить с толку (не гуманен я)…

Так всё же, что поменялось? Поменялись требования к соискателям, разработчиков уровня Junior на рынке труда сейчас предостаточно, хочется заполучить более опытные кадры, от которых в наименьшие сроки можно получить отдачу

Updated: список вопросов дополнил – не все ведь сразу вспомнишь…

© Антон Шевчук 2007-2016