はじめに
GitHub Copilot は、プログラミング経験がない場合や、追加のプログラミング言語を学習する場合など、コーディング方法を学習するのに役立ちます。 このガイドでは、後者のユース ケースについて説明します。つまり、1 つ以上のプログラミング言語でコーディング方法について既に十分な知識があり、新たな言語を学習したい場合です。
前提条件
このガイドでは、IDE で コパイロットチャット と Copilot インライン候補を使用する方法を知っていることを前提としています。 「GitHub CopilotにIDEで質問を行う および GitHub Copilot を使用して IDE でコード候補を取得する を参照してください。
基礎から開始する
コパイロットチャットを使用して、新しい言語の基本を調査します。 この言語が、既に知っている言語とどのように異なるかについて確認しましょう。 Copilotに、新しい言語でコーディングを開始する前に、注意する必要がある主な事項について説明するように依頼します。
プロンプトの例: 言語の基本
これらは、新しいプログラミング言語の基本を学ぶのに役立つ コパイロットチャット で使用できるプロンプトです。
NEW-LANGUAGE は、確認する言語名に変更してください。
-
NEW-LANGUAGE はどのような用途に最も適していますか? 私は経験豊富なPythonプログラマですが、NEW-LANGUAGEについて何も知りません。 -
NEW-LANGUAGE が他の言語と異なる主な方法は何ですか? NEW-LANGUAGE でコードを学びたい経験豊富なプログラマとして知っておくべき最も重要なことを説明します。
パーソナル トレーナーとして Copilot を使用する
GitHub Copilot はあなたの代わりにコードを記述できます。 コードのチャンク、関数、またはプログラム全体を作成するように依頼できます。 ただし、新しい言語を学習するときは、 Copilot に頼ってコードの多くを書かないようにする必要があります。特に、提案するコードを受け入れる場合は、それを理解しておく必要はありません。 言語がわからない場合は、 Copilot が提案するコードが可能な限り適切かどうかはわかりません。 代わりに、 Copilot をパーソナライズされたトレーニング アシスタントとして扱う必要があります。
新しい言語で特定のコードを記述する方法を Copilot に尋ねる場合は、提案するコードを説明するように依頼する必要があります。 コード、またはCopilotによるそのコードの説明を完全に理解できない場合は、コードを理解できたと確信できるまで、より簡単な説明を求めるか、さらに詳しい説明を求めてください。 完全に理解している自信がないコードの使用は常に避けてください。
プロンプトの例: 説明を求める
NEW-LANGUAGE は、確認する言語名に変更してください。
-
Explain your previous suggestion in more detail. I am new to NEW-LANGUAGE and I don't understand the code you suggested. -
次の Ruby コードを NEW-LANGUAGE:people_over_50 = people.select { |person| person.age > 50 }でどのように記述するか教えてください。 提案する NEW-LANGUAGE コードの各部分について説明します。 -
Add comprehensive comments to this NEW-LANGUAGE file to explain what each part of the code does.
新しい言語でシンプルなプログラムを作成する
始めるには、既に知っている言語で簡単に書けるプログラムを作成します。 Copilotにヘルプを依頼します。 必要に応じて、作業を開始するために、 Copilot に非常に単純なプログラムを作成するように依頼できます。 その後、コードについて確認し、そのしくみを学習し、自分でプログラムを拡張することができます。
プロンプトの例: シンプルなプログラムの作成
-
ユーザー入力を要求し、入力された内容に基づいて有用な情報を返す、シンプルで便利なコマンド ライン ツールの Rust コードを表示します。 -
Comment the suggested code more thoroughly. I want to understand what every part of this code does. -
Suggests ways I could enhance this app.
コメントとCopilotインライン候補を使用する
新しいプログラムの基本的なコードを提案するように コパイロットチャット に依頼する代わりに、エディターでコメントを記述し、 Copilot が提案するコードを確認できます。
次に例を示します。
-
IDE で、使っている言語に適したファイル名拡張子を持つファイルを作成します。 たとえば、Rust を学習している場合は、
example.rsというファイルを作成します。 -
次のコメント行をコピーして貼り付けます。
Rust // NEW-LANGUAGE command line program to find the day of the week for a date. // The program does the following: // Prompt user to input string in format YYYYMMDD // Parse the string to check that it is a valid date. // If it's not, print an error message and exit. // Calculate the day of the week for the given date. // Print the day of the week to the user.
// NEW-LANGUAGE command line program to find the day of the week for a date. // The program does the following: // Prompt user to input string in format YYYYMMDD // Parse the string to check that it is a valid date. // If it's not, print an error message and exit. // Calculate the day of the week for the given date. // Print the day of the week to the user. -
必要に応じて、使っている言語に合わせてコメントの構文を変更します。
-
NEW-LANGUAGEを、使っている言語の名前に変更します。 これは、ファイル名拡張子と、使用する言語 Copilot 示します。 -
return キーと Tab キーを押して、 Copilot 提供されているインライン提案を表示して受け入れます。 プログラムが完成するまで、提案を受け入れ続けます。
-
コードを読んで、そのしくみを確認します。 コードの一部が理解できない場合は、 Copilot に説明を依頼してください。 次に例を示します。
-
わからないコード行を 1 行以上選びます。
-
次の場所VS Code:
選択したコードを右クリックし、 Copilot > Explain を選択します。
-
JetBrains IDE:
選択したコードを右クリックし、[ **GitHub Copilot** > **Explain This**] を選択します。
** Visual Studio内:**
コパイロットチャット パネルを開き、プロンプト Explain this codeを入力します。
Copilot具体的な質問をする
新しい言語を学習している間は、特定のタスクを実行する小さなコード単位に取り組むことをお勧めします。 Copilot明確に定義された狭い範囲の質問をして、新しい言語の構文とイディオムを理解するのに役立ちます。
プロンプトの例: 具体的な質問
NEW-LANGUAGE は、確認する言語名に変更してください。
-
JavaScriptでは、私は書きます:The ${numCats === 1 ? 'cat is' : 'cats are'} hungry.。 これを NEW-LANGUAGE で記述するにはどうすればよいですか? -
リリースとして配布できる、NEW-LANGUAGE プロジェクトの 1 つの実行可能ファイルをコンパイルするにはどうすればよいですか?
既存のコードを新しい言語に変換する
既存のプログラミング知識を利用する効果的な方法の 1 つは、ある言語で使い慣れたコードをいくつか利用し、それを新しい言語に変換して、同じ操作が新しい言語でどのように実行されるかを確認することです。
- 自己完結型のコードを見つけてください。 たとえば、関数です。
- コパイロットチャットに、学習している言語に変換するように依頼します。
- 提案されたコードをコピーして、エディターで新しいファイルに貼り付けます。
- 2 つのコードを並べて表示し、同じ操作が新しい言語でどのように実行されるかを分析します。 類似点と相違点は何ですか?
- 理解できないコードを Copilot に説明してもらいます。
新しい言語で既存のコードを読む
新しい言語の基本に慣れたら、その言語で書かれた既存のコードを読むことに時間を費やしてください。
新しい言語を使用するprojectを見つけて、コードを確認します。 ファイルを開き、 コパイロットチャット にファイルの目的の概要を確認します。 次に、コードを 1 行ずつ読み進めます。 使用されている手法を理解できますか? ライブラリと組み込み関数がどのように機能するかを理解していますか? コードを使ってデータフローを追跡することができますか?
Copilotに、理解できないコードの部分について説明してもらいます。
コードを読み終えたら、コードを改善する方法を提案できるかどうかを Copilot 確認します。
Copilotが常に正しいと想定しないでください
Copilot は新しい言語を学ぶのに役立つツールですが、ほかのすべての AI アシスタントと同様に、決して完全無欠ではありません。 間違いを起こす可能性があり、最適ではないコードを提案する可能性があります。
Copilot は大規模なコード本文でトレーニングされますが、言語ごとに、受け取る提案の品質は、その言語のトレーニング データの量と多様性によって異なります。 たとえば、JavaScript はパブリック リポジトリで適切に表現されているため、 Copilot は通常、正確で役立つ提案を提供できます。 パブリック リポジトリであまり適切に表現されていない言語では、 Copilotの提案の品質が低くなる可能性があります。
Copilotが提案するコードを常に確認し、使用する前に理解していることを確認してください。 Copilotによって提案されたコードを確認するときは、コードをよりパフォーマンスが高く、シンプルに、または保守しやすくする方法を探す必要があります。
Copilotが何かをコーディングする最善の方法を提案していないと思う場合は、別のアプローチを試すように依頼できます。
コードを実行してエラーが発生した場合は、エラーの詳細 Copilot 指定し、コードの修正を依頼します。
また、 Copilot がコーディング スタイルのガイドラインに従っていることを確認する必要もあります。 そうでない場合は、リポジトリのカスタム命令を変更して、将来のガイドラインに従うように Copilot を求めることができます。 「GitHub Copilot用のリポジトリカスタム命令の追加 を参照してください。
プロンプトの例: 作業内容のチェック
-
Check this code for syntax errors. -
Assess whether this code is optimally performant. -
Suggest alternative ways this code could have been written.