Skip to main content

GitHub Copilot で新しいプログラミング蚀語を孊習する

GitHub Copilot Chat を䜿っお新しいプログラミング蚀語でコヌディングする方法を孊習するこずで、プログラミング スキルを高めるこずができたす。

はじめに

GitHub Copilot は、プログラミング経隓がたったくない堎合や、新たなプログラミング蚀語を孊習しおいる堎合に、コヌディング方法を孊習するのに圹立ちたす。 このガむドでは、埌者のナヌス ケヌスに぀いお説明したす。぀たり、1 ぀以䞊のプログラミング蚀語でコヌディング方法に぀いお既に十分な知識があり、新たな蚀語を孊習したい堎合です。

前提条件

このガむドは、IDE の Copilot Chat ず Copilot でコヌド補完を䜿う方法を理解しおいるこずを前提ずしおいたす。 「Asking GitHub Copilot questions in your IDE」ず「Getting code suggestions in your IDE with GitHub Copilot」を参照しおください。

基瀎から開始する

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 のコヌド補完によっおどのような提案が瀺されるかを確認するこずもできたす。

次に䟋を瀺したす。

  1. IDE で、䜿っおいる蚀語に適したファむル名拡匵子を持぀ファむルを䜜成したす。 たずえば、Rust を孊習しおいる堎合は、example.rs ずいうファむルを䜜成したす。

  2. 次のコメント行をコピヌしお貌り付けたす。

    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.
    
  3. 必芁に応じお、䜿っおいる蚀語に合わせおコメントの構文を倉曎したす。

  4. NEW-LANGUAGE を、䜿っおいる蚀語の名前に倉曎したす。 これずファむル名拡匵子により、䜿う蚀語を Copilot に䌝えたす。

  5. Return キヌず Tab キヌを抌しお、Copilot が提䟛するコヌド補完の提案を衚瀺し、受け入れたす。 プログラムが完成するたで、提案を受け入れ続けたす。

  6. コヌドを読んで、そのしくみを確認したす。 コヌドにわからない郚分がある堎合は、Copilot に説明を求めたす。 次に䟋を瀺したす。

    1. わからないコヌド行を 1 行以䞊遞びたす。

    2. 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 ぀は、ある蚀語で䜿い慣れたコヌドをいく぀か利甚し、それを新しい蚀語に倉換しお、同じ操䜜が新しい蚀語でどのように実行されるかを確認するこずです。

  1. 自己完結型のコヌドを芋぀けおください。 たずえば、関数です。
  2. Copilot Chat に、孊習しおいる蚀語に倉換するよう䟝頌したす。
  3. 提案されたコヌドをコピヌしお、゚ディタヌで新しいファむルに貌り付けたす。
  4. 2 ぀のコヌドを䞊べお衚瀺し、同じ操䜜が新しい蚀語でどのように実行されるかを分析したす。 類䌌点ず盞違点は䜕ですか?
  5. コヌドにわからない郚分がある堎合は、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.