Githubコピートが悪いインタビューを破る


GitHub Copilotが最近発表されました!過去数年間、我々は人工知能(AI)は、画像認識、推薦アルゴリズムなどの技術の側面に革命を見てきた.CoPilotでは、Githubは、アイテムのリストに“コード生成”を追加することを望んでいる.この記事では、Github Coolilotが何であるかを説明します.なぜ、一部の人々は、技術的なインタビューにおけるその使用を許容しているか、そして、どのようにあなたのインタビューを一般的に、そして、したがって、自動生成されたコードに対してより弾力的であるように構築するかについて説明します.

Github copilotは何ですか?


Github CoPilotは自動補完のスニペットにできるVSCODE拡張です.今までいくつかの形式のコード補完がありましたが、一方では比較的限られていました.通常、彼らはあなたのファイルの既存のコードに頼る傾向があります、あるいは、提案につきわずかな量のコードを示すことができるだけです.他の回では、コード補完はコードの定義済みのスニペット以外には、追加のコンテキストを考慮することなくできます.
CoPilotは、マルチラインとコンテキストを意識したコードの提案を提案する機能を提供しています- AIによって供給.Githubは、このツールは、ほとんどのプログラミング言語で利用可能であり、自分の名前だけで完全な機能を実装することができます.
しかしながら、彼らはこの努力において一人ではありません.Githubは非常に強力なGPT - 3 AIツールの背後にある会社、OpenAIと共同作業しています.GithubのパブリックソースコードとAI世代のopenaiの専門知識から成るトレーニングデータセットの間で、それは印象的な結果を提供する可能性があります.
彼らのウェブサイトから例をとって、それは機能ユーティリティより多くの何からも日付ユーティリティの実装を生成することができます.

単純な入力を考えると信じられない.
function calculateDaysBetweenDates(date1, date2) {
次のコードを生成できます.
function calculateDaysBetweenDates(date1, date2) {
  var oneDay = 24 * 60 * 60 * 1000;
  var date1InMillis = date1.getTime();
  var date2InMillis = date2.getTime();
  var days = Math.round(Math.abs(date2InMillis - date1InMillis) / oneDay);
  return days;
}
すべての新しい技術はそのNaysayersを持っています、そして、我々のチームのいくつかさえその本当のユーティリティについて懐疑的ですが、それは確かに、彼らがコードを書く方法を変えるいくつかのために、強力なツールです.
Githubは単独でAIの電源コード生成のこのベンチャーではない!他の会社(例えばKiteまたはTabNineも同様にこの問題スペースで一生懸命働いています!我々はそれをしたいかどうかは、AIのコードヘルパーを生成ここに滞在することです.

どのように、copilotは技術インタビューを脅かしますか?


現在の技術インタビューの風景では、アルゴリズムの技術評価の主要な方法として統治.我々は以前にwhy this shouldn’t be the caseに触れている一方で、コピートは特にアルゴリズムの問題への解決策を迅速に生成することによって、重要な方法でアルゴリズムの質問を破る.
のどのようにいくつかの一般的なインタビューの質問と対話してください.
数学的能力を迅速に習得することを望んでいるインタビュアーのお気に入りである1つの一般的な質問は、与えられた数が素数かどうかチェックする機能です.
さて、私は数学のスキルをリフレッシュして以来、数年されているので、彼らは少しshakeyかもしれない.私はすべて同じことを理解する必要があります.
vscodeを開き、関数の実装を開始しましょう.
すごい!私は、CoPilotがすでに提案をした前に、「isprime」機能にパラメータを加える機会さえありませんでした!
提案されたコードを見て、それはきれいで、期待通りに機能します!
function isPrime(n) {
    if (n < 2) return false;
    for (var i = 2; i < n; i++) {
        if (n % i == 0) return false;
    }
    return true;
}
確かに、我々はvarconstを変更することができますが、これはコードレビューで2回点滅しないコードです!
これは異常値のように見えるかもしれませんが、copilotはこれらのアルゴリズムベースの質問に秀でるようです.
しかし、確かにisPrimeは本当のインタビュー問題のためにあまりにつまらないでしょう?しかし、一般的なコーディングyoutuberがコードブックのインタビュー問題を解決するためにcopilotを利用しようとするとき、何が起こるかについて見てください
Copilotは、それに与えられたアルゴリズムの難易度ごとに使用可能なコードを生成することができます.さらに、解決策はすべての投稿の平均よりも性能が高い.置換の質問については、それは他の投稿の88 %よりも速くすることができる!
「これらのタイプのインタビュー問題がどれほど優勢であるかを考えると、いくつかの候補がコーディング演習でコピートの彼らの使用で来るより少ないならば、我々は大きなトラブルでありえました.」
これはいくつかのインタビューのために真実かもしれないが、もしあなたのインタビューが写真の副操縦士と崩壊することに影響されている場合、あなたはそれを認識しているかどうかは、この問題に直面している.

アルゴリズムのインタビュー速報


紙の上で、アルゴリズムベースのインタビューの質問は、候補者のスキルを評価するための素晴らしい方法のように聞こえる.彼らは、論理的複雑さの候補者の理解についてのガイダンスを提供するのを助けることができます.
しかし、実際にはアルゴリズムの質問は、現実世界のエンジニアリングの穀物に反対する傾向がある.理想的には、インタビュー・プロセスは、あなたの会社で彼らのプロジェクトで使用している同じ種類のエンジニアリングをする候補者の能力を評価する方法として機能しなければなりません.開発者は、リソースを使用して、一度にアルゴリズムを実装することができますが、彼らはより頻繁にリファクタリングのようなことを行う可能性が高いです.
我々は、どのようにalgorithms aren’t often effective as interview questions in the past.
しかし、仕事の代表ではない以上、アルゴリズムの質問はしばしばカンニングではなく、github copilotを使用することです.ほとんどのアルゴリズムの質問は、お互いに非常に似ているので、多くの場合、ヒントやトリックの小さな選択は、候補者が大幅にインタビューのこれらのスタイルでの出力を向上させるために暗記することができますがあります.
候補者がアルゴリズムを逐語的に出力できる可能性さえあります.これらのアルゴリズムの理解を向上させたいという希望の中で、候補の1つのアルゴリズムの質問を与えるサイトの何百もあります.
しかし、Githubコピートでは、アルゴリズムの質問で不正行為の傾向が大幅に上昇します.私たちが記事で以前に立証したように、それは一度にコードの重要な部分を生成することができます.実際には、CoPilotので、我々は関数の署名を終えることができる前にnon-trivial number of algorithm questions we asked it to solve were doneアルゴリズムの質問に熟練しています.すべてのそれが候補者は、機能の名前をcopilotを与えるために、その評価エディタに結果を貼り付けることです.
さらに、騙したい人々は、フォーラム質問の形で若干の時間のために類似した何かをする能力を持ちました.単にコードフォーラムやStackOverflowのようなサイト上の任意のアルゴリズムを検索し、あなたの処分で回答数百を見つけることができます.
実際、多くの人々は、COPILOTの期待された制約に基づいてコードを検索するプロセスが、開発者がコードスニペットのためにスタックオーバーを検索することによって経験するかもしれないものに似ていることを指摘しました.おかしなことに、いくつかのアイデアは、彼らは単にlooks up StackOverflow answers as suggestionsをcopilotに代替のvscodeプラグインを構築することを決めたように考えていた.
質問がどのように答えられるかに関係なく、質問のこれらのタイプの候補の技術はCodeBaseの他の面で彼らの能力を反映しないかもしれません.そういうわけで、候補に適切にアクセスするために、これらの質問から離れて移動する正しい動きであるかもしれません.

あなたのインタビューを修正する方法


候補者があなたの技術的な査定のために非VSCode IDEを使用するのを単に必要とする間、あなたの取るべきホームプロジェクトが同じ運命を免れるという保証がありません.さらに、VSCodeはCoPilot用の起動プラットフォームであるが、将来的には他のIDEに対してプラグインを得る可能性が高い.
しかし、それは?のは、あなたの会社は、ホームプロジェクト(even though you totally should)、それの何をしないと言うか?VSCodeを制限する場合でも、しばらくの間コプターを回避しても、理想的にはすべての候補のIDEプラットフォームを標準化することができます.
さらに、我々が前のセクションで触れたように、アルゴリズムベースのインタビュー問題はまだ操縦されることができます-副操縦士の有無にかかわらず.
インタビューを解決するための解決策は2倍でなければなりません.
仕事のより多くの代表的な質問
  • は暗記
  • より多くの思考プロセスを必要とする
    候補者とのより良いコミュニケーション
    まず第一に、あなたの質問があなたのプロジェクトのコードベースで見た実世界の課題の例であることを確認してください.これのいくつかの大きな例は「バックエンドエンドポイントconnected to your database」または「refactor this React component to be unidirectional」を設定することである.

    If you’re using CoderPad, we have a great selection of questions available in our Question Bank that you can personalize to fix the unique needs of your team


    第2のポイントは明らかに聞こえるかもしれませんが、この方法を見てください:エンジニアリングは、我々が通常信用するより多くの「柔らかい」技術をしばしば利用します.任意のエンジニアリングチームでは、コードのレビューを行う必要があります、技術的なドキュメントを作成し、あなたのチームの他のユーザーと通信します.プログラムができることはよく、良いですが、柔らかいスキルなしで、それらのスキルを活用する能力をフラットになります.
    候補が提出されたコードの非自明な部分を生成するためにCoPilotを使用して終了したとしても、生成されたコードのレビュープロセスがどのように見えたかを尋ねることができます.それは、彼らのコード標準に続きますか?どのような選択肢を提案し、なぜそれを選択したのですか?どのように維持可能なコードですか?エッジケースはまだ覆われていないですか?

    結論


    github copilot技術の顕著な作品です.それが開発し続けて、開発者が日々それを利用する方法を見るので、それは見て面白いです.それがますます関連しているように、我々は我々のインタビューがその能力を取り扱う(そして、防止する)ように構成されることを確認する必要があります.
    実際、我々はほとんど入力を与えられないa GitHub repo to showcase a wide range of interview questions that Copilot has been able to successfully generateを作成しました.

    あなたが考えるべきであると思う質問を見つけるならば、PRを開けてください.あなたが質問について心配しているならば、copilotに影響されて、多分、それがリストにあるかどうか、repoによって低下して、見てください.