本物のプログラマ、どこにいるの?

[これは、SSD向けに最適化されたMySQLストレージエンジンを開発しているカリフォルニア州のスタートアップRethinkDBのブログの記事の翻訳です。 元の記事はここで読むことができます ]



ここ数か月、RethinkDBは積極的に新しい従業員を採用しています。この間、FizzBu​​zzの記事でJeff Atwoodが真実から一言も書き出さないようにしました。



自慢しすぎることなく、求職者に対する要求は非常に高いと言えます。 そして、私たちは絶対にこの水準を下げるつもりはありません。 さらに、弱いプログラマーを除外すればするほど、チームはより良くより強くなると確信しています。 ただし、量子力学の2番目の卒業証書を取得したコンピューターサイエンスの博士号取得者のみが、すぐに要件を満たすことに注意する人もいます。



もちろん、これらはすべて卑劣なほのめかしです。 私たちの基本的なルールは、プログラミングの方法を知らない人を雇うことではありません。



根拠がないように、電話インタビューの段階で20人の候補者のうち19人を選別して、メインテストを公開します(電話インタビューの前に、全員が連続してではなく、履歴書が好きな人だけを許可するという事実にもかかわらず)。







複雑なアルゴリズムの問​​題を解決することは求めていません。 私たちは、候補者にクイックウィットのタスクについて困惑させることはありません。 ポインターを使用した算術演算のための激しいタスクは提供しません。 候補者の大多数の権限の範囲外のタスクは次のようになります。



Cで、単一リンクリストの要素を逆にする関数を作成します。



それだけです ポイント。



この問題を解決しなかった人々の中には、要約が「Linuxカーネルへの修正パッチ」および「コンパイラの開発に参加した」ことを示した人々がいました。 このタスクにつまずいたコンピューターサイエンスの博士号取得者は多数います。



もちろん、これは私たちが尋ねる唯一の質問ではありません。 また、ベクター (またはArrayList、またはお気に入りの言語での動的配列)にN個の要素を挿入する際の最大の複雑さを知ることにも関心があります。 わからない場合は怖くない、一緒に考えてみよう! ベクターの内部実装について説明させていただきます。 ちなみに、O(N * logN)を正しい答えとして数えます!



読み取り/書き込みロックをどのように実装しますか? コードを書く必要はありません;少なくとも主なアイデアを説明してください。 ああ、あなたは飢ofの概念に精通していますか? これはとてもクールです! いや? それでは、少なくとも何かを教えてください!



協調的マルチタスクとプリエンプティブマルチタスクの違いについて質問します。 クロススレッドの条件変数を求めています 。 20のうち19のケースでは、ハンドセットに沈黙のみがありました。



これらの質問の意味は非常に単純です。候補者が大学で教えられた最も基本的なことをどれだけよく学んだかを知ることができます。 さらに、これらすべてのことは私たちの仕事に何らかの形で見られます。 インタビューの実施における私たちの経験は、スレッドとコルーチンの違いを知っている場合、シングルリンクリストを変えることができ、条件変数について少なくとも少し知っている場合、あなたのレベルはほとんどの求職者のレベルよりもすでに高いことを示していますプログラマーの空き。



もちろん、インタビューはこれらの簡単な質問に限定されません。 一緒に仕事をしたい人から、もっと広い知識が必要です。 しかし、私たちは不可能を要求しません。 私たちは、従業員に優れた基本的なトレーニングを行い、クールなものを作成することに熱心であり、職業を心から愛していることを望んでいます。



私の同僚は、最初にFizzBu​​zzに関する記事を読んで、「FizzBu​​zzを書くことができない場合、何ができるのでしょうか?」と尋ねました。 繰り返しますが、最初のスクリーニングでは20人の候補者のうち19人が除外されます。 各電話インタビューには約45分かかります。 履歴書のプレビューのための数時間を除いて、合計20人の候補者との電話での会話には約15時間かかります。 そして、このすべて-そのときだけ、基本的なプログラミングスキルを持つ1人(!)の人を見つけ、その後にのみ、彼との個人的なインタビューに進みます。





本当のプログラマー、どこにいるの?





更新 簡単な説明:電話インタビューとは、電話で話すだけでなく、候補者が何かを書くことができるある種の共有Webノートブックを意味し、面接官はそれぞれ、書かれたものを見る。 著者は、Cのコードを口述することを候補者に要求しません。



All Articles