Код
- Попросіть кандидата написати код
- Попросіть кандидата прочитати код
Якщо ви попросите кандидата написати код, переконайтесь, що:
- Код нетривіальний, але малий
- Ви дозволяєте отримати доступ до посібника та Інтернету
Якщо ви попросите кандидата прочитати код, переконайтесь, що:
- У коді є деякі дрібниці
- У коді є деякі нетривіальні помилки
- Код працює чудово, але його можна легко оптимізувати
Ви можете використовувати три або більше різних фрагментів коду, починаючи з більш простого і тільки переходячи до наступного, якщо бачите, що кандидат справляється з легкістю. Киньте якусь рекурсію, щоб приправити речі.
Ресурси
Попросіть детальний список ресурсів PHP, якими користується кандидат. Книги, блоги, форуми, журнали тощо. Ось так дізналися мої нинішні роботодавці про StackOverflow .
Якщо кандидат згадує StackOverflow або програмістів, НЕ слід запитувати або намагатися дізнатися їх ім’я користувача. Якби вони хотіли рекламувати свою репутацію, вони включили б посилання Careers 2.0 у своє резюме.
Каркаси
Кожен розробник PHP повинен знати найпопулярніші рамки PHP:
і вільно володіти принаймні однією з них. Ви можете підготувати кілька зразків коду для кожного з них і попросити кандидата прочитати та пояснити їх, після того, як вони скажуть вам, який з них вони більше знайомі.
Налагодження та профілювання
Я завжди відчував, що розробникам PHP бракує навичок налагодження та профілювання (можливо, лише розробників PHP, з якими я працював). Якщо під час обговорення ви дізнаєтесь, що кандидат активно використовує xdebug , не переймайтесь рештою інтерв'ю та просто наймайте їх. ;)
Санітарія введення
Це важливо. Можна почати з дискусії про те, чому це важливо, а потім попросити найпоширеніші методи її досягнення. Ця дискусія допоможе вам запитати.
Деякі підказки:
PHP snafus
Ви можете знайти багато PHP snafus в цій чудовій дискусії . Якщо ви берете співбесіду на керівну посаду, вам слід обов'язково запитати деякі з них. Деякі приклади:
PHP обробляє числові значення в рядках:
"01a4" != "001a4" // true
"01e4" == "001e4" // also true
Дійсний код PHP :
System.out.print("hello");
У PHP рядок такий же хороший, як і покажчик функції:
$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"
Блок тестування
Потрібно сказати більше?
Висновок
Хороший розробник PHP повинен поєднувати різні навички та таланти:
- Гарне розуміння HTTP
- Добре розуміння конфігурації Apache (Навіть якщо ви використовуєте інший веб-сервер у вашій компанії)
- Принаймні базове розуміння JavaScript
- Прекрасне розуміння HTML / CSS
Список продовжується і продовжується. Переконайтеся, що ви підганяєте інтерв'ю до конкретних потреб відкриття робочих місць, ви не хочете найняти просто хорошого розробника, а хорошого розробника, який чудово підходить до того, що вам потрібно негайно його зробити.