У сферу моїх професійних обов’язків входить проведення співбесіди претендентів на посаду 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: список питань доповнив – не все ж одразу згадаєш…