私の会社はPHP開発者を雇う必要がありますが、私の会社にはPHPの知識がなく、PHPのスキルをテストすることは困難です。C / Java開発者であれば、Game of Lifeの簡単な実装を作成するように彼に依頼しますが、PHPはまったく異なる言語です。
私は興味を持ってこのテストを見ました:
http://vladalexa.com/scripts/php/test/test_php_skill.html
他に誰か提案がありますか?
私の会社はPHP開発者を雇う必要がありますが、私の会社にはPHPの知識がなく、PHPのスキルをテストすることは困難です。C / Java開発者であれば、Game of Lifeの簡単な実装を作成するように彼に依頼しますが、PHPはまったく異なる言語です。
私は興味を持ってこのテストを見ました:
http://vladalexa.com/scripts/php/test/test_php_skill.html
他に誰か提案がありますか?
回答:
コード
候補者にコードの作成を依頼する場合は、次のことを確認してください。
候補者にコードを読むよう依頼する場合は、次のことを確認してください。
3つ以上の異なるコードを使用し、より単純なコードから始めて、候補が簡単に対処できることがわかった場合にのみ次のコードに進むことができます。物事を盛り上げるために、いくつかの再帰を投げます。
資源
候補者が使用するPHPリソースの詳細なリストを要求します。書籍、ブログ、フォーラム、雑誌など。それが私の現在の雇用主がStackOverflowを見つけた理由です。
候補者がStackOverflowまたはProgrammersに言及している場合、ユーザー名を尋ねたり、見つけようとするべきではありません。評判を宣伝したい場合は、履歴書にキャリア2.0リンクを含めます。
フレームワーク
すべてのPHP開発者は、最も一般的なPHPフレームワークを知っている必要があります。
そのうちの少なくとも1つに堪能であること。各サンプルの準備ができたコードサンプルをいくつか用意し、候補者に読み慣れた説明を読んでから説明を求めることができます。
デバッグとプロファイリング
私は常に、PHP開発者にはデバッグとプロファイリングのスキルが欠けていると感じてきました(おそらく、私が作業したPHP開発者だけでしょう)。討論中に候補者が積極的にxdebugを使用していることがわかった場合、インタビューの残りの部分を気にせず、単にそれらを雇うだけです。;)
入力サニタイズ
これは重要。なぜそれが重要なのかという議論から始めて、それを達成するための最も一般的な方法を求めることができます。この議論は、何を尋ねるのに役立ちます。
いくつかのヒント:
PHPスナフス
この素晴らしい議論で多くのPHPスナフスを見つけることができます。上級職のために面接している場合、それらのいくつかについて明確に尋ねるべきです。いくつかの例:
文字列内の数値のPHPの処理:
"01a4" != "001a4" // true
"01e4" == "001e4" // also true
System.out.print("hello");
PHPでは、文字列は関数ポインターと同じくらい優れています。
$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"
単体テスト
もっと言う必要がありますか?
結論
優れたPHP開発者は、さまざまなスキルと才能を組み合わせる必要があります。
リストは延々と続く。求人の特定のニーズに合わせてインタビューを調整してください。優秀な開発者だけでなく、すぐに彼/彼女に必要なものに優れた優秀な開発者を雇いたいと考えています。
あなたがリンクしたテストは興味深いものであり、Yannis Rizosの答えは素晴らしいですが、私はこれも重要だと思います:
優れた開発者が必要な場合は、PHP開発者を探しないでください。PHPを知っている優秀な開発者を探してください。つまり、インタビューの少なくとも半分では、PHP構文またはPHP関数とは関係のない質問をする必要があります。
MVCとは何か、AJAXとは何か、HTTPの仕組み、RESTの仕組み、SQLの結合の仕組み、データ構造、パフォーマンスの基本(測定、改善の方法)、テストの基本、セキュリティの基本(XSS、XSRF、インジェクション、防御方法)、典型的なPHPドメインに適用される基本的なプログラミングクラフトの知識-ウェブ、ネットワーク、データ変換など
彼がそれで良いなら、彼にいくつかの簡単なコードを書くように頼み、長くてはいけないいくつかの簡単なタスクを選んでください-テキストの行にほとんどの母音を持つ単語を見つけるか、テキストの各単語を逆にするか、2を掛けますマトリックス。必要に応じて、PHPでGame of Lifeを実装するように彼に依頼することもできます:)
彼がそれをパスした場合、よりトリッキーなPHPの質問に進むことができますが、これにあまり重きを置かないでください。彼はそのほとんどをマニュアルで読むことができ、彼が読むことができないものは、彼が良ければすぐに学ぶでしょう。PHPはシンプルに構築されているため、優れたプログラマであり、PHPの実用的な知識があれば、おそらく追いつくことができるでしょう。彼が一般的なプログラミング方法を知っている場合、PHPでプログラミングする方法を学ぶことは逆よりも簡単です-単体テストの目的やXSS問題を取り除く方法を理解していない場合、PHP構文の詳細を知ることは重要ではありません。
Yannis Rizosの答えは良いものですが、PHPテストを改善するためにどこに焦点を当てるべきかを判断するためのリソースとしてその答えを使用するかもしれませんが、プログラミングを見つけるのは価値があると思いますPHPを知っているバディはインタビュープロセスに参加します。前の回答の質問はすべて良いのですが、ドメインに関する知識がないと、回答の品質を評価するのが難しくなります。
ただし、一般的なプログラミング機能とチームフィットは、言語固有の知識よりもおそらく重要であると他の人が言っているように、必要なものによって異なります。
I think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process.
、素晴らしい提案。