Як я можу перевірити вміння PHP в інтерв'ю? [зачинено]


58

Моїй компанії потрібно найняти розробника PHP, але ніхто не знає PHP у моїй компанії, і нам важко перевірити на вміння PHP. Якби це був розробник C / Java, я б попросив його написати швидку реалізацію Game of Life, але PHP - це зовсім інша мова.

Я з цікавістю бачив цей тест:

http://vladalexa.com/scripts/php/test/test_php_skill.html

Хтось ще має більше пропозицій?


3
Цікавий тест, не охоплює інжекцію SQL, хоча я, безумовно, охоплював. Я думаю, що тест - це хороший спосіб перевірити їх здатність визначити свою ознайомленість із тим, як PHP поводиться зі змінними, а не з іншим.
Бен Брокка

6
Що б ви не робили, не задавайте питань щодо написання стандартних імен функцій. Назви функцій PHP так непослідовні.
Кріс С


16
Я б менше хвилювався за їхні відбитки PHP і більше, якщо вони можуть програмувати, працювати з командою, розуміти безпеку в Інтернеті тощо
Пітер Лорон

12
Якщо ніхто з вашої компанії не знає PHP добре, то найкращий спосіб для вас - скористатися послугою тестування навичок. http://tests4geeks.com/test/php-mysql - мені це подобається. І тоді, якщо результат буде хорошим, ви можете попросити його написати якийсь PHP-код. Наприклад, у базі даних є студенти та предмети. Попросіть його написати HTML-форму, де директор редагує позначки в таблиці (Студенти знаходяться в лівій колонці, Теми - у верхньому рядку, Позначки знаходяться на перетині).
Йосип

Відповіді:


71

Код

  • Попросіть кандидата написати код
  • Попросіть кандидата прочитати код

Якщо ви попросите кандидата написати код, переконайтесь, що:

  • Код нетривіальний, але малий
  • Ви дозволяєте отримати доступ до посібника та Інтернету

Якщо ви попросите кандидата прочитати код, переконайтесь, що:

  • У коді є деякі дрібниці
  • У коді є деякі нетривіальні помилки
  • Код працює чудово, але його можна легко оптимізувати

Ви можете використовувати три або більше різних фрагментів коду, починаючи з більш простого і тільки переходячи до наступного, якщо бачите, що кандидат справляється з легкістю. Киньте якусь рекурсію, щоб приправити речі.

Ресурси

Попросіть детальний список ресурсів 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

Список продовжується і продовжується. Переконайтеся, що ви підганяєте інтерв'ю до конкретних потреб відкриття робочих місць, ви не хочете найняти просто хорошого розробника, а хорошого розробника, який чудово підходить до того, що вам потрібно негайно його зробити.


22
Хороша відповідь в цілому, але я не погоджуюся з частиною "рамки" та "базовою роботою". Незалежно від того, знаєте ви певні рамки чи ні, це не говорить про ваші якості програміста. Щодо продуктивності: якщо ви оптимізуєте на цьому рівні, ви, мабуть, не повинні використовувати PHP в першу чергу. Я роблю вибір між альтернативами, які ви перераховуєте десятки разів щодня, але завжди виходячи з читабельності та функціональності, а не продуктивності. Правильна відповідь на ці питання щодо продуктивності - це "не важливо більшість часу".
tdammers

1
@YannisRizos: Хоча це, швидше за все, полегшує інтеграцію в команду, ви припускаєте, що в компанії ОП вони використовують одну з цих популярних рамок, але якби вони не знали, жодна з цих систем не доведе нічого. Можливо , ви мали в виду цю частину , як спосіб , щоб перевірити його здатність працювати з в рамках , а не з цими рамками? (На всякий випадок: у компанії, над якою я працюю, ми використовуємо внутрішньо розроблену систему)
Purefan

2
@ Petah Це взагалі не має сенсу, особливо на етапі співбесіди, і я б уникав працювати в компанії, яка просить людей розкривати таку інформацію під час інтерв'ю. Цілі міркування "щось приховувати" - химерні, я не переймаюся тим, що мій роботодавець знає, як я витрачаю вільний час, і це лише про це. Якщо мені цікаво публікувати свій обліковий запис Програмістів самостійно, це вже інша історія ...
yannis

1
@Petah Ну, я щиро сподіваюсь, майбутні роботодавці не намагаються познайомитися з моєю особистістю через мою діяльність програмістів (які хотіли б провести 25% -35% свого часу із злим нацистським
модником

1
Не погоджуюся з рамковою річчю. Доброю, сучасною практикою є використання застосованих компонентів із фреймворків із використанням композитора, який вам потрібен, а не використання цілого фреймворку. Насправді те ж саме можна сказати і в світі JS ..
Джон Хант

44

Тест ви пов'язані цікаво, і Янніс Rizos в відповідь великий, але я думаю , що також важливо , це:

Якщо вам потрібен хороший розробник, не шукайте PHP-розробника. Шукайте хорошого розробника, який знає PHP. Це означає, що принаймні половину інтерв'ю вам слід задавати питання, які не мають великого відношення до синтаксису PHP або функцій PHP.

Запитайте його, що таке MVC, що таке AJAX, як працює HTTP, як працює REST, як працює SQL, яка структура даних, деякі основні показники роботи (як ви вимірюєте, як покращуєте), основи тестування, основи безпеки (XSS, XSRF, ін'єкції, як ви захищаєтесь), основні знання з програми програмування, застосовані до типових доменів PHP - веб, мережа, перетворення даних тощо.

Якщо він добре в цьому, попросіть його написати якийсь простий код, виберіть легке завдання, яке не повинно зайняти багато часу - як пошук слів з більшістю голосних підряд у тексті, або перевернення кожного слова в тексті, або множення двох матриці. Ви також можете попросити його запровадити Гра життя в PHP, якщо вам подобається :)

Якщо він передасть це, то ви можете перейти до більш складних питань PHP, але не додайте надто великої ваги цьому. Він може прочитати більшу частину цього посібника, а те, що він не вміє читати, він навчиться досить швидко, якщо йому добре. PHP побудований просто, тому якщо він хороший програміст і має деякі робочі знання з PHP, він, ймовірно, зможе наздогнати. Якщо він знає, як програмувати взагалі, то навчитися програмувати на PHP легше, ніж зворотне - знати дрібниці синтаксису PHP не важливо, якщо ви не розумієте, для чого призначені одиничні тести чи як позбутися проблем XSS.


13

Хоча Янніс Rizos в відповідь хороша один - я знаю , що я б не пройти цей тест , і я міг би використовувати цю відповідь як ресурс , щоб визначити , де зосередити поліпшити мій PHP відбивними, я думаю , що це буде коштувати вашого часу , щоб знайти програмування приятель, який знає PHP, щоб сидіти на процесі співбесіди. Усі запитання в попередній відповіді хороші, але без певних доменних знань оцінити якість відповідей буде важко.

Однак, залежно від того, що вам потрібно, як сказали інші, загальний інструмент програмування та відповідність команді, ймовірно, важливіші, ніж знання, що стосуються мови.


5
+1 за I think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process., чудова пропозиція.
янніс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.