あなたよりも経験のある人にどのようにインタビューしますか?[閉まっている]


81

私が働いている会社は、私よりも経験のある上級開発者を雇いたいと考えており、インタビューの技術的な部分を私に任せることを期待しています。プログラミングを始めて数年になりますが、自分よりも理解/経験のある人のコーディングスキルを評価するために必要な知識があるかどうかはわかりません。

技術的なインタビューの質問を推奨して、より高いレベルのプログラミングスキルを評価するための良い手段ですが、それでも理解できるものはありますか?

私はjrを過ぎていると言うでしょう。プログラマーレベルですが、シニアに近いところはありません。私がやったことのほとんどは、小さなアプリ(Webおよびデスクトップ)を作成することで、その一部はかなり複雑ですが、それらはすべて、ほんの少数のユーザーが使用することを意図しています。私はほとんどのプログラミング概念を十分に理解しており、あらゆることについて自分で学習/指導できると感じていますが、経験が不足しています。私の上司は「あなたはあなたが知らないことを知らない」と言うのが好きです。

特に、私が雇った経験のない人(私が持っていないもの)は、多層開発、マルチユーザー環境、大規模アプリケーション開発、双方向メッセージング、共有セッション、およびマルチスレッド/ BackgroundWorkers。

更新:

以下のThorのコメントに応えて、私たちは数ヶ月前に誰かを雇いました。コーディングだけでなく、デザインパターン、ソフトウェアアーキテクチャ、ドキュメント、その他の大規模なプログラミングチームがどのように作業を行うかなどについても、多くのことを学んでいます。誰かがやって来て、自分がやったことをするためのより良い方法を指摘することは必ずしも容易ではありませんが、あなたが誇りを飲み込み、新しいことを試してみようとすることができれば、多くを学ぶことができます。

面接のプロセスは思ったよりもうまくいきました。慣れ親しんだことについて質問し始め、苦労していたことについて質問しました。インタビュイーがわからないことを言ったときはいつでも、説明してもらい、後で調べられるように書き留めるように頼みました。全体として、申請者のスキルレベル、知性、そして彼らがどのような仕事をしたいかについてかなり良いアイデアを得ることができたと感じました。


1
@CodexArcanum-それは完全に珍しいことではありません。一部の大企業は、インタビューパネルの一部として、より高いレベルの候補者の部下を持つことができます。
rjzii

1
ITスタッフが少人数の小さな会社です。既存のソフトウェアを置き換えるソフトウェアの開発を支援するために、必ずしも正社員としてではなく、1〜2年雇用しています。私は彼らのビジネスをかなりよく知っており、彼らは私の仕事を気に入っているので、彼らは私に取って代わると思いますが、たとえ彼らがやったとしても、私は別の仕事を見つけることができると確信しています。また、彼らは私よりもかなり新しい人に喜んで支払い、彼らが私の給料を彼/彼女と交換することを疑います。
レイチェル

2
理解できない問題を理解できる方法で説明してもらいます。それを理解するのに問題があると言ってはいけません。:)
dietbuddha

5
ここでどちらかの側にいくつかの不快感があるかもしれません。あなたの利点にそれを使用してください。この役割の優秀な人材は、あなたを尊重しながらあなたを指導できる人です。一般的に経験が少なくても、状況についてもっとよく知っているかもしれないという事実に誰がオープンであるか。良い関係を築くことができる人と。ひどい雰囲気、愛顧、恥ずかしさ、無礼、「あなたは本当に問題ではない」を得ているなら、おそらくあなたはこの人と働きたくないでしょう。
poolie

1
@Thor、アップデートを追加しました
レイチェル

回答:


85

できません。

代わりに、あなたが今日抱えている問題のリストをインタビューに出して、彼にどのように解決するかを尋ねることをお勧めします

これは、次の2つの理由から非常に興味深い方法です。

  1. それは無料コンサルティング。あなたが男を雇わなくても、彼はあなたの問題に対する素晴らしい解決策を提案するかもしれません。

  2. 彼が面白い解決策を持ってきたら、彼は問題解決者です。あなたが雇いたい人の種類。


27
すべての票を使い果たしましたが、無料のコンサルティングを期待する場合は-1、問題のリストを生成する場合は+1です。
ジョシュK

16
すでに解決した興味深い問題を提示し、彼/彼女のソリューションがあなたのものとどのように比較されるかを見ることができます。もちろん、それについて考える時間はあまりなかったので、良くはないかもしれませんが、彼/彼女がそれについてどのように進むかを見るだけで、多くのことがわかります。
mbillard

27
経験豊富な人は、「無料のコンサルタント」を1マイル離れたところに見ることになり、これは交渉に悪影響を及ぼします。業界には、面接プロセスの一環として候補者に1週間のプロジェクトを行わせ、採用しないで評判を得ている企業がいくつかありますが、多くの場合、提案を実施します。
JBRウィルキンソン

6
@JBRWilkinson-1週間のプロジェクトを提案している人はいないと思います。チームが現在直面している問題に基づいてインタビューの質問を提案していると思います。結局のところ、彼らは面接時に役割を果たしていれば、彼らが貢献することを期待しているようなものだからです。
ジョンホプキンス

3
@JBRWilkinson 経験豊富な人は、「無料のコンサルタント」を1マイル離れたところに見ることになり、これは交渉に悪影響を及ぼします。私は強く同意します。無料のコンサルタント制度はひどく、残念ながら前代未聞ではありません。
ショーンパトリックフロイド

62

あなたの年齢を利点として使用してください。

私は私より年上のたくさんの人々にインタビューしました。私よく知っているテクノロジーを選び、テクノロジーXについて聞いたことがあるが、それを使ったことがないことを伝えます。候補者に、テクノロジーの概要とプロジェクトでどのように使用したかを教えてください。

これは驚くほどうまく機能します。第一に、候補者が履歴書でそのテクノロジーXを流行語としてのみ使用している場合、その説明は意味をなさない/意味をなさないでしょう。また、過去のプロジェクトで彼らがそのテクノロジーをどのように使用したかの良い具体的な例を提供できない場合、すぐそこに大きな危険信号があります。

java Springの経験がある人にインタビューしました。私は以前の仕事でSpringを使用していましたが、Springの大きな特徴の1つはDependency Injectionです。私はインタビューした候補者に、春について聞いたことがあり、それを使ったことは一度もなかったことを話しました。彼は何度もり始めましたが、彼の履歴書でそれらのことを呼び出して明示的に尋ねた後でも、彼がSpring AOPを使用した場所を教えてくれず、Dependency Injectionを説明できませんでした。彼は私に彼らが本当にクールだと言ったばかりで、そこに学ぶべきことがたくさんある、などなど。彼はジャックを知らなかったことが本当にわかった...そして私はb / cを見つけただけだった開発チームの若いメンバー。

だからあなたの年齢をアドバンテージとして使ってください!入って、自信を持ち、よく知っているテクノロジーについて質問してください。


2
それは興味深いですね。私は一般的に、それは私の利点に振り向くことができるか見るためにその興味深いので、欠点として、私の年齢/経験不足を表示
レイチェル

16
面接で誰かをクイズすることが期待されています。あなたは嘘をついて、同じ質問をするためにテクノロジーを使ったことがないと言う必要はありません。例:「$ technology_xを知っていると思います。それの概要、それを使用する理由と場所、プロジェクトでどのように使用したかの例を教えてください」
user21007

1
正直言って あなたが持っている場合、あなたは前に何かを使用したことがないと言ってはいけません。質問をしてください。LGriffelが言おうとしていることは、彼らを不意に捕まえることだと思います。それらの下に自分を置いて、彼らは自信過剰になります。彼らが本当に何かを知らない場合、それはすぐに表示されます。
d -_- b

これは、アインシュタインの引用の1つと密接に関係しているようです。「簡単に説明できない場合、十分に理解できない」。候補者は物事を単純かつ抽象的に述べることを余儀なくされ、何かをあなたに説明するのを忍耐するように思われます。これらはすべて、上級開発者に本当に必要なスキルです。
c_maker

31

彼らはあなたよりも多くの経験を持っているという理由だけで、彼らはあなたよりも優れた開発者ではないかもしれないことを覚えておいてください。「1年の経験をn回繰り返した」というフレーズ。業界でこれが起こるのを見るからです。したがって、インタビュー中の最初のタスクは、彼らが実際に関連する経験を持ち、自分が何をしているのかを知っている誰かとして自分自身を提示できることを確立することです。同様に、誰かが業界でn年の経験を持っているからといって、特定の言語、ライブラリ、またはフレームワークで豊富な経験を持っているわけではないので、彼らが時々質問をすることもあります何かを学ぶ。

次に、優れた上級開発者は、あなたが問題を抱えているものに近づき、質問できる人であることを忘れないでください。これは、あなたが問題を抱えている設計上の質問を彼らに尋ね、彼らがどのように反応し、その説明が彼らの説明に含まれているかを見る良い機会です。彼らはどこか以前に似たようなものを見たことがありますか、経験に基づいて知識に基づいた推測をしているのですか、オンラインで記事を読んだのですか、それともジャーナルで読んだのですか?

最後に、もう1つ注目すべき点は、デバッグコードへのアプローチです。私の経験では、言語に関係なく、特定のデバッグ手法が普遍性に適用される傾向があることがわかりました。候補者に、あなたが遭遇したより難解なバグの1つの例を与えて、彼らがバグにどのようにアプローチするかを説明してもらいます。彼らはすぐに明らかではない問題についての洞察を持っていますか?

要約すると、印象的な面接で候補者を面接するのは恐ろしいかもしれませんが、レベルに関係なくカバーする必要のあるものがあります(つまり、彼らは実際に彼らが何をしているのかを知っています)。彼らがどのように彼らの経験を応用しているかを見るために。候補者が以前の職務経験をどのように適用しているかが、ある候補者を他の候補者よりも際立たせるものになります。


51
この。「N年の経験」はたまに「本当に良いプログラマー」を意味します。私の現在のチームの最大の馬鹿(私は彼女を雇わなかった、偶然にも彼女は以前にそこにいた)は、彼女の20年の経験を定期的に誇っています。それは、私が一緒に働きたい塩辛い古いハッカーがいないということではありませんが、私は彼らの知識と推論スキルよりも彼らの年数にあまり感心していません。
イナイマティ

@Inaimathiこれは1000の賛成票に値する:-)
ショーンパトリックフロイド

24

私はあなたの年齢を有利な答えとして使うのがとても好きで、私は同様のものを提案します:

経験の低いレベルを利点として使用する

この人はおそらくあなたの上司またはメンターになるので、その人が実際にあなたをメンターできるかどうかを確認できる方法で質問してください。

はるかに簡単にできる複雑な質問、または過度に複雑な問題を含む複雑な質問をします。彼/彼女が良ければ、彼/彼女は質問に答えようとするだけでなく、問題を解決するだけでなく、実際の問題にたどり着き、質問の欠陥を示します。彼/彼女があなたを脅すことなく丁寧にそれを行うことができれば、彼/彼女はキーパーです。


1
+1(投票者!)。上級プログラマーの魔術師を探しているのではなく、知識の乏しいプログラマーを指導し、助けることができる人を探しています。彼らが知識を伝えるのが苦手なら、彼らは仕事が苦手です。
ジョシュK

8

本当に重要なことは、あなたは彼が正しいことを確認してくださいということです親切に必要なもののために、経験豊富な開発者の。

人々が自分のキャリアを進むにつれて、彼らは何をするかという点で異なる方向に進む傾向があります。プログラマーの大規模なチームを運営したり、複雑なレガシーコードで作業したり、自分の役割にふさわしい人物でなくても彼らの仕事に非常に優れている専門家である人々にインタビューするかもしれません。だから何のアイデア持ってみてください正確に事前に探しているとし、正確に他の人からあなたの仕事のために、現像剤の種類を区別します質問を考えます。


7

これを何回かしなければなりませんでした。私は段階的なプロセスでそれをすることを学びました。

  1. 私が大学の卒業生に与える同じ質問から始めてください。私がこれをしたのは、技術面接を行っていた役職が、開発者がコードを実際に手に入れることを期待していたプログラミング職であり、候補者がプログラミングできるようにしたかったからです。唯一の例外を除いて、候補者は誰もできませんでした-彼らは大学の卒業生のどれよりも悪かった。全員が管理職に就いていました。
  2. 基本的なコーディング能力テストに合格した候補者には、より一般的な「Xシナリオをどのように処理しますか」という種類の質問がありました。たとえば、プロジェクトでWebサービスを実行している場合、興味深いWebサービスの質問を考え、候補者にどのように解決するかを尋ねます。これは、主に知的財産と企業独自のデータの問題のため、現在直接作業しているものであることはお勧めしません。そのようなものを与えないでください!
  3. 履歴書の内容について候補者に尋ねる時間を過ごす。これは重要。彼または彼女の最高および最悪のチームエクスペリエンス、スーパーバイザーとしての経験などについて調べることができます。その人の働き方を感じて、あなたのチームに適しているかどうかを確認してください。

上級候補者と面接するときの私の最大の問題は、特に私の基本的なコーディングテストを処理できなかった後輩の面接に非常に緊張することでした。面接を通してあなたが示すどんなスキルでも、脅威にならないように一生懸命に努力してください。たとえあなたの質問にうまく答えられなくても、彼らに集中してください。基本的に失敗した場合に回答できる質問にインタビューを傾けてみてください。


それは実際、私の懸念の1つです。明らかに後輩が誰かにインタビューされると、インタビューにどのように影響するか。私はので、私は多くの経験を持つ偽のことができます方法はありません若いんだ
レイチェル

1
@レイチェル-私のインタビューを受ける人の何人かは、生まれる前から業界で働いていました。通常、ステップ1の後に緊張を和らげる最良の方法は、ステップ3にスキップし、候補者が自分の長所について快適に話すことです。
justkt

4
@レイチェル明らかに彼らの後輩にインタビューされることは、彼らに対処できない場合、インタビューにどのように影響するか、彼らは良くない
ショーンパトリックフロイド

3

実際の面接プロセスの観点から見ると、基本的には、あなたが雇っている他の人と同じように扱います。同様の採用プロセスが必要です。

  1. CVまたは代理店の推奨による選択。
  2. 適性テスト(FizzBu​​zz、strdup()/ isAlpha()、OODなどの組み合わせ)
  3. 電話インタビュー(コミュニケーションがうまくいかない場合に迅速に排除するため)
  4. 対面インタビュー
  5. 書かれたコーディング演習
  6. チームメンバーの一部に会います。
  7. リスクとコストが高くなることを意味する経験豊富な人にとっては、追加の面接が許容されますが、進行中の場所に明確に伝える必要があります(つまり、これは3回の面接の1回です)。

このサイトには、インタビュープロセスでカバーすべき一般的なディスカッショントピックをカバーする他の多くの投稿がありますその1つに対する私の回答を次に示します

面接プロセスのすべての時点で、経験豊富な人は、宣伝されている専門分野について優れた理解を示す必要があります。ディスカッション中に取り上げたトピックについて、深く掘り下げることができます。経験/快適レベルの限界まで質問をして、心配なく続行できるかどうかを確認してください。あまり経験のないことを深く理解する必要がある場合は、サンプルの質問をWeb検索して(選択項目を取得)、インタビューの前に回答を読んで理解してから、これらの質問のいずれかを候補にします。彼らがすべての答えを知っていることを期待しないで、質問の選択をしてください。

経験豊富なエンジニアには、次の2つのタイプがあります。

1)関連業界の経験

これは、あなたが現在の問題のリストを取り、それらがそれらの問題にどのようにアプローチするかについて話すことができる人です。業界の各ドメイン固有のトピックの理解レベルを測定する必要があります。その業界では、「良い」答えから「愚かな」答えを伝えることができ、おそらく「経験のある」答えも見つけることができます。他の答えとは対照的に、彼らがあなたの現在の問題を実際に解決することは期待していません。

2)関連する業界経験がない

そのため、この候補者は業界を変える可能性がありますが、必要な基盤技術/プラットフォーム/スキルに関する優れた経験があります。それらの項目について深く掘り下げますが、ドメイン固有の問題の解決策を思い付くと期待しないでください。たとえば、あなたの会社がFacebookであり、面接している人がPHPとC ++を使用している場合、大規模なサーバーファームのすべての落とし穴を知っていると期待するのは非現実的です(CVで主張している場合を除く)。


2

私が明示的に指摘していないのは、「あなたはテクノロジーXをよく知っているし、とてもおもしろいですね。5分で説明していただけますか?」

最終的に新しい人から出てくるコードを維持できることが期待されるので、彼または彼女が他のプログラマに効率的かつうまく説明できることが重要です。コミュニケーションスキルであると考えてください。

スキルレベルで他の開発者に会い、そのレベルで考えやアイデアを伝えるには、完全な理解が必要です。

その人が口頭でコミュニケーションできない場合は、メンテナーではなくコンパイラー向けにコードを書くだけです。


2

メンタリングの部分についてはスティーブンに同意します。実際、メンターシップに関する彼/彼女の見解は何か、彼はさまざまなシナリオでどのようにそれを行っているかについて彼/彼女に質問することができます。次に、回答に基づいて評価します(気分が良ければ上司からフィードバックを受け取ったり、報告書で実際の回答を話し合ったりできます)。

候補者はおそらくあなたの仕事を解決するか、少なくとも理解できるはずなので、同僚に尋ねる質問をすることもできます。


2

現在使用している、または使用する予定の実際の問題とテクノロジーに関するインタビューで、間違いなく彼の脳を選びます

彼/彼女が有能で想像力豊かなシニア開発者であると仮定して、あなたが彼/彼女から学び、彼/彼女とうまく働くことができると思うかどうかに基づいて、採用するかしないかに決めます

将来の上司にインタビューするのではなく、将来のメンターにインタビューするのです。すべての答えを知っているが教えることができない人を選ばないでください


2
+1「すべての答えを知っているが教えることができない人を選んではいけない」。私は常に学び続けたいので、それは私にとって大きな要因です
レイチェル

1

すでに解決した問題の束を取ります。問題を解決するために何が行われたかを彼に説明してください(第三者に注意してください。ここに個人的なエゴをかけたくありません)。彼が「異なる」ことをしたであろうことを彼に尋ねてください。あなたは、彼が提案していることに基づいて、それがあなたがしたことよりも概念的に良いか悪いかを理解できるはずです。


1

「賢くて物事を成し遂げる:ジョエル・スポルスキーの最高の技術的才能を見つけるための簡潔なガイド」という本を読むことを真剣にお勧めします。

私は誰も雇いませんでしたが、時々、私がインタビューを受けたとき、流行語だけを知っていて、私にインタビューしていて、その本に推論の線を露出させた馬鹿を願っていました。テキストは非常に流動的で、読むのが楽しみです。

いいえ、このサイトは本の著者のものであるという理由だけで、広告を作成しているわけではありません。この本は本当に素晴らしいです。ITの人材を雇う立場にある人、特にテクノロジーを理解していない人におすすめです。今日では、非技術的なプロジェクトマネージャーや上司がいるのが一般的です。

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