5

.NET Web 開発者を採用する際に、候補者にコーディング テストを行います。

私は候補者をテスト サーバーにインストールされている MSDN に限定する傾向があります。MSDN には、候補者がタスクを完了するために必要なものがすべて含まれていると思います。

私は、候補者がウェブを使わずに仕事をすることを期待していないので、これは通常のケースではないことを認めます.
一方で、候補者に完全な例をグーグルで検索してコピーアンドペーストしてもらいたくありません。彼のスキルを評価したいのです。

問題は、テスト中に Web を自由に使用できるようにする必要があるかどうかです。

コーディング テスト全体が間違っていると思われる場合は、代替案をお聞かせください。

4

13 に答える 13

11

あなたが言うように、「候補者が Web を使わずに仕事をすることは期待できない」のに、テスト中にも Web を許可しないのはなぜですか? そして、彼がコピーして貼り付けたらどうしますか? 私もそうします。確かに重要なのは、どこを見ればよいかを知り、見つけたものを見極め、それを賢く適用することです。ものすごい記憶力のある人を雇いたいですか、それともあなたのためにソフトウェアを開発できる人を雇いたいですか?

私が学校に通っていたとき、電卓は手頃な価格になりつつありました。それらの使用はやむを得ないと見なされたため、試験が変更されました。単純な数値計算は、以前のようにテストされなくなりました (当時は重要でした)。むしろ、問題解決のテクニックがテストされることになっていました。

于 2009-01-19T08:07:43.770 に答える
9

私は通常、候補者が望むリソースを使用できるようにします。彼らが終わったら、私は彼らと一緒に座って彼らのコードを一緒に調べ、なぜ彼らがその特定のアプローチを選んだのかなどの質問をします.

数分間のグーグル検索で、コードをコピペするだけでなく、その中での決定を弁護できるようにそれについて十分に学ぶことができるなら、彼は十分に頭がいいのです!

于 2009-01-19T09:13:05.773 に答える
6

Web アクセスを提供できるテストがあり、それが本当に意味をなさない場所があります。

Web アクセスを許可しても問題ない場合

  • ネット上でコードの 60% さえも見つけられそうにない場合
  • 彼/彼女がコードを完成させた後、あなたがコードを説明するように頼むとき
  • Web 上ではほとんど見られない、SQL クエリを使用した非常に具体的なソリューション

Web アクセスを許可しなくてもよいケース

  • 再帰、フィボナッチ、階乗、文字列操作、小さなトリック プログラムなどのいくつかの基本的なプログラム。これらの場合でも、コンピューターは必要ありません。
于 2009-01-19T07:57:26.503 に答える
5

面接中のコーディングテストについては非常に懐疑的です。私が見た多くのテストは、インターネットを使用して解決する非常に具体的な (人工的な、非現実的な) 問題を表していると思います。

そのような問題を暗記する方法を知ることはそれほど重要ではないと思います.多くの場合、答えを探す方法と場所を知っていることの方がはるかに重要です.

インタビュー中に人物をテストしたい場合は、特定のプログラミングの問題ではなく、概念的な質問をする方がよいと思います。例: オブジェクト指向、ポリモーフィズム、n 層アプリケーションの設計などに関する質問。

または、ASP.NET の世界の例として、インタビューを受けた人に、ViewState とは何か、ポストバックとは何か、セッション/アプリケーション状態とは何かなどの質問をします。

于 2009-01-19T07:57:49.280 に答える
3

候補者が仕事でどのように活躍するかを知りたい場合は、テストの条件を実際の労働条件にできるだけ近づけるようにするのが最善だと思います.

候補者に自分のコードを説明するように頼むことで、コピペが見過ごされるのを防ぐのはかなり簡単なはずです。

于 2009-01-19T07:57:50.090 に答える
2

1 つ知っておいていただきたいのは、あなたが雇った開発者は、あなたのために働いている間に放り出されるすべてのことを知っているわけではないということです。彼が頭の中で知らない質問をした場合、あなたは彼がそれを調べて、彼が学んだばかりの概念を理解しているという証拠をあなたに返してくることを期待します.

私は彼らにウェブを使わせてくださいと言いました - しかし、彼らのコードがどのように機能するかを彼ら自身の言葉で説明するように頼みます. 私の知識のほとんどは、オンライン リソースから得ています。ただし、自分が書いたコードのすべての行を理解していることを確認します。

特定の分野の開発者が知っておくべき基礎知識があります。しかし、あなたは彼が新しいことをどれだけ早く習得できるかも知りたいと思っています. IMO の良いテストは、彼が知らないとわかっている質問を投げかけ、彼があなたの会社の従業員だった場合に得られるであろうリソースを使用して、彼がどれだけそれを理解できるかを確認することです。

于 2009-01-19T07:57:22.433 に答える
2

あなたの目標は、候補者がどのような基本的な知識を持っているかを確認することです。Web からソリューションをコピーせずにコーディングできる場合は、インターネット アクセスを許可しないでください。彼が解決策に到達するためにどのような戦略を採用しているかを知りたい場合は、必要に応じて Web を使用させてください。

個人的には、単純なプログラミングの問題を解決するだけでなく、より大きなスケールで問題を解決できる方が興味深いと思います。そのため、私は彼がプログラミングの際に使用する方法について尋ねる傾向があります (単体テスト?それを使用したことがありますか?それについてどう思いますか?)。これにより、インタビューの状況でコーディングするよりも、より良い全体像が得られます。

候補者に事前に 1 ページのコーディング サンプルを持ってきてもらい、コーディング スタイルを確認してもらうと役立つ場合があります。これにより、面接の時間も節約できます。

于 2009-01-19T07:59:44.597 に答える
1

候補者がウェブを使用することを許可しますが、事前に、彼がウェブを使用した場合は、問題をどのように解決したかを評価する必要があることを伝えてください。

彼が忘れた構文やパラメーターを見つけるなどの単純なことに Web を使用した場合は、彼をマークダウンしないでください。これは正常です。

彼が特定の機能がどのように使用されているかを調べるなどの目的で Web を使用した場合は、彼をマークダウンしないでください。これは正常です。

彼が特定のコードを検索してコピーして貼り付けた場合は、そのコードがどのように機能するかを尋ねます。彼がコードがどのように機能するかを説明できる場合、彼を評価しない理由はありません。彼がコードを入手したサイトを見ずに説明できない場合は、彼をマークダウンする必要があります。

彼が stackoverflow.com を使用した場合は、彼のプロフィールで質問、回答、バッジを確認してください。そこから、彼がどれだけ優れたプログラマーであるかを確認できます。

于 2009-01-19T09:15:28.640 に答える
1

候補者が機知に富んでいることを確認することが重要です。プログラマーが立ち往生しているときに、前進せずにそこに座ってほしくありません。MSDN、他の人の頭脳の選択、Webの使用など、手元にあるリソースを使用して、仕事を終わらせてもらいたい. Web からのカットアンドペーストはごまかしのように見えますが、(a) タスクを注意深く設計すれば、Web からコピーできる標準的な回答が存在しないほど十分にユニークであり、(b) そうではありません。既存のコードを再利用することは、ソフトウェア構築の重要な部分ではありませんか? 車輪の再発明を避けるために、サードパーティのライブラリを使用するのと大差ありません。もちろん、マイナス面としては、アルゴリズムを開発できることを彼らに示してもらいたいので、独自のタスクには、ソリューションがまだ Web 上になくても、それを必要とするいくつかの要素を含める必要があります。問題は、

于 2009-01-19T08:41:30.127 に答える
1

それはすべて、成功した候補者に何を求めるかによって異なります。単純な事実として、インターネットには良い例だけでなく悪い例もたくさんあるため、Google の使い方を知っていれば優れたプログラマーになるという見方には異議を唱えます。グーグル社員がウェブからすべてのコードを切り取って貼り付けた日にどれだけ幸運だったかをコードベースに反映させたくありません。チームが理解し、熱心に取り組んでいる健全なプラクティス、実証済みの方法論、洗練された効率的なソリューションを示す必要があります。互いに似ていないスタイルの寄せ集めではありません。インターウェブから助けを得る方法を知っていることから得られるものはたくさんありますが、実際の知識と古代の知恵は毎日失われています。

本当に候補者にウェブへのアクセスを許可したいのであれば、ぜひそうしてください。ただし、質問を難しくし、結果を精査して、彼らが最初に見つけた解決策を選んだのか、それとも最善の解決策を選んだのかを確認してください。問題。

于 2009-02-18T23:22:56.703 に答える
0

他の多くの回答者と同様に、自分自身と自分のアプリケーションをMSDNの方法に限定する開発者よりも、Webを最大限に活用して他の人の経験や以前の作業を活用する方法を知っている機知に富んだ開発者を採用したいと思います。

私は他の人々のコードを常にコピーしています-実際には毎日です。そのコツは、適切なソリューションをすばやく見つけて、それを既存の作業に統合することにかかっています。

それで、あなたの候補者にウェブを使わせて、彼が彼の解決策にどうやって来たのか彼に尋ねてください。彼が以前の解決策をどのように思い出すことができるかよりも、彼の方法から彼についてもっと学ぶかもしれません。

于 2009-01-19T10:00:07.567 に答える
0

私がやりたい3つのこと。

応募者に履歴書と一緒にコーディング例を送ってもらいます。

応募者に実際のコードを作成してもらいます (チームの開発者とのペア プログラムでも構いません)。これにより、応募者が実際にツールを使用できるかどうかがわかります。インターネットもツールなので、インターネットを使えるようにすべきです。

面接中に黒板に書かれた疑似コードの問題を応募者に解かせます。この場合、あなたは彼らを助けることで彼らの「インターネット」になることができます.

これらの 3 つのアプローチでは、さまざまなことがわかります。1 つ目は優れた早期警告メカニズムですが、簡単に偽装できます (どこかの Web から oss コードをダウンロードするだけです)。2 つ目は、彼らが実際にコーディングできるかどうかを確認するのに役立ちますが、使用するツールに慣れていない場合、スコアが低くなる可能性があります。3 つ目は、彼らが理論的な問題を解決できるかどうかを示しますが、彼らが実際に優れたチーム プレーヤーであるかどうか、または保守可能なコードを書いているかどうかは示しません。

于 2009-01-19T10:33:44.737 に答える
0

私は最近、友人に IM で話しかけられました。彼はコーディング テストの面接を受けていました。彼はいくつかの SQL の質問をしました。最初は、これは自分でやらないといけないと思いました。面接中にカンニングするのを手伝うつもりはありません。

それからまた考えました。私は彼の仕事の一環として、何年にもわたって IM に関する質問に答えたり、さまざまな技術的な問題について話したりしてきました。だから、もし彼が雇われたら、現実の世界で仕事で問題に遭遇したとき、彼は同じことをするだろう.

私たちはそれについてあまり話しませんが、質問をするための友人の良いネットワークを持ち、ネット上で適切な回答を検索する方法を知ることは、有能なプログラマーまたはシステム管理者になるための大きな部分です. 私は非常に賢いプログラマーであるが、オンラインで情報を見つける方法を本当に知らなかった人に会ったことがあります。彼らは多くを逃し、一種のループから外れていました。リソースの使用方法を知ることは重要です。

インタビューをするときは、どの Web サイトを読んでいるか、どの開発ツールを使用しているか、その理由を尋ねることがよくあります。それは似たようなことです。確かに、x行のコードをどのように書くかではなく、どのように機能するかについてです。

「答え」をコピーして貼り付けるだけで誰かを回避する方法はありません。まず第一に、完璧な答えがある質問をしないでください。第二に、私がインタビューしているとき、私は人々にいくつかのコードを与え、それをリファクタリングするように依頼し、彼らが考えていることを話してもらうのが好きです. 次に、機能を実装する新しいコードを書くように依頼します。それらとのペアプログラム。ペア プログラミングでは、コーディングできないことを隠すのは困難です。それらがペアリングされている間、「日時ライブラリーで API を調べに行きましょう」と言うのは完全に理にかなっています。

于 2009-01-19T13:59:24.777 に答える