GitHub Copilotを使ったプログラム学習法
新しいプログラム言語を学習するとき、GitHub Copilot(以下、Copilotと略す)を使うと習得は早くなります。
書籍や動画などの教材は、なかなか応用力が身に付きませんでした。
Copilotを使うと応用力が身に付くので、プログラム言語の習得は早くなります。
概要
従来の学習法
従来の学習法では、書籍や動画などの教材に沿って、プログラムを書き写して学習していました。
そこでは主に、プログラムの予約語を学習します。
例えば、
- 予約語の例:SceneManagement, IEnumerator, WaitForSeconds, LoadScene, StartCoroutine, etc※1.
※1 これらは、Unity(C#)の予約語です
そのため、教材通りに学習した後で、教材のプログラムは動くのですが、自分で一からプログラムするときになかなか難しいことになっていました。
つまり、教材が終わった段階では、まだ「応用が利かない状態」です。
教材を見返してWebをあれこれ検索し、苦労しながら自分で一からプログラムを作って、やっと「応用が利く状態」になります。
- 教材を使った学習 → 応用が利かない
Copilotでの学習
Copilotを使った学習では、従来同様に教材からプログラムを書き写しますが、主にプロンプト※2を学習します。
プロンプトはプログラムの意味のある一部分を生成するための日本文(英文)です。
例えば、
- プロンプト例:「2秒後にタイトルシーンに遷移する」
※2プロンプト:生成AIに問いかける日本語文(英文)のこと。呪文といわれることもある。
プログラムをプロンプトの集合として学習します。
そのため、自分で一からプログラムを作るとき、学習したプロンプトを組み合わせることで比較的簡単に作れます。
- Copilotでの学習 → 応用が利く
教材のつまづきを回避
教材のプログラムの誤表記があった場合、Copilotを使うと回避できます。
また、教材のプログラムを正確に書き写しているのにエラーになることがあります。
数年前の教材の場合、プログラム言語などのバージョンが変化して、仕様が変わることが多々あります。
従来の学習法では、ここからWebを調べて対処する必要があります。
Copilotでの学習では、プロンプトに対応した「動くプログラム」を表示してくれます。
- 従来の学習法 → Webを調べて対処、もしくは長時間調査、もしくは諦める
- Copilotの学習 → 「動くプログラム」を表示してくれる
数年前の古い教材でも、Copilotがプログラムを最新にしてくれます(リファクタリング※)。
※リファクタリング(Refactoring):プログラムの外部から見た動作を変えずに、内部構造を改善する機能
GitHub Copilot
GitHub Copilotには無料版があります。まずはこちらで試してみましょう。
GitHub Copilot Pro版になると、「無制限のコード補完」となります。
こちらは有料となり、月額10ドルもしくは年間100ドルです。
- GitHub : Take flight with GitHub Copilot
Copilotを使いこなす
Copilotは最初から100%使いこなせる訳ではありません。
Copilotの日本語訳は、副操縦士とか助手などです。
つまり、あなたは操縦士ですが、副操縦士との共同作業に習熟する必要があります。
以下は一例です。
- プロンプトをどう書くか
- プロンプトを書く前後で必要な作業
- プロンプトを書くタイミング
- 一連のプロンプトの順番
- Copilotの提示したプログラムの確認
- など
年間100ドルは安いか高いか?
例えば、Copilotを使いこなして、生産性が2倍になったとします。
そうすると、あなた(プログラマ)がもう一人いることになります。
そのプログラマは、記憶力抜群であなたの挙動を理解してくれています。
たまにミスをしますが、年間100ドルというのはとても安いといえるでしょう。
プロンプト(呪文)
動画教材でゲーム制作の学習したときのプロンプトです(一部分)。
他のゲームを作成するときに使えるプロンプトになっています。
- 当たるとオブジェクトが消える
- スコアを加算するメソッドを呼び出す
- ゲームがアクティブでない場合は何もしない
- エフェクトの参照を保持する変数
- エフェクトを表示する
- ゲームオーバーの処理を呼び出す
- ボタン効果音を再生
- タイムラグを作る
- ゲームシーンに遷移する
- GameManagerの参照を保持する変数
- ランダムに生成するオブジェクトを選ぶ
- 生成したオブジェクトを打ち上げる
- スコアを加算するメソッド
- ゲームオーバーの一連処理
- ゲームクリアの一連処理
- 数秒待ってタイトルシーンに戻るメソッド
参考
- GitHub : Take flight with GitHub Copilot