2016-02-02 14:44:20 +0000 2016-02-02 14:44:20 +0000
192
192

プログラミングタスクが候補者を怖がらせている、捨てるべきか

初めて人事をやっているのですが、開発者を募集しています。選考は電話面接、プログラミングタスク(0.5~1時間のチャレンジ)、そして最後に上層部と私との面接の3ラウンドで行われています。

私はプログラミングのタスクを捨てることについて考えていますが、私は本当にそれが彼らの履歴書に記載されている言語を本当に知っている人を確立するのに役立つと思います。

どのように私たちの採用プロセスを改善することができますか? 私はそれを行うために喜んでいる1つを見つけるために候補者の多くを通過する必要があるので、非常にイライラしているプログラミングテストによってオフにされている大部分のために

UPDATE SINCE THIS QUESTION HAS BEEN POSTED

大部分の候補者の多くは、私はそれを行うために、1つを見つけるために候補者のロットを通過する必要があるので、非常にイライラしています。と言って、私はいくつかのそれらを行うために喜んで見つけたし、一般的には、次のことがわかりました:

a) それは、彼らがそれを完了するためにエクストラマイルを行くために準備されている場合、彼らは会社と役割に向かって良い態度を持っていることを示しています。確かに彼らは不正をしているかもしれませんが、彼らはそれを試みた場合、再び、彼らははるかに簡単に管理されるので、私たちのための良い態度ははるかに重要です。

私はそれ以来、演習を試み、正常に完了した大学院生の開発者を雇っています。彼はタスクに追加された「ボーナスポイント」もすべてクリアしていました。

私は、開発者がすでに良いブランドで働いている強力なポートフォリオと実績を持っている場合には、この課題を与えないようにしていることもあります。

SECOND UPDATE SINCE THIS QUESTION HAS BEEN POSTED

新卒の開発者は、スター社員であることが判明しました。私たちは彼を維持し、彼に昇給を与えました。

回答 (23)

277
277
277
2016-02-02 19:27:36 +0000

プログラミングのテストが必要です。でも、5分から10分でいいですよ。30分がベストです。2時間のテストでプログラマーがどれだけ優秀かを正確に教えてくれるものはありません。継続的に保守可能なコードを書いているかどうか、常に適切なコメントをしているかどうか、問題に対して「賢い」解決策を考え出しているかどうか、などなど、あなたは知ることができません。2時間で、あなたが達成できる唯一のことは、誰が言語やプログラミングを知っているということについての嘘をついているかを見つけることです。5分FizzBuzzを書いて、言語固有の機能についての2-3の迅速な質問は、彼らは絶対に無価値であるかどうかを教えてくれます。

“どちらかというと、これらの人々は、これは彼らが何をしているのか手がかりを持っていないことを意味する価値を持っていると思う、または、彼らはこれが時間の無駄であることを知っているが、何らかの理由で(おそらく盲目的にHRのお役所に従う)、候補者が採用される前に、彼らは候補者の時間を無駄にしても構わないと思っています。彼らは私を払っている一度、彼らはと逃げることができると思います何を想像してみてください。

いずれにせよ、私はそこに仕事をしたくない”



ThereThereは候補者を離れて駆動している可能性があります別のものです。あなたの面接プロセスの長さ。あなたは、電話インタビューをしている人々を持っています。その後、彼らが終了する週を持っていることを自宅でテストをお持ち帰りください。その後、テストの内容を確認します。その後、管理職との面談を設定します。その後、(私は仮定して)あなたは顔のインタビューのカップルを行う。その後、あなたが雇いたい人に戻ってきます。何週間かかるの?2週間?その間にすでに3つのオファーを受けています。1件は受かって来週からだ 2時間のテストを受けに行くと?

197
197
197
2016-02-02 14:51:10 +0000

まず、従業員を雇うということは、一般的には情けないほど不正確な科学であり、何をやってもいろいろな結果が出てくるものです。とはいえ、私の考えを述べさせていただきますと、「プログラミング演習」はダメだと思います。彼らはフルタイムの仕事を持っている場合は、彼らもそれらを支払っていない誰かのために働くために彼らの現在の雇用主からどのくらいの時間/精神的エネルギーを取っているかを尋ねる必要があります。あなたは彼らがあなたにそのようなことをしたいですか?

加えて、彼らが良い場合、彼らは多くの雇用者との面接をほとんどの可能性が高いです。彼らが優先するのはどれだと思いますか?彼らもエンジニアリングマネージャーとの電話で取得する前に、プロジェクトを完了するために依頼しないもの。確かに、彼らは個人的なインタビューで発見されますが、その時までに、あなたはすでにこの人を面接する会社で(おそらく)高給取りの人々の時間を無駄にしてきました。彼らにだけ多分90-120分を取るべきである小さなタスクを与え、彼らは問題を解決するためのその方法を選択した理由をコメントで正当化するためにそれらを教えてください。これは、一晩で行うことができるものであり、彼らの思考への洞察力を与えるでしょう。私には良い仕事と生活があります。もしマネージャーがそれを問題視するならば、彼らは仕事上の私のワークライフバランスを気にしていないだろうということを教えてくれます。グーグル、アップル、フェイスブックを除いて、そんなことができる会社はありません。

109
109
109
2016-02-02 19:58:12 +0000

私の経験では、持ち帰りプロジェクトは悪いコーダーを淘汰するものではありませんし、良いコーダーが採用担当者と話すためにフープを飛び越える必要のない仕事を見つけるようにしてくれます。優秀なコーダーは、電話や対面での面接を簡単に受けることができます。彼らが飛び越えなければならない余分なフープは、彼らが簡単なルートを取ることを意味し、同じくらいの給料を支払う他の誰かに面接を受ける(そして採用される)。あなたは、人々が輪をくぐり抜けてジャンプするようにする場合、彼らは最初からそれが彼らの間に価値があることを理解していることを確認してください**

悪い開発者は、彼らが望むだけ時間がかかることができます。あなたは彼らが4倍の時間を取るのを見ることはありません;あなたは完成したテストを見るだけです。また、彼らがGoogleやその仲間のところに行って、ifの文で助けを求めているのを見ることはありません。

私の前の会社はこれをやっていましたが、面接のために連れてきた人の大部分が不合格でした(約65%)。私はこれが起こったのは、うっかり他社の面接を必要としない、良い人、忙しい人を淘汰してしまったことと同時に、悪いコーダーの前で簡単な面接をぶら下げてしまったからだと思います。

What I think we should have done instead

採点に15-20分かかる持ち帰り課題を与える代わりに、15-20分のスカイプ面接を行い、Fizz buzzのような質問をするべきでした。これは同じ時間がかかったでしょうが、私は2時間の面接の前に悪いプログラマーを除外していたでしょう。

72
72
72
2016-02-02 22:03:09 +0000

この質問の両側の現場にいる人からの対照的な見解です。この答えは反感を買うかもしれませんが、このビジネスで数十年にわたって培ってきた高度な情報に基づいた意見です。私はそうすることが好きなので、今でも生活のために、趣味で毎日コードを書いていますが、数十人のプログラマーを採用する際の最終決定権を握っています。しかし、私たちは時間をかけてそれができるようになってきています。面と向かってのお喋りよりも、雑学の質問よりも、現場での短いプログラミングの課題は、スキルだけでなく、態度も含めて、ますます必要不可欠なものになってきています。我々は、彼らが面接のために来たときに適切にインストールされたEclipse(私たちの選択したIDE)とセットアップされた候補者にラップトップを与えます。適切にセットアップされているということは、彼らはjdkソースへのアクセスを持っていることを意味しますが、それはインターネットを持っていない、彼らはテスト中に携帯電話を使用しないように求められています。FizzBuzz “から始まり、単純なマルチスレッドのプロデューサー/マルチコンシューマーシステムのような複雑なものまで、0から5つの問題を1時間かけて解くことになっています。

誰も1時間で5つの問題を解いた人はいませんし、誰も解けるとは思っていません(私は5つの問題の解答を1時間以内で快適に書けますが、もちろん以前に問題を見て解いたことがあるので、公平なテストではありません)。

ちなみに、私たちはFizzBuzzを正しく解くために、表向きは経験豊富なプログラマーが**失敗したことがあります。もう一度言わせてください:我々は一握りの候補者がFizzBuzzを正しく完了するために失敗したことがあります。通常は指示に従わないことが原因ですが、仕様書を読むことは開発者として必要不可欠なことです。

私たちは宿題を与えるのではなく、ここでコードを書かせています。また、私たちは問題をローテーションして出たり入ったりしていますし、解答後に候補者と話し合います。私たちのプログラミングテストを理由に採用を断ったり、面接で落ちたりした候補者を見たことはありません。しかし、それは、私たちがサービスを提供している採用担当者に、現場でのプログラミングを含むプロセスであることを伝えていることが影響しているのかもしれません。そのため、1時間のコードを書くことを「無給の仕事」だと思っている候補者を見かけることはないかもしれません。もしそうであれば、それは良いことです。もし、1時間のコーディングがトリビア問題に答える1時間よりも「仕事」に似ていると考えているなら、あるいは、テスト問題への回答が何か役に立つものを生み出すことができると考えているなら、私は彼らの態度を必要としません。

一度だけ、一人の受験者がテストに不満を持っていました。そして、彼は課題にうまくやったし、彼は私たちが望んでいたすべての経験を持っていました。しかし、彼はひどい従業員でした:彼はまた、明らかに彼は指示を取るか、学ぶにはあまりにも年上だと思っていたので、最終的には彼を行かせなければなりませんでした&002&002これを行ってきた数年間で私が決めたことの一つは、テストを行わない会社は、従業員として私を得る可能性が低いということです。ソース管理などに何を使っているかなどの質問に対する答えと同じように、テストをしているかどうかは、ソフトウェア開発のビジネスにどれだけ優れているかを私に教えてくれます。それがプロセスの一部であることを事前に伝え、彼らは上層部と会う前にそれを行う(しかし、あなたは簡単にそれらを設定するのに役立つように、最初にそれらを満たす必要があります)。そして、本当に:彼らが失敗した場合は、上層部との面接をスキップしてください。候補者との人気やネット上のポスターを気にする必要はありません。良い人材を採用するまで遅らせることのコストよりも、悪い人材を採用することのコストの方がはるかに悪いのです。

41
41
41
2016-02-02 20:45:45 +0000

なぜ、自宅でのコーディングテストがないのか?

誠実な候補者が自宅でのコーディングテストを行っている企業を避けてしまうような逆フィルタリングや不正行為の可能性を無視しても、自宅でのコーディングテストの価値は限られています。どのくらい優秀なのかはわかりませんが、自宅でのコーディングテストでわかることと同じくらいのことはわかるでしょう。私たちが求めているのは、熱意、学習意欲、才能であり、これらは自宅でのコーディングテストでは見られません。後輩にはわからないことが多すぎます。もし採用するのであれば、とにかくトレーニングが必要です。

代わりにどのようにテストするか?

フィルターとしては、一次面接の間に現場で10分ほど FizzBuzz のバリエーションを解いてもらうか、もし良い履歴書が殺到して別のフィルターが必要になった場合は、一次面接の前にスカイプを使って解いてもらう。私は、ペアプログラミングやコードレビューに30分から2時間ほどかけることをお勧めします。パートナーを変えて1-2回繰り返します。ペアプログラミングとコードレビューの利点は、開発者がすでに貢献するのに十分な知識を持っているということです。

テストが採用ごとに異なることを心配しないでください。**目標は、仕事をしっかりとこなす一人の人間を雇うことなのです。

31
31
31
2016-02-02 22:42:47 +0000

ここでもう一つ、既存の回答ではカバーされていない点があります(一般的には十分にカバーされていると思います)。私は、実際に完成させるのにどれくらいの時間がかかるのかをよく見て、真剣に考えてみたいと思います。私はこれまでに4回の就職面接を受けましたが、その中でプログラミングの練習をしたことがあり、それぞれが異なった方法で行われました(それぞれに長所と短所がありました)。4回のうち2回(下記の3番と4番)は予想以上に時間がかかり、そのうちの2回は難易度が高かったために断念しました。以下にそれらを記載し、私の目線で良いものから悪いものまでランク付けしてみました。技術面接の際、彼らはコードベースの縮小版を持っていたコンピュータの前に私を座らせ、それに関連した3つの比較的短い問題(彼らが意図的に追加したバグを見つけて修正する、情報テーブルに新しいフィールドを追加する、など)を解決するように私に指示しました。彼らは私にそれを行うためにちょうど1時間を与え、1時間後、彼らは私の解決策と私がどのように問題にアプローチしたかを検討しました。これは、彼らにプログラマーとしての私へのより多くの洞察力を与え、それを短く、ポイントに保つことによって私の時間を尊重しながら。技術面接では、開発中に遭遇した問題をホワイトボードに書いてもらい、アイデアを出し合いながら作業をしてもらいました。これは、私がどのように問題を解決していくのか、実際に必要な仕事がどれだけできるのかを見てもらうための最短の選択肢でした。技術面接(Ruby on Rails Web開発のジュニアポジション)で、彼らは私に、ウェブサイトに移動し、提示された複数のフォームに記入し、結果として得られたページからデータをスクレイプし、それをユーザーに提示するウェブアプリケーションをゼロから構築することを課しました。彼らは、これは簡単な作業であるべきだと言っていましたし、上級レベルのウェブ開発者のためのものだったかもしれませんが、その時点でプロとしての経験を1年しか持っていなかったので、私は諦めて家に帰るまでの4時間を費やしてしまいました(午後の面接だったので、面接官は全員私が帰る数時間前に帰っていました。これは掲載されているポジションのためのとんでもない仕事であり、私のコーディング能力を全く知らされておらず、私には彼らが取引から無料で仕事を得ようとしているように見えました。言うまでもなく、私はその日のうちにその仕事を望んでいませんでした。技術的な面接を受ける前に、彼らは私に「何か面白いことをする」ために彼らの会社が使用しているAPIを利用したウェブアプリケーションを作成するという課題を与えました。これはまさに大雑把なものでした。APIの開発者アカウントを作成し、API開発キットをダウンロードし、(別の開発者アカウントで)一般にアクセス可能なウェブアプリケーションを作成し、APIを学び、APIでアクセスするためのデータリポジトリを作成するというものでした。これはもちろん、Webアプリケーション自体を始めるだけでも何時間もかかったのですが、Webアプリケーションを始めて間もなく、別の仕事の面接を受け、その直後に内定をもらったので、その仕事は中断しました。これは、面接のプロセスの一部として持っているクレイジーなことです。 誰が面接のプロセスで移動するわずかなチャンスを持っているだけで、プログラムを開発するためにそのすべての時間と労力を置きたいからですか?

だから、より直接的にあなたの質問に答えるために、あなたはプログラミングの演習を持っている必要がありますか?はい、しかし、それはあなたが実際に気にしていることをテストするために調整されていることを確認し、面接官のための余計な作業のトンを必要としないようにしてください。彼らのアルゴリズム思考について知りたいですか?アルゴリズムの問題を与えてください。コーディングスタイルについて知りたいですか?コーディングの問題を与えてください。開発プロセスについて知りたいですか?問題を処理しながら、開発プロセスについて話し合ってください。

28
28
28
2016-02-03 21:14:44 +0000
  • 自宅で15分から10時間程度のテストを受けたことがあります。
  • オンラインテストを受けたことがあります。
  • FizzBuzzの答えをホワイトボードに書き出すことを課せられたことがあります。
  • マンホールのカバーを四角いか丸いかを聞かれたことがあります。正直に言うと、私は真剣に私にインタビューをしている人の大半が、それぞれのテストの潜在的な結果が何であるかを理解していたかどうかを疑っていて、最終的には「好き」かどうかだけで人を雇っていました。これに対する良い答えは、"住宅ローンのドメインエキスパート “のようなものでしょう。言い換えれば、もし私が住宅ローンのドキュメンテーション会社のために採用していたとしたら、2分でバブルソートアルゴリズムを書ける人よりも、15年固定とARMローンの違いについて話ができる人を選ぶでしょう。理由は、"普通の "ビジネスの人々は、奇妙な要求のすべての種類を行い、何も知らない人が喜んで役に立たないものを追加したり、アプリを本当に悪くするのに対し、ドメインの専門家は、より簡単に必要とされるものの核心に到達することができるということです。

質問に戻ると、only ask go / no go questions. かもしれませんが、通常はそうではありません。私は開発者のかなりの部分がこれらのキーワードを使用するときにかろうじて知っていると賭けてみたいと思いますが、彼らはあなたのスーパースターではなく、彼らはビジュアルデザイナーなしでコードを書くことができないランクとファイルを使用しています。Srのポジションでは絶対に、Jr.のポジションではノーです。これは簡単に訓練でき、コードレビューで処理できるものです。だからこそ、Sr.には内部から内部までを知ってもらいたいのです。

Int32データ型の正確な最大値を知っていることは重要ですか?通常はそうではありません。そのような些細な知識はgoogleのためのものですが、もしかしたらあなたの要求はメモリに制約のあるデバイスでのコーディングかもしれません。私は自宅にテストを送らない - 友人に手伝ってもらうのは簡単だから。オンラインテストサイトは使わない - 採点は自動化されなければならないので、ゲームをするには些細なことです。私は受験者にfizzbuzzの答えを書き出すように頼まない - ほとんどの人がそのテストを見たことがあるので、答えを暗記する必要があります。私はまた、トリビアの質問をしないでください - 答えを暗唱することができることは、通常、ちょうどあなたが前に質問を聞いたことを意味します。この時点で私が気にしているのは、それらを快適にするために、それらの話を取得することです。私は彼らが言っていることを理解することができない場合は、私は彼らと一緒に働くことはできませんので、これはゴー/ノーゴーです。SQLサーバーであれば、結合の更新について質問します。HTMLであれば、10行のHTMLファイルとCSSクラスを渡して、出力がどうなるかを聞きます。これらの質問は、その分野での経験がある人にとっては些細な質問であり、すぐにふりをした人を追い出すことができます。エッジケースではなく、コアプリンシパルを質問する。もし私が会計のバックエンドでプロジェクトをリードする必要があるならば、あなたは基本的な会計の原則を把握している方が良いでしょう。

  • もし私がJr.の開発者を探しているならば、私はペットプロジェクトについて質問します。これは、彼らが本当に何をしたいのかを知る手がかりになるはずです。言い換えれば、C#の開発者はPHPでペットプロジェクトをすることはないでしょう。正直なところ、Jr.Developerにはトレーニングができること以外はあまり期待していません。もし彼らがペットプロジェクトに積極的に取り組んでいるのであれば、私は彼らを訓練することができます。もし彼らがペットプロジェクトに積極的に取り組んでいるのであれば、私は彼らを訓練することができますが、もし彼らが何をすべきかを教えてくれる人を必要とするタイプであれば、これらの人たちが働くことができるはるかに大きな会社があります。質問がそれに合わない場合は、それは関連性がありません。私はまた、私は私が面接を停止しますその時点で私はそれらを雇っていない100%確信していない限り、私はすべての候補者に同じものを求める。

何らかの理由であなたはまだ家にテストを送信することを主張している場合 - 首尾よくそのテストを完了するために必要なスキルを確認してください

私はある会社から、カスタム暗号サービスプロバイダを書くことを含む持ち帰りテストを受けました。私はそれがやや面白かったので、テストを完了し、彼らは私を雇った。私の時間のどの時点でも、私はいくつかの数字を追加することを超えてベースのセキュリティ、暗号化、あるいは数学に関連してもリモートで何かをしませんでした。そのテストを受けて、何人の人が追い出されたのでしょうか?

17
17
17
2016-02-03 03:48:05 +0000

私はコーディングテストとホワイトボードコーディングの確固たる信者であることを使用していましたが、私は彼らがかなり役に立たないことを認識し始めたので、

あなたはとにかく、何をテストしていますか?

ホワイトボードテスト、または短いプログラミングテストは、個人にいくつかの洞察力を与えますが、実際にはそれほどではありません。誰かがホワイトボードやFizzBuzzスタイルのコードを書くことに彼らの時間を費やすことを計画している場合を除きます。

何をwantするか?

あなたは誰かが欲しいです:

  • 情熱的な
  • 学ぶために喜んで
  • 問題を解決することができる*
  • resonably技術的な
  • あなたのチームを助けるために行くimprove

*注、ほとんどの開発者は、Googleで検索するためにどのような用語を知っていることによって彼らの問題を解決しています。

あなたが雇いたいことをlast事は、彼らはそれを下にドラッグするので、あなたのチームのための良いフィットではありません誰かです。彼らはそれについて話すことに消極的に見える場合は、穏やかな不信感を表現してみてください、例えば “あなたはXを行うことはできませんが、あなたはできますか?” 彼らが情熱を持って取り組んでいることであれば、彼らはあなたを修正してくれるでしょう。これは、相手が技術的なことをやっているのかどうかを知るのにも役立ちます。または、彼らが楽しんで働いていたプロジェクトから学んだことを。 - 彼らはいくつかの知識が不足していた最後の時間(または時間)について彼らに尋ねる。彼らはどのようにして彼らが必要としていた情報を得ることができましたか?彼らはチームメイトに行きましたか?インターネットで検索したか? - 今のチーム、前のチームで改善してほしいと思うことがあるかどうかを聞いてみよう。より良いコミットメッセージが必要だったかな?もっとコードレビューが必要だったか?より多くのテストが必要だったか?もっと自動化? - 彼らに何の技術が彼らを興奮させるのか、そしてその理由を尋ねる。

もしあなたがこの会話で技術的にcomptentな人を持っているならば、それはこの人が最悪になるかどうかを伝えるための世界で最も簡単なことになります。例:我々は子供が来て、インタビューをしていた - 彼は1-10のスケールで、彼のJavaスキルは7-8のようなものだったと述べた。彼はJavaがjarファイルにコンパイルされ、後にJVMによって機械語にコンパイルされたことも知らなかったと思います。

彼は実際に前日のインタビューでCTOから同じ質問をされ、CTOは彼に電話をして、彼が7-8であることはありえないと説明しました。しかし、彼はそれがどのように機能するのか、あるいはビジー・ウェイティングを防ぐためにポーリングを使用しているという事実については何も説明できませんでした。しかし、彼は技術的なことは一つも説明できませんでした。

求めている属性の種類を見つけ出して、それをテストする方法を考えてください。例えば、FTPからいくつかのファイルをダウンロードして、それをデータベースにダンプする機能を追加するとか。候補者には、既存の従業員や二人の従業員と一緒に仕事をしてもらい、彼らの時間のために彼らにお金を払ってもらいましょう。あなたは、彼らがどのように動作するかを正確に見ることができますし、彼らはチームでどのようにうまく動作するかを取得します。彼らはよく通信しますか?彼らは簡単にイライラしていますか?彼らは永続的ですか?

あなたがより良い従業員を雇うために行うことができますare事があります…しかし、プログラミングの競争は、おそらくそれらの1つではありません。

15
15
15
2016-02-02 18:17:47 +0000

仕事を探している人の立場からすると、私は一般的にコーディングに1時間以上かかるようなところは避けています。ある時、私は3日分のJavaコーディングプロジェクトを要求された場所に行ったことがあります。私はそれを全部やって、その人はそれに感心していたのですが、二次面接の段階で別の人を採用したと言われました。だから、その後、もし私が会社に来たら、私は無視するだろう/完了するために数時間以上を必要とする任意のプロジェクトを通過するだろう。私の時間は彼らと同じくらい貴重なもので、どこにも行けないようなことに時間を無駄にしたくないからです。私は、せいぜい1時間程度で済むように、コーディングの理解を示すと同時に、「明日のCOBまでに完成させてください」などの期限を設けるようにしています。彼らはまだオンラインで何かを「コピー&ペースト」することができますが、あなたがオンラインで読んだものではなく、具体的であることによってそれを困難にします。

13
13
13
2016-02-02 18:48:24 +0000

他の人が指摘しているように、開発者の中には、1-2時間のプログラミング演習で応募をためらってしまう人もいるかもしれません。より良い方法としては、ホワイトボードを使って、面接中にホワイトボード上で問題を解決してもらうという方法があります。これは、彼らが技術的なチョップを持っていることを確認しながら、あなたが直接面接をする機会を持つことができます。典型的な例は FizzBuzz です。これは、彼らがどのように考えているかを見ることができ、また、彼らは少なくともプログラミングができ、ループを行う方法をググる必要はないことを知ることができます。

10
10
10
2016-02-03 17:30:56 +0000

私見ですが、ここで問題になっているのは必ずしもプログラミングテストではありません。まず電話での技術面接があり、その後、対面面接の前に在宅でのテストがあります。候補者との距離を置いているように聞こえますし、候補者と会う前の最後の最後まで放置しているようにも聞こえます。どのような時点で、あなたは候補者があなたのために働くために彼らは** wantことを決定することを期待していますか?

私はあなたの募集広告はほとんどに似ているので、場所、給与とスキルの(希望)リストに焦点を当てていると仮定します。候補者は本当に彼らがと対話しなければならないであろう環境や人々についての何か、彼らが働いているだろうか知っていません。あなたはまだここで彼らに仕事を販売していない、あなたは彼らが仕事についての単一の質問をするために取得する前に、彼らの技術的な能力を証明するためにそれらを求めている。

私はあなたがまだそれがあまりにも負担にすることなく、より良い応募者を選ぶチャンスを得るので、あなたは候補者からの質問のための多くの機会を含む仕事についての30-45分のチャットになるように技術的な電話インタビューの形式を変更してみてください。それは候補者により達成可能に見えるだろう、それらにプロセスとのトラックに滞在するインセンティブを与え、あなたは挑戦に費やされた本当の時間を観察することの利点を得るでしょう(私はあなたが驚くかもしれないと思います)。

8
8
8
2016-02-04 04:58:34 +0000

**仝あなたはプログラマーを雇いたいのですか? 仝あなたがそうでないことを賭けてみるつもりです。そして、あなたの採用プロセスは、プログラミングテストのいくつかの並べ替えが含まれていない場合は、実際にプログラムすることができないプログラマ(とそこにa lotそれらの_があります)を取り除くことで効果的になるつもりはありません。

*Are you willing to lower your standards because everyone’s trying to hire programmers? *

たぶんあなたはそうですが、私はあなたがすべきだとは思わない。コメントや回答で指摘されているように、面接プロセスの一環としてプログラミング演習を行うためにわざわざ行くつもりはありませんそこに候補者があります彼らはちょうど仕事を得るために必要はありません。努力を怠らず、短期的には自分にとって最も有益なことを何でもして、簡単なプログラミングの練習をするほど会社のことを気にしていない人たちですか?これらはポジティブな属性とは思えませんし、長期的に候補者を保持するという点ではあまり自信を持てません(これは技術系の会社にとっても重要です。あなたはとにかくそれらを雇いたくない。彼らと違って、あなたは計画を持っています。プログラマはプログラマである “誤謬論に基づいていない1つ。候補者を怖がらせることは問題ではありませんか?あなたは、スクラッチにアップされていない人を雇いたいとは思いません。そして、彼らは需要が高いために "気にすることができない "と言う人の一部は、実際には "本当にプログラミングが得意ではないので、1時間の演習を完了するために一週間中必要になるだろう "状況をカバーするための口実としてそれを使用している可能性があります。あなたは有能でやる気のある候補者を雇いたいと思っています。限り、あなたはあまりにも離れてそれらのものを怖がらないようにしているように、あなたは良いです。もしあなたが技術系の候補者に評価のための技術的な練習問題を与えていないのであれば、それは難しいかもしれません。それは面接のコンテキストのための合理的かつ適切なものですか?

あなたは完了するために何日も(あるいは何時間も)かかるようなものを望んでいません。あなたが望むものは、justjust can’t program、理想的にはreally wellプログラミングができる人が自分自身を区別することができますニュアンスのための十分な余地を持つ_人を除外するために何か簡単なものです。あなたが何を達成しようとしているのかを念頭に置いてください(未熟で真面目でない候補者を選別する)、そしてあなたのコンテンツがその目標に合わせて調整されていることを確認してください。また、その内容が目的に合ったものであることを確認してください。もし、あなたが彼らにいくつかの文書を与えて、「ここで、来週中にこれをやって、私にメールで送ってください」と言うならば、それはおそらく最小限の効果しかないでしょう。

良いかもしれません。その後、彼らはどちらかその時間内に何かを提出するかどうか。この方が自由度が高くなく、候補者の集中力を保つことができますし、明確な期限/時間枠を提供することができます。彼らは1時間を取得し、彼らはどちらかの問題を解決するか、彼らはしない、とあなたはすぐに結果を知っています。

そしてさらに良いのは、オンサイトのインタビューのためにそれらを持って来ることでしょう。彼らをあなたの開発チームのメンバーに紹介してください。彼らをワークステーションのある部屋に閉じ込める。あなたの開発者は、いくつかの一般的な/ソフトインタビューの質問を開始し、その後、彼らはプログラミングの練習を解決するために候補者とペアプログラミングすることができます。これにより、候補者がコーディングができるかどうかだけでなく、チームとの連携の良さがわかります。開発者はまた、候補者が書いたコードの束を見て、あなたにメールを送るだけでは得られない多くの追加情報を得ることができるはずです。しかし、あなたはそれが適切な内容であるかどうかを見直し、解くのに時間がかかりすぎないことを確認し、また、あなたの全体的な面接プロセスにそれをどのように適合させているかを見てみたいと思うかもしれません。 自己流の持ち帰りエクササイズは、おそらく最善のアプローチではありません。しかし、それを解決するためには、練習問題を完全にスクラップにすることではありません。くだらないプログラマーを雇ってもいいと思っているのであれば別ですが。

沢山の悪い候補者を怖がらせて、一握りの良い候補者を雇う方が、水門を開けて悪い候補者を雇うよりも良いと思います。

7
7
7
2016-02-03 10:18:09 +0000

誰も言及していないようですが、テストがあなたの問題ではないとしても、才能を引き付ける他の方法を探すべきです。

**既存の出版物に基づいて良い人材を探しているのであれば、テストを実行する必要はありません。彼らはあなたと一緒に人を配置したい。あなたはトップレベルのエンジニアを求めています。もし彼らがトップレベルのエンジニアを見つけることができれば、あなたは彼らのところに戻ってくるでしょうから、それは素晴らしいことですが、もし彼らが見つけることができなければ(トップレベルのエンジニアは、面接のための時間をほとんど残さないような用事を抱えている傾向があります)、彼らは素敵なスーツを着た中程度のエンジニアを配置することに落ち着くでしょう。彼らにとっての損失は長期的な評判の低下ですが、目標を達成できないことに比べれば、それは些細なことです。あなたのケースではそうでないことが証明された場合は、そのリクルーターにしがみついて離さないでください。StackOverflowやGitHubを使ってトップエンジニアを探してみましょう( StackOverflowにはこれを支援するツールがあるそうです )、技術的に面白い会社で、良いソフトウェアを作ったが財務や収益化を失敗して、トップレベルのエンジニアを10人も解雇した会社をチェックしてみましょう。大学で最終学年のプロジェクトを手伝う時間を過ごす。彼らがオファーを持っていたとしても、良いエンジニアは良いエンジニアと付き合う。また、彼らはあなたの採用プロセスについてどのようにthey feelを感じているかを伝えることができます。そうでなければなりません。雇用がとても「難しい」と思われる理由の1つは、できるだけ効率的にそれをしようとしているからです。そのために時間や頭脳力、リソースを割けば割くほど、それは簡単になります。それらのリソースを製品の出荷に費やした方が良いかどうかは、永遠の経営者の問題です。しかし、もしあなたが「くだらないプログラマーのろ過」に多くの時間を費やしているとしたら、それはお金を燃やしていることになります。少なくとも上記のステップは、採用プロセスを超えた本質的な価値を持っています。

7
7
7
2016-02-02 23:38:14 +0000

私は、面接の一環としての持ち帰りテストが好きではないのですが、理由の多くはすでに述べられている通りです。この場所は、文化、チームがアプローチし、問題を解決する方法を含めて、それらのために良いフィットしているかどうかを申請者が望んでいる。あなたは主に、彼らがどのように働くか、彼らが右のスキルセットを持っているかどうかを含めて、フィット感を探しています。また、雇用主は応募者がどのように問題にアプローチしたかを知ることができません。あなたはそれをX言語に制限することもできます。それをメールで送るのではなく、あなた自身と上層部にそれを提示するために彼らを招待してください。それは彼らに自主性を与え、それは別の面接を約束し、あなたが彼らが何を考えているかを知るために気にしていることを示しているので、うまくやるためのインセンティブを与えます。

上層部との面接にそれを作る候補者をスクリーニングするためにテストを使用しなければならない場合は、私はあなたが一緒に彼らの思考プロセスを議論することができるように、面接にテストを含めるだろう。

7
7
7
2016-02-04 22:58:40 +0000

私はあなたがあなたの質問を少し間違ってフレーズしていると思いますが、あなたがそれをフレーズした方法は、プログラマを雇うことについての一般的な誤解を反映しています。候補者はプログラミングのタスクによって “怖がられている"、または彼らはタスクのために自分自身の検討からあなたの会社をフィルタリングされていますか?

私のポイントを実証するための逸話:少し前に就職活動をしている間、私は平均的なように見える会社のポジションを見ました。彼らのプログラミングプロセスを説明する方法は、それが非常に良いように聞こえましたが、詳細が非常に少ないので、私は懐疑的でした。もしかしたら良い職場かもしれないし、そうではないかもしれない。しかし、私は私が詳細を把握することができるように、私は電話の画面に取得することについて見てみたいと考えましたので、彼らは彼らが見たように良いかどうかを確認してください。ううっ。受験生なら誰でもカバーレターは嫌いだと思います。私はこの会社を知らないし、彼らの製品を使用していないので、私は彼らについて何を言うことができますか?私は彼らをグーグルで検索し、彼らのウェブサイトや製品を読み、もし採用された場合に彼らの組織図の中で私がどこに当てはまるかを考え出し、数段落の「自分を売り込む」ことを思いつきました。

次に私は履歴書とLinkedInへのアクセスを提供しました。この情報はLinkedInと履歴書の両方にあり、同じ情報を3回も提供しなければならないのはばかげている。私はブラウザのタブを閉じました。5分後には、最初の会社にはなかった本当に素晴らしい福利厚生を提供している別の会社に応募していました。私は、最初の会社が私に求めていたフープを飛び越えるよりも早く、より良い福利厚生を提供している別の会社に応募することができました。あなたはこれをしていますか?

私は一般的にハイテク企業が提供している品質の利点の例を参照してください:

  1. リモートワーク。2. サインボーナスとしてコンピューターやモニターを無料で提供する。オープンソースプロジェクトへの貢献。専門的なトレーニングやカンファレンスへの参加費の支給
  2. 昼食代の支給
  3. 7.新しい技術や未知の技術を扱う機会があること。10.知名度: あなたの会社や製品がよく知られていること。候補者は、彼らが働く場所に言及し、人々が "ああ、きちんとした!"と反応するのを聞くのが好きです。私は彼らの製品が好きです”
  4. 慈善的または革命的な会社の目標/ビジョン。人々の生活をより良くするコードを書くことが好き。平均以上の給料。お金は多くの組織の罪をカバーしてくれます。

このリストは包括的なものではありませんが、もしあなたの会社が上記のリストのようなものを提供していないのであれば、あなたの採用プロセスにおけるどんな障害も、提供している会社を探している候補者を送り込んでしまう可能性があります。では、どうすればいいのでしょうか?私はほとんどの候補者がビジーワークのプログラミングタスクの上に好むであろう2つの選択肢を持っている:&002&002代替案#1 - 彼らは請負業者であったかのように彼らにあなたのプログラミングタスクを行うために時給を支払う。これは、彼らがプロの理由と理由の両方のために真剣にそれを取るために奨励しています…彼らは支払われている。これにはお金がかかりますが、どのような形のリクルートでも同じことが言えます。もしあなたが本当に優秀ならば、あなたのコードの実際のバグを診断して修正する方法を見つけることもできます。

なぜ、彼らに興味のないコードを書かせるのでしょうか?100回目の同じ一般的な問題に対する別の解決策を読むよりも退屈しないことが保証されています。また、コードはすでに書かれているので、あなたと候補者の時間を節約することができます。さらに、彼らがどのようなコードを書くのが好きなのかを知ることができるので、彼らの性格や企業文化に合うかどうかを知ることができます。

6
6
6
2017-06-29 00:07:29 +0000

Boboさんの回答への直接の返答として(この人が自分で書いて受け入れたから受け入れられた回答なのですが、率直に言って少し情けないと感じます):

あなたは完全に間違った前提から来ています。私はあなたのためにwant働きたいとは思っていません。あなたのために働きたいと思っている人がいるという考えはどこから来ているのですか?あなたは仕事を提供している多くの企業の一つに過ぎません。私はあなたのために働きたいとは思っていません。私はあなたの会社を評価したいのですが、もしあなたが他のすべての企業の上に出てきたら、それは私があなたのために働きたいと思ったときです。私は最初にどのような会社があるかを見て、彼らは私の履歴書を送信し、彼らはそれを読んで、適切に感銘を受けることができるかどうか、その後、あなたは通常、彼らが面白い仕事を持っていることを私に示し、私はスキルを持っていることを示すクイック電話の会話を持っていると、任意のコーディングテストmightは、非常に最後に来ます。補償するためには、あなたは他の人よりも£10k高い給与範囲を投稿する必要があります。仕事を見つけることはとにかく時間がかかります。私は履歴書を送信して、10社と電話インタビューをして、あなたのために宿題をしている間の選択を持っている場合は、私は何をするかを推測してください。

だから何が起こるかというと、あなたはあなたのために働きたい候補者を見つけることです彼らは他の場所で仕事を得ることはありませんbecause。

5
5
5
2016-02-02 20:41:16 +0000

私は、履歴書に記載されている言語を本当に知っている人を確立するのに役立つと思うのですが、それが本当にあなたの目的なら、私は別のアプローチを検討します。他の方の回答にあるように、YES、あなたは常にコーディングの質問をするべきですが、コーディングの質問では言語の詳細に触れることはほとんどありません。これをテストするのに便利な質問をいくつか見てきました:

  1. JavaとC言語(または関連性のある2つの言語、候補者の履歴書などに記載されているものは何でも)を比較対照しなさい
  2. どのような機能が言語に追加されるべきだと思いますか? (あるいは、より良いのは、この特定の提案された/最近の言語への変更についてどう思いますか?)

物事や2つを見てきたエンジニアは、これらの質問に答える方法をかなり簡単に、そしてわずか数分で知っています。

5
5
5
2016-02-04 00:15:18 +0000

##あなたのビジネスの問題は何ですか?

特定のテストの賛否両論を無視して、すべてはトレードオフの関係にあります。あなたはこの最初のプログラミングタスクを捨てる必要があります。

あなたは現在、あなたの最近の採用者の質に満足していない問題を抱えていますか?その後、あなたはこのようなより多くのフィルターを実装する必要があります。

あなたはこれらの問題のbothを持っていて、両方が同じように痛いですか?おめでとうございます、あなたはこのトレードオフのための適切なバランスを見つけました。

5
5
5
2016-02-03 04:26:48 +0000

IMHOでは、大卒の新入社員がエントリーレベルの難しいプログラミングのコードをこなせる可能性はほぼ0%とされています。もしあなたのコーディングテストが1週間で完了するのであれば、あなたは少なくとも2年以上の経験を持つプログラマーを探していることを要件に明記すべきだと思います。そして、もしあなたが新卒者を探しているのであれば、それに応じてテストを設計し、インターネット上で多くのアイデアを見つけることができると思います。

2
2
2
2017-06-27 16:35:49 +0000

この質問に答えようと思っていたのですが、投稿されてから1年が経ち、私たちはそれに固執しています。

結果

アプローチの利点

1) テイクホームテストは、やる気のない候補者を取り除き、本当にあなたのために働きたい候補者に置き換えます。これだけで、やる気のある人=生産的な従業員なので、やる価値のあるものになります。もし彼らが1時間の課題をこなすことができないのであれば、それは仕事を得るために彼らの態度について多くを語っています。

2) 私は他の人と一緒に、テイク・ホーム・テストは1時間よりも長くすべきではないということに同意します。私は、採用プロセスにそれを追加することから、次の結果を持っていた-

a) いくつかの候補者はそれを完了しません。採用する価値はありません。採用する価値はありません。

c) 何人かの候補者はズルをしています。私たちは最近の候補者にこのようなことをしましたが、その候補者は課題についての私たちのメールに返信しませんでした。採用する価値はありません。

d) 技術的な課題があると聞いて、以前は興味を示していたのに、突然応募を取り下げる候補者もいます。e) いくつかの候補者は非常によく、コードをコメントし、1つまたは2つの機会にドキュメントを提供しています。アプローチの

否定的な

1) テイクホームタスクによって延期されている候補者からのアプリケーションのドロップアウトは、適切な誰かを見つけるためにそれが長くなります。しかし、それは危険である悪い雇用の可能性を低減するので、会社のためのフリップサイドの肯定的な上で。

2)誰かが騙されているかどうかを常に伝えることはできませんが、それはしばしば技術的な電話インタビューでバックアップされている理由です。彼は1年以上経った今でも私たちのために働いています。彼は信頼できるし、技術的にも優れています。

1
1
1
2017-12-01 18:50:23 +0000

慣れないマウスや予期せぬキーボードレイアウト(特に Mac と PC)、あるいは異なる IDE を使用していると、能力に差がなくてもパフォーマンスが劇的に低下することがあります。また、完全なアプリケーションでは、開発者が入力する時間がなかったり、覚えていなかったりするような定型的なコードが必要になることがよくあります。ゼロから完全に新しいアプリを立ち上げることは、実際には非常に稀な作業であり、ほとんどの作業は既存のコードの拡張や改良に集中しています。パラメータを取って説明された結果を返す関数を書くことをお願いするのがベストですが、コンピュータを一切使わずに紙の上でやることをお勧めします。

1
1
1
2016-02-03 19:56:14 +0000

私は彼らをオンラインクイズに送って、あなたが何の知識もない人をフィルタリングすることができます。少なくともあなたは、彼らが何を言っているかを知っているかどうかの感覚を持っているでしょう。

私のキャリアの初期にヘッドハンターは私に言った “あなたは箱を読んで、履歴書にアプリケーションを置く人々に対して直面している"。これは若くて世間知らずな人にはまだ起こるかもしれませんが、数回の面接でゴミ箱に入れられてしまうと、これが悪いアドバイスだということがわかります…。

-2
-2
-2
2018-04-30 15:25:14 +0000

最近、持ち帰りテストを受けました。それは遅いフィードをシミュレートするために持っていたソケットサーバーに接続する必要がある本格的なアプリケーションでした。クライアントは、動的に更新し、フィードをキャンセルし、XMLを書いたり読んだりすることができるようにしていました。でも、自分が何ができるかを証明するチャンスだと思ったんです。私はCSの学位を持っていないので、私はいくつかの理論的なものを欠場しています。OOPの3つの柱は何かと聞かれて、誰が気にするのかと言いたかったのですが。