インタビューで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関数の命名には一貫性がありません。
クリスC


16
プログラミング、チームとの連携、Webセキュリティの理解などができれば、PHPチョップの心配は減ります。
Peter Loron

12
あなたの会社の誰もがPHPをよく知っていない場合、あなたにとって最良の方法は、いくつかのスキルテストサービスを使用することです。http://tests4geeks.com/test/php-mysql-私はこれが好きです。そして、結果が良ければ、PHPコードを書くように彼に依頼することができます。たとえば、データベースには学生と科目があります。監督がテーブル内のマークを編集するHTMLフォームを作成するように彼に依頼します(生徒は左の列に、被験者は一番上の行に、マークは交差点にあります)。
ジョセフ

回答:


71

コード

  • 候補者にコードを書くよう依頼する
  • 候補者にコードを読んでもらう

候補者にコードの作成を依頼する場合は、次のことを確認してください。

  • コードは簡単ですが、小さいです
  • マニュアルとインターネットへのアクセスを許可します

候補者にコードを読むよう依頼する場合は、次のことを確認してください。

  • コードに些細なエラーがあります
  • コードにはいくつかの重要なエラーがあります
  • コードは正常に機能しますが、簡単に最適化できます

3つ以上の異なるコードを使用し、より単純なコードから始めて、候補が簡単に対処できることがわかった場合にのみ次のコードに進むことができます。物事を盛り上げるために、いくつかの再帰を投げます。

資源

候補者が使用するPHPリソースの詳細なリストを要求します。書籍、ブログ、フォーラム、雑誌など。それが私の現在の雇用主がStackOverflowを見つけた理由です。

候補者がStackOverflowまたはProgrammersに言及している場合、ユーザー名を尋ねたり、見つけようとするべきではありません。評判を宣伝したい場合は、履歴書にキャリア2.0リンクを含めます。

フレームワーク

すべてのPHP開発者は、最も一般的なPHPフレームワークを知っている必要があります。

そのうちの少なくとも1つに堪能であること。各サンプルの準備ができたコードサンプルをいくつか用意し、候補者に読み慣れた説明を読んでから説明を求めることができます。

デバッグとプロファイリング

私は常に、PHP開発者にはデバッグとプロファイリングのスキルが欠けていると感じてきました(おそらく、私が作業したPHP開発者だけでしょう)。討論中に候補者が積極的にxdebugを使用していることがわかった場合、インタビューの残りの部分を気にせず、単にそれらを雇うだけです。;)

入力サニタイズ

これは重要。なぜそれが重要なのかという議論から始めて、それを達成するための最も一般的な方法を求めることができます。この議論は、何を尋ねるのに役立ちます。

いくつかのヒント:

PHPスナフス

この素晴らしい議論で多くのPHPスナフスを見つけることができます。上級職のために面接している場合、それらのいくつかについて明確に尋ねるべきです。いくつかの例:

文字列内の数値の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構成の十分な理解(会社で別のWebサーバーを使用している場合でも)
  • 少なくともJavaScriptの基本的な理解
  • HTML / CSSの十分な理解

リストは延々と続く。求人の特定のニーズに合わせてインタビューを調整してください。優秀な開発者だけでなく、すぐに彼/彼女に必要なものに優れた優秀な開発者を雇いたいと考えています。


22
全体的に良い答えですが、「フレームワーク」の部分と「基本的なパフォーマンス」の部分には同意しません。特定のフレームワークを知っているかどうかは、プログラマとしてのあなたの資質についてあまり語っていません。パフォーマンスの部分について:このレベルで最適化する場合、おそらく最初にPHPを使用するべきではありません。私はあなたが毎日何十回もリストする選択肢の中から選択をしますが、パフォーマンスではなく、常に読みやすさと機能に基づいています。これらのパフォーマンスの質問に対する正しい答えは、「ほとんどの時間は重要ではありません」です。
tdammers

1
@YannisRizos:チームに統合するのが簡単になる可能性が高いのですが、OPの会社ではこれらの人気のあるフレームワークのいずれかを使用していると考えていますが、そうでない場合はどちらのフレームワークも何も証明されないことを知っています。おそらく、あなたはで動作するように彼の能力をテストするための方法として、この一部を意味フレームワークではなくて、これらのフレームワークを?(場合のポイント:私が働いている会社では、社内で開発したフレームワークを使用しています)
Purefan

2
@Petah特に面接の段階ではまったく意味がありません。面接中にそのような情報を公開するように人々に頼む会社で働くことは避けます。「何かを隠す」理由は全体的にひねくれたものであり、私は自由な時間をどのように過ごすかを雇用主に気にしません。プログラマーアカウントを自分で公開することに興味がある場合、それは別の話です
...-yannis

1
@Petahまあ、将来の雇用主が私のプログラマー活動を通して自分の性格を知ろうとしないことを願っています(彼らは時間の25%-35%を邪悪なナチのmodで過ごしたいと思います;)
ヤンニス

1
フレームワークの事に反対します。優れた最新のプラクティスは、フレームワーク全体を使用するのではなく、必要なコンポーザーを使用して、フレームワークから適用可能なコンポーネントを使用することです。実際には、同じことが今、あまりにもJSの世界で言うことができる...
ジョン・ハント

44

あなたがリンクしたテストは興味深いものであり、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構文の詳細を知ることは重要ではありません。


13

Yannis 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.、素晴らしい提案。
ヤンニス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.