ペアプログラミングのインタビューから学んだこと

一部の企業は、プログラムと候補者を組み合わせて、スキルを測定しながら一緒に仕事をしている感覚をつかむことを好みます。私はそれらの会社のいくつかにいました、そして、多くの場合、私の仕事の1つはそれらのインタビューでペアになることでした。

コンサルティング会社での以前の仕事では、プロジェクトごとにチームがありました。一部のプロジェクトにはNDAがあり、そのため、そのチームに参加する人は誰でもサインインする必要がありました。これにより、潜在的な従業員とペアリングするときにこれらのコードベースを使用することが困難になりました。その結果、ほとんどの場合、社内プロジェクトか、クライアントが候補者にコードを表示しても問題がないプロジェクトのいずれかでペアになりました。

私は通常NDAのないチームに所属していたので、候補者がいるときはいつでも私がメインのペアでした。その会社に5年間在籍していると、候補者が何人いたか想像できます。平日は毎日違う人とペアを組んでいたこともありました!

現在の会社ではペアプログラミングも行っています。2010年からペアプログラミングをやっていて、当たり前になっています。

しかし、これらの面接について覚えておくべきことの1つは、それが双方向に行われることです。面接官は面接対象者のスキルと性格について学び、面接対象者は誰と一緒に仕事をするか、そして典型的な就業日はどのように見えるかを学びます。

それで、これが私がインタビュイーとインタビュアーの両方としてペアプログラミングインタビューから学んだ教訓です。うまくいけば、これはあなたがあなたの次の面接のためのより良い考えを持っているのを助けるでしょう。

準備して

これから取り除けることが一つあるなら、これにしてください。任意のインタビューのように、あなたは、ことを明らかに思えるかもしれませんHAVE準備する-しかし、私はちょうど私がこの点を強調するために必要なことを感じました。

面接官として、候補者の履歴書、履歴書、またはソースコード(提出されている場合)を確認します。これはあなたが彼らとコミュニケーションをとるときに役立つ彼らのスキルレベルと個性に対するあなた自身の期待を設定するのに役立ちます。あなたが同じ趣味を持っていることを知っていることは良い砕氷船かもしれません!

面接対象者として、会社のWebサイトにアクセスし、読んだりクリックしたりします。私はウェブ開発者として応募した状況にあり、最初に投げかけられた質問は、「それで、私たちのウェブサイトを見たことがありますか?それを改善するために何ができると思いますか?」言うまでもなく、私はそのインタビューを失敗させました。ですから、少なくとも彼らのウェブサイトを見てください。コードを送信した場合はコードを確認し、すべてを再確認してください。

リラックスして自分らしく。

これは一般的なアドバイスのように聞こえるかもしれませんが、一般的または技術的なインタビューと比較して、ペアプログラミングセッションにとってはるかに重要です。どうして?いくつかの一般的な面接では、人事担当者があなたに話しかけ、その期間中あなたの性格を測定するからです。あなたは彼らと同じ会社にいるでしょうが、あなたは彼らと毎日直接仕事をすることはありません。

ペアプログラミングセッションでは、会社がとにかくほとんどの時間ペアプログラミングを行う場合、あなたは仕事の一部として面接官と緊密に協力している可能性があります。それが主な違いです。

これは、インタビュアーとインタビュイーの両方で機能します。他の関係と同様に、絵の一部だけに基づいてそれを構築する場合、長期的な関係を持つことは困難です。あなたの基盤は不確実性の不安定な地面になり、遅かれ早かれそれが出てきて、いくつかの問題を引き起こす可能性があります。

質問をする!

面接官として、ほとんどの場合、候補者は緊張することに注意してください。質問が多すぎると怖がる可能性がありますが、質問をしないと暗闇に陥り、ペアリングの1日が無駄になります。

ペアリングの日に尋ねられる一連の質問をリストアップすることを学びました。リストは順番に並んでいる必要はなく、一度にすべてを尋ねる必要もありません。ほとんどの質問はペアリング中に出てきますが、念のために書き留めておくことをお勧めします。

インタビュイーとして、一部のインタビュアーはあなたが質問をすることを期待していることを忘れないでください。尋ねないということは、興味がない(なぜとにかく応募するのか)か、すべてを知っている(知らない)ことを意味します。

私が誰かとペアを組むときはいつでも、彼らが質問をするときとその頻度に注意します。質問は、「最初の議論は何でしたeach_with_indexか?」のような単純な構文の質問にまで及ぶ可能性があります。「普段は毎日ペアリングしていますか?」などの仕事関連の質問に

正しい解決策も間違った解決策もありません

私にとって、それは仕事を成し遂げることの問題です。候補者は最高の状態であると期待していますが、神経質になり、思考にわずかな影響を与える可能性があることは理解しています。

つまり、面接中にメンタルブロックが発生することはかなり一般的です(少なくとも私にとっては)。私は新卒者からジュニア、中堅開発者、さらにはシニアまで、さまざまな人々とペアを組んでいますが、私自身も時々ブラックアウトします。

適切な例:現在の仕事について面接を受けていたとき(その時点ですでに6年以上のRubyの経験がありました)、簡単な演習を行っていたので、の作成方法を完全に忘れていましたHash。まるで、私はちょうど行きました。どうすればまたそれを行うことができますか?ええと、私は何かをグーグルできますか?」かなり恥ずかしいですが、私が尋ねたとき、私のペアもちょうど空白になっていたので、私たちは一緒にグーグルで検索しました。楽しい時間。

インタビュアーとして、問題に対するあなた自身の解決策の概念に固執しないでください。FizzBu​​zzを書くには11287398173の方法があり、あなたの解決策は(おそらく)そこにある最良のものではありません。代わりに、他の解決策に対してよりオープンになり、可能な限りそれらを判断してください。

ペアインタビューをするときは、質問をするときに答えを頭に入れているのが普通ですが、自分と同じ答えになることはほとんどないので、面接対象者の答えを聞いて見ています。あなたは創造的な人々がどのように得ることができるかに驚くでしょう!

面接対象者として、この事実に注意し、あなたのことをしてください。効率が悪いことを心配して立ち往生しないでください(それが面接の質問でない限り!)が、同時に、ずさんなことはしないでください。TDD / BDDを行う会社のペアリングセッションに参加する場合は、まずテストから始めてください。彼らはそれを探しているでしょう(私はそうします!)そしてあなたがただ物事を壊すならばあなたは山の底に行き着くかもしれません。

これを通常のペアリング日として扱います

私の最初の経験に基づいて、私はそれを技術面接として扱いました。私は候補者のそばに座って、彼らが考えを打ち込んでいる間、メモを取りました。

しかし、これは私が通常ペアリングする方法ではなく、それに気付いたとき、私は自分のやり方を変えました。誰かが立ち往生したとき、私は正確に答えることなく彼らを少しずつ動かしました。「エラーメッセージは何ですか?」などの詳細な質問をします。または「問題は何だと思いますか?」または「それを修正するために何ができますか?」

面接官として、候補者に90%の時間運転させますが、100%運転させることはできません。それは、それがより厳格な技術面接であるという印象を与えます(あなたは彼らのすべての動きを見ているだけです-それは実際に集中するのを難しくします)。キーボードを少し試してみて、解決策について話してもらいましょう。これは彼らを安心させるでしょう。

インタビュイーとして、キーボードが渡された瞬間に入力を開始しないでください。最初にソリューションについて話し合い始めます。あなたが彼らにあなたの考えを知らせている間、彼らがキーボードを持ちたいかどうかあなたのパートナーに尋ねてください。これは、技術面接ではなく、ペアリングの「テストドライブ」であることを思い出してください。それは私を次のポイントに導きます…

パートナーと話をする

これは、ペアリングインタビューを行うときに最初に確認することです。以前の会社では、私は通常、私たちが取り組んでいるアプリが何をしているのか、私が取り組んでいる機能は何か、そして私たちが何をすべきかを説明することから一日を始めました。それから私は自分のスペックをタイプし始め、候補者に統治権を持たせました。

私は彼らが何をしたかを見るために注意を払います:時々彼らはただ先に進んでタイプし始めました、他の人は最初に黙って考えます、そしてさらに他の人は問題について質問したり私に彼らの解決策を知らせたりしました。

私の現在の会社では、ペアセッションは通常、特定の問題に焦点を当てています。私は候補者に読む問題を与え、それから私は待ちます。彼らが何も言わずにタイプし始めたら、それは私にとってすでに危険信号です。ペンと紙を手にした人にポイントを与え、図で解決策を説明し始めます。

面接官として、候補者にペアリングセッションであると感じさせるために会話を続けることが重要です。この時点で、2人は1つのユニットです。あなたはお互いにうまくコミュニケーションを取り、アイデアをやりとりできるはずです。

もちろん、候補者が自分で考える必要がある場合もあるので、それも持ってもらいましょう。会話を続けることと、彼らに集中させて問題を解決させることの間のバランスを見つけてください。

面接対象者として、あなたが何をするつもりで、あなたの解決策が何であるかを常にあなたのパートナーに知らせてください。これにより、これがペアリングセッションであるという事実を認識し、アイデアをうまく​​伝えることができることを彼らに知らせます。これはまた、YOLOに行くのではなく、慎重に計画を立てているという感覚を彼らに与えます。

少し考えても大丈夫です

上記のステートメントとは対照的に、あなたは静かに考える時間もあるはずです。空気が抜けていても大丈夫です。結局、あなたはラジオ局にいません。

インタビュアーとして、これを行う必要はめったにありません。しかし、実際に実装している機能の候補者とペアを組んでいる私の状況では、あなたも考える時間が必要になります。パートナーにこれを知らせれば問題ありません。

面接対象者として、あなたはあなたが考えるのに少し時間が必要であり、あなたが後であなたの解決策を彼らに知らせるであろうことをあなたのパートナーに知らせることができます。これは、あなたが彼らの存在を認めていること、そしてあなたがそれらを処理した後にあなたの考えを伝えていることを示しています。コミュニケーションが鍵です!

最終的な考え

これらは私が学んだほんの一部です。うまくいけば、彼らはあなたの次の面接であなたを助けることができます。これはペアリング面接をエースする方法についての包括的なリストではありませんが、候補者(そして初めての面接官も!)の面接に役立つと思います。

幸運を!また、何が起こっても、何かを学んだことで面接から抜け出すことを忘れないでください。それが重要です。