開発者にインタビューするとき、どのようなテクニックを使用しますか?[閉まっている]


28

このタイプのことについて多くの議論があり、「100論理的海賊」タイプの質問をするか、「フィズバズ」を書くようにさせるかについて、彼らはしばしば教義に委ねられます。

潜在的な開発者に仕事を面接するときに、どのテクニックや質問があなたにとって効果的だったかに興味があります

回答ごとに1つのテクニックを使用して、投票してください。

回答:


21

実際の技術的な質問に加えて、通常はインタビューの最後に、次のような質問で業界とその文化に対する関心のレベルを把握しようとします。

  • 最近興味があり、他の仲間のプログラマーに推薦したいプログラミング関連の何かを見ましたか?新しい言語、ツール、プラットフォーム、テクニック、ウェブサイト?

  • 業界でよく知られている人で、あなたの仕事が好きな人や、刺激を受けている人を挙げてください。(開発者、Webサイトの創設者、著者、講演者など)

  • 今何を読んでいますか、または最後に読んだソフトウェア関連の本は何ですか?

  • どのプログラミング関連のサイトを頻繁に使用しますか?

これらの質問にまったく答えない(残念ながら非常に頻繁に発生する)ことは、私にとって「雇わない」ことを意味するものではありませんが、ソフトウェア開発の専門家へのアプローチ方法について多くを語っています。


4
おそらく、これはソフトウェアインタビューで評価する最も重要なことだと言っているところまで行きます。コードを書くことがより重要であると主張することができますが、最近または大学で似たようなことを扱った人は、その方法を推測することができます。
マイクB

5
これがこのWebサイトで人気のある回答であることは驚くことではありません。ここでの聴衆は、定義上「プログラマー文化」を重視する人です。(答えに同意しますが、このテストに失敗する優秀なプログラマー、特に40人以上の群衆のプログラマーに会いました)
AShelly

2
@AShelly:はい、同意します。だからこそ、私はこの質問をプログラマーを拒否したり受け入れたりするのに不可欠だとは考えていません。これは、インタビュー中に使用できるもう1つのテクニックです。
セルヒオアコスタ

16

彼らにコード、本当のコードを書かせてください。

インタビュアーは、C ++、Java、C#など、最も使いやすいプログラミング言語を選択して、単純な問題を解決するように依頼することができます。たとえば、文字列や二重リンクリストなどを使用して作業を行います。単純な問題を解決するのに最適な言語を使用できない場合は、問題があります。Steve Yeggeのブログ投稿、特に「メンタル準備」セクションをご覧ください。


6
はい、でも大したことではありません。
ダモビサ

実際のコードを書くことで、エリートソフトウェア企業(Google、Amazon、Microsoftなど)の扉を開き、残りを自由に選ぶことができます。
-grokus

3
回答について詳しく説明してください。「実際の」コードとはどういう意味ですか?どのコードが「本物」ではありませんか?
MAK

+1 @MAK:同意しました、本当のコードは何ですか?もしあなたが制作ソフトで使用するであろうと、それのコード...
スティーブン・エヴァース

1
「実際のコード」は、インタビュー対象者に「strdup()」関数を作成するように依頼するようなものと考えます。実際に使用され、メモリ管理やエラー処理などの経験と態度を公開します。
JBRウィルキンソン

11

チームの複数の人に個別にインタビューしてもらいます。インタビューをする前に、意見を交換しないでください。間で話すことはあなたの判断を左右し、あなたは独立した評価を受けません。

面接する技術者は、コードを作成します。技術的な知識がない場合は、経験のないことを尋ねないでください。ただし、少なくともいくつかの技術者がインタビューしていることを確認してください。

面接はマネージャーだけが行うべきではなく、将来一緒に働くすべての労働者にとって非常に重要であるべきです。


2
「インタビューはマネージャーだけが行うべきではない」ための+1。新入社員が同僚だけでなくコードも削減できない場合、チーム内で不安が生じます。
JBRウィルキンソン

7

インタビューを受けて、彼らの以前のプロジェクトと彼らが何をしたかを説明するのが好きです。この答えから、フォローアップの質問をすることができます:彼らが特定の方法で物事をした理由、彼らが言及した場合、特定の問題をどのように解決しましたか?最も重要なことは、プロジェクトの目的とこれが解決したビジネス上の問題です。

私は、彼らが彼らがしていることを理解できるように彼らが明瞭に表現できるかどうか、そして彼らが彼らがしていることも理解しているかどうかを見るためにこれを行います。

プロジェクトの目的とビジネス上の問題に関する最後の質問が解決したことは驚くべきことです。彼らは、彼らが取り組んでいたプロジェクトがなぜ行われたのか全く分かりません。プロジェクトがそもそもなぜ存在するのかわからない場合、ソリューションに貢献しているのか、それとも言われたとおりにやっているのか疑問に思います。

(他のすべての答えは技術的な傾向があるので、私はそこにこれを投げます気に:)


6

重要なアーキテクチャ上の決定について彼らの意見を聞いてください

例えば。これは、y個のサブタスクを同時に実行するプログラムxです。マルチプロセスまたはスレッド構造のどちらを選択しますか。

両方の利点/欠点は何ですか。どの程度うまく機能し、マルチコア、マルチプロセッサプラットフォームを活用するためにどのように使用できますか、個人的な好みは何ですか?個人的な偏見は、知識を実際に適用し、経験を共有するためのジャンプポイントを与えなければならなかったかどうかを識別するのに役立ちますか?

インタビュアーが次のように思いつくことのできる質問はたくさんあります。

  • TCPまたはUDP?
  • 動的または静的に型付けされた言語?
  • モノリシックアプリケーションですか、それとも複数の小さなアプリケーションですか?
  • プロセス間通信に何を使用しますか?
  • ストアドプロシージャまたはORM?

これらのトピックのほとんどは、コンピューターシステムがどのように機能するのか、その理由を詳しく知っているタイプです。それらはすべて明確な答えを持たない問題の問題/解決策であるため、その人が手元の課題にどれだけうまく適応または克服できるかの感覚を与えます。実際の経験がなくても簡単に理解できるタイプの概念ではありません。

注:申請者にいくつかの擬似コードを書くことも必須ですが、その答えはすでに採用されています。


これに追加する1つの注意点は、質問がインタビューを行っている会社に固有のものではないことを確認することです。
JBRウィルキンソン

1

ホワイトリスト上で行う基本的なコードをいくつか与えるだけです。たとえば、リンクリストの実装、並べ替えなどです。

コンパイラの助けを借りずに彼らの言語がどれほど快適であるかを判断でき、彼らの思考プロセスを判断できます(特に、彼らがそのようなことを実装したことがない場合-ほとんどの「新しい」プログラマは実行しませんでした)。


8
同意しません。リンクリストと並べ替えはどちらも、よく知られた一般的な問題に対する既知の問題です。1つを書いたことのある人は、どのように機能するかを知っていますが、ほとんどの人はすでにほとんどの言語でうまく機能しているので、自分で書くことに煩わされません。
エヴァンプライス

私はエヴァンに同意します。実際には、さまざまなソート/検索アルゴリズムと基本的なデータ構造のパフォーマンスを十分に理解していることがよくあります。それらを実装する方法を知ることはきちんとしていますが、最終的には役に立ちません。また、ほとんどのプログラミングジョブでは、QuickSortを3行で実装する方法よりも、タスクに適切なフレームワーク/ライブラリを選択する方法を知ることが重要です。
アランプラム

0

会話を交わし、技術的および専門的なルートに沿って漂流して蛇行し、その過程で洞察に満ちた、または愚かなコメントを探します。これにより、面接、人のスキルと性格、一般的な知性、技術スキルの大まかな評価から必要なものの3/4が得られます。

インタビューの「質問」をトピックのスターターとして使用し、会話を技術的なトピックと関連付けます-関心/関心のある領域を適切に調査するために、会話を時々リセットする必要がある場合があります(コーディング演習を行うなど)。

このテクニックの本当の秘Theは、彼らがすべての話をすること確認することです。さもなければ、あなたが言ったことすべてに耳を傾け/同意することであなたが賢く感じるので、好ましい評価のリスクを冒します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.