この種のことについては多くの議論があり、「100人の論理的な海賊」タイプの質問をするのか、それとも「fizzバズ」を書くのかを問わず、よくドグマになっています。
潜在的な開発者に就職の面接をするとき、私はあなたにどのようなテクニックや質問が効果的だったかに興味があります。
回答ごとに1つのテクニックを使用して、投票できるようにしてください。
実際の技術的な質問に加えて、通常はインタビューの最後に、私は彼らの業界への関心のレベルとその文化を次のような質問で理解しようとします:
最近プログラミング関連で面白いと思ったものを他のプログラマーに勧めたいと思ったことはありますか?新しい言語、ツール、プラットフォーム、テクニック、ウェブサイト?
私たちの業界でよく知られている、好きな仕事や刺激的な仕事をした人の名前を教えていただけますか?その理由は? (開発者、ウェブサイトの創設者、作者、講演者など)
今何を読んでいますか、最後に読んだソフトウェア関連の本は何ですか?
よく利用するプログラミング関連サイトは何ですか?
これらの質問にまったく答えられなくても(残念ながら非常に頻繁に起こります)、私には「採用しない」という意味ではありませんが、ソフトウェア開発の専門家への取り組み方について多くのことを言っています。
彼らにコード、実際のコードを書かせます。
インタビュアーは、C++、Java、C#など、最も使いやすいプログラミング言語を選択して、単純な問題を解決するように依頼する場合があります。文字列または二重にリンクされたリストなどを処理します。簡単な問題を解決するのに最高の言語を使用するのに問題がある場合は、問題があります。 Steve Yeggeのブログ投稿 を参照してください。特に「精神的準備」のセクションをご覧ください。
チームの複数の人に個別にインタビューしてもらいます。後で考えを共有し、面接する前に話をしないでください。間で話すことはあなたの判断を揺るがし、あなたは独立した評価を持ちません。
面接する技術者は、コードを作成します。技術的でない場合は、経験のないことを尋ねようとしないでください。ただし、インタビューを行う技術担当者が少なくとも何人かいることを確認してください。
面接はマネージャーのみが行うべきではなく、将来一緒に働くすべての労働者にとって非常に重要です。
以前のプロジェクトと彼らが何をしたかについてインタビュー対象者に説明してもらいたいです。この回答から私はフォローアップの質問をすることができます:なぜ彼らが特定の方法で物事をしたのか、彼らが言及した場合、彼らは特定の問題をどのように解決しましたか?.
私は、彼らが私が彼らが何をしていたかを理解させる方法で彼らが明確にできるかどうかを確かめるためにこれをし、彼らが彼らが何をしていたかを同様に理解しているかどうかを見ます。
プロジェクトの目的とビジネスの問題についての最後の質問で、多くの人が足を踏み入れたことで解決したのは驚くべきことです。彼らが取り組んでいるプロジェクトがなぜ行われていたのか、彼らにはまったくわかりません。そもそもなぜプロジェクトが存在するのかわからない場合は、ソリューションを提供しているのか、言われた通りにやっているのかと思います。
(他のすべての答えは技術的である傾向があるため、私はこれをそこに投げ込んだと思います。彼らが解決している問題をなぜ解決しているのかを知ってもらいたいです。 t気に:)
重要なアーキテクチャ上の決定について彼らの見解を尋ねる
例えば。以下は、y個のサブタスクを同時に実行するプログラムxです。マルチプロセスとスレッド構造のどちらを選択しますか。
両方の長所と短所は何ですか。それらはどの程度うまく機能し、マルチコア、マルチプロセッサプラットフォームを活用するためにどのように使用できますか?個人的な好みは何ですか?個人的な偏見は、彼らが実際に知識を適用し、経験を共有するためのジャンプポイントを与える必要があったかどうかを識別するのに役立ちますか?
インタビュアーが次のように思いつくことができる質問はたくさんあります。
これらのトピックのほとんどは、コンピュータシステムがどのように/なぜ動作するかについての親密な知識を必要とするタイプです。これらはすべて、明確な答えのない問題の問題/解決策であるため、その人が目の前の課題にどれだけうまく適応または克服できるかについての感覚を与えます。実際の実践経験がなくても簡単に理解できるタイプの概念ではありません。
注:申請者にpesudoコードを記述することも必須ですが、その答えはすでに採用されています。
ホワイトボードで実行するための基本的なコードを提供してください。リンクリストの実装、並べ替えなど。
あなたはコンパイラーの助けなしに彼らの言語でどれほど快適かを判断することができ、彼らの思考プロセスを判断することができます(特に彼らがそのようなことを決して実装しなかった場合-ほとんどの「新しい」プログラマーは決してしませんでした)。
会話を交わし、技術的および専門的な経路に沿って流れ、曲がりくねり、途中で洞察に富んだ、または愚かなコメントを探します。これにより、面接から必要なものの3/4、人々のスキルと性格、一般的な知性、および技術的スキルの大まかな評価を得ることができます。
インタビューの「質問」をトピックの開始点として使用し、会話を技術的なトピックに結びつけておくために-懸念事項/関心のある領域を適切に調査するために、時々会話をリセットする必要があります(コーディング演習など)。
このテクニックの本当の秘訣はtheyがすべての話をすることを確認することです。そうしないと、-yoに耳を傾け/同意することで賢く感じられるため、好意的な評価のリスクにさらされます。あなたが言ったすべてのもので。