はじめに
GitHub Copilot は、プログラミング経験がまったくない場合や、新たなプログラミング言語を学習している場合に、コーディング方法を学習するのに役立ちます。 このガイドでは、後者のユース ケースについて説明します。つまり、1 つ以上のプログラミング言語でコーディング方法について既に十分な知識があり、新たな言語を学習したい場合です。
前提条件
このガイドは、IDE の Copilot Chat と Copilot でコード補完を使う方法を理解していることを前提としています。 「IDE で GitHub Copilot に質問する」と「GitHub Copilot を使用して IDE でコードの提案を取得する」を参照してください。
基礎から開始する
Copilot Chat を使って新しい言語の基本を調べます。 この言語が、既に知っている言語とどのように異なるかについて確認しましょう。 新しい言語でコーディングを始める前に知っておくべき主な事項を Copilot に尋ねます。
プロンプトの例: 言語の基本
Copilot Chat で新しいプログラミング言語の基本を学習するために使用できるプロンプトをいくつか示します。
-
What is NEW-LANGUAGE best suited for? I am an experienced Python programmer, but I don't know anything about NEW-LANGUAGE.
-
What are the main ways in which NEW-LANGUAGE differs from other languages? Explain the most essential things I need to know as an experienced programmer who wants to learn to code in NEW-LANGUAGE.
-
How can I install NEW-LANGUAGE?
-
How does error handling work in NEW-LANGUAGE?
-
How do you manage dependencies and packages in NEW-LANGUAGE?
-
What are the most essential libraries or frameworks I should know about for NEW-LANGUAGE?
-
What testing frameworks does the NEW-LANGUAGE community typically use?
-
What are the biggest mistakes newcomers to NEW-LANGUAGE typically make with this language?
-
As an experienced programmer learning NEW-LANGUAGE, what are the things I should focus on first?
Copilot をパーソナル トレーナーとして利用する
GitHub Copilot を使ってコードを作成できます。 コードのチャンク、関数、またはプログラム全体を作成するように依頼できます。 ただし、新しい言語を学習しているときは、Copilot に頼って多くのコードを記述することは避けてください。特に、コードを理解しないまま提案されたコードを受け入れる場合は注意が必要です。 言語がわからない場合、Copilot から示されたコードが適切かどうかを判断できません。 そうではなく、Copilot を自分専用のトレーニング アシスタントとして扱うようにします。
新しい言語で特定のコードを記述する方法を Copilot に確認するときは、提案されたコードについて説明するように依頼することをお勧めします。 コード、または Copilot によるコードの説明を完全に理解できない場合は、コードを理解できたと確信できるまで、より簡単な説明、または詳細な説明を求めてください。 完全に理解している自信がないコードの使用は常に避けてください。
プロンプトの例: 説明を求める
-
Explain your previous suggestion in more detail. I am new to NEW-LANGUAGE and I don't understand the code you suggested.
-
Show me how to write the following Ruby code in NEW-LANGUAGE: `people_over_50 = people.select { |person| person.age > 50 }`. Explain each part of the NEW-LANGUAGE code that you suggest.
-
Add comprehensive comments to this NEW-LANGUAGE file to explain what each part of the code does.
新しい言語でシンプルなプログラムを作成する
まず、既に知っている言語で簡単に記述できるシンプルなプログラムを作成します。 Copilot に支援を依頼してください。 必要に応じて、まず非常にシンプルなプログラムの作成を Copilot に依頼することができます。 その後、コードについて確認し、そのしくみを学習し、自分でプログラムを拡張することができます。
プロンプトの例: シンプルなプログラムの作成
-
Show me the Rust code for a simple, useful command line tool that asks for user input and returns some useful information based on what was entered.
-
Comment the suggested code more thoroughly. I want to understand what every part of this code does.
-
Give me the code for a very small Android app written in Kotlin.
-
Suggests ways I could enhance this app.
コメントと Copilot のコード補完を使う
新しいプログラムの基本的なコードを提案するように Copilot Chat に依頼するのではなくに、エディターでコメントを書き込み、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 の場合:
Copilot Chat パネルを開き、プロンプト「
Explain this code
」を入力します。
-
Copilot に具体的な質問をする
新しい言語を学習している間は、特定のタスクを実行する小さなコード単位に取り組むことをお勧めします。 新しい言語の構文とイディオムに慣れるために、Copilot には、明確かつ範囲を絞り込んだ質問をします。
プロンプトの例: 具体的な質問
-
Explain all of the various ways that conditionals can be coded in NEW-LANGUAGE.
-
In JavaScript I'd write: `The ${numCats === 1 ? 'cat is' : 'cats are'} hungry.`. How do I write this in NEW-LANGUAGE?
-
In NEW-LANGUAGE, how do I convert a string to all lowercase?
-
What is the equivalent of num++ in NEW-LANGUAGE?
-
How do I run a program written in the NEW-LANGUAGE programming language?
-
How can I compile a single executable file for my NEW-LANGUAGE project, that I can distribute as a release?
既存のコードを新しい言語に変換する
既存のプログラミング知識を利用する効果的な方法の 1 つは、ある言語で使い慣れたコードをいくつか利用し、それを新しい言語に変換して、同じ操作が新しい言語でどのように実行されるかを確認することです。
- 自己完結型のコードを見つけてください。 たとえば、関数です。
- Copilot Chat に、学習している言語に変換するよう依頼します。
- 提案されたコードをコピーして、エディターで新しいファイルに貼り付けます。
- 2 つのコードを並べて表示し、同じ操作が新しい言語でどのように実行されるかを分析します。 類似点と相違点は何ですか?
- コードにわからない部分がある場合は、Copilot に説明を求めます。
新しい言語で既存のコードを読む
新しい言語の基本に慣れたら、その言語で書かれた既存のコードを読むことに時間を費やしてください。
新しい言語を使っているプロジェクトを見つけて、コードを確認します。 ファイルを開き、Copilot Chat にファイルの目的の簡単な概要を尋ねます。 次に、コードを 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.