今回はプログラミングに生成AIを使いこなしたい人に向けた内容です。
- 「AIがコードを書けるなら、自分はいらなくなるのでは?」と不安を感じる。
- AIを導入してみたいけど、費用に見合う効果があるのか確信が持てない。
- AIの出したコードをどう自分の知識に変えればいいかわからない。
生成AIは創造的な仕事にも影響を及ぼしています。「AIに専門職まで奪われるのではないか」という不安は誰にでもありますよね。
これからの時代では、「AIを使いこなす専門家が生き残る」という考え方が重要です。
「Github Copilot」で、プログラマーの生産性が55.8%向上!
2023年にGitHubがMicrosoft社やMITと共同で行った研究では、プログラミング支援ツールである「Github Copilot」を使うことによってプログラマーの生産性が2倍高まったことが知られています。
内容
95人のプロのプログラマーを対象。プログラマーに対して、できるだけ早くJavaScriptでHTTPサーバーを実装するような課題を与えた。
その際、被験者をランダムに2つのグループに分けて比較。
- 生成AIを使うグループ:「Github Copilot」という生成AIツールを使った。
- 生成AIを使わないグループ(対照グループ):AIは使わない。なお、インターネット検索やStackOverflow(プログラミングに関する質問と回答を共有するQ&Aコミュニティサイト)などの利用は可能。
プログラミングの成果の指標として、適切に完了した対象者の割合と作業の開始から終了までにかかった時間を測定した。
結果
- AIを使わなかったグループでは平均完了時間が160.89分だった。
- AIを使ったグループでは平均完了時間が71.17分となり、AIを使わなかったグループと比べて課題を55.8%早く完了できた。
- なお、タスク達成率は実験グループの方がわずかに高い傾向があったが、明確な差はなかった。
- なお、特にAIによるメリットが大きいプログラマーの特徴は以下のようなものだった。
- 経験の浅いプログラマー(職業としてコーディングに携わっている年数が短い)
- 比較的年齢が高いプログラマー(25~44歳ぐらい)
- 1日当たりのプログラミング時間が長いプログラマー
考察
研究では、初心者と経験者において生成AIのメリットがより大きかったようです。つまり、経験の浅いうちは生成AIによるサポートがより効果的で、そこそこの経験を積んでいる人では効果が頭打ちになり、熟練者になってくると生成AIをより使いこなせるようになってくるという流れだと考えられます。
なお、今回の研究で用いられたのは「Github Copilot(ギットハブコパイロット)」というAIツールでした。Github Copilotとは、GitHub社(プログラミングコードを共有するシステムを作る企業)が開発したプログラミング支援ツールです。
初心者ならChatGPT、中級者ならGithub Copilotを使ってみよう
なお、プログラミングに生成AIを取り入れる際には、取り入れ方にいくつか種類があります。
- 逐次的に書いたコードの続きを提案してくれるシステム
- 対話的にコードを生成してくれるシステム
Github Copilotは1にあたるツールです。自分で書いたコードに対して続きのコードや関数を提案してくれます。ある程度コードを書ける人なら、よりスムーズにプログラミングを行うことができます。
2に関しては「ChatGPT」のような生成AIツールがあります。チャット感覚で、プログラミングに関する質問をすればコードを生成してくれます。自分で書いたコードをコピー&ペーストしてエラーが出た箇所に関して質問することもできます。プログラミングに関して、教科書で読んでも理解しにくかった初心者の人はChatGPTを使うと便利でしょう。
研究では経験が浅いプログラマーも生成AIによるメリットを強く受けているため、未経験からプログラミングを始める人にとっては特に有用なツールと言えるでしょう。
AIが仕事を奪うのではなく、「AIと一緒に仕事を進化させる」
研究でも、年齢が高いプログラマーやプログラミングに取り組む時間が長い経験者も生産性アップの効果が高かったようです。つまり、経験がある人ほどAIを使いこなす余地があると言えます。
理由は、AIの提案を見極める能力があるからだと考えられます。AIの提案をそのまま受け入れるのではなく、「この実装でも動くけどパフォーマンスが悪そうだな」などと経験則から判断できるので、作業スピードが高いのだと考えられます。
また、経験者ほどAIに出すプロンプト(指示)の出し方もうまいと考えられます。AIが理解しやすい指示の出し方を行えるため、よりAIを使いこなしやすいと言えるでしょう。
ですから、AIを使うと自分の知識や経験が要らなくなってしまうというわけではありません。むしろ逆で、蓄積した知識や経験があるからこそAIによって飛躍的に生産性を向上できると言えるでしょう。
間違った出力も考慮してトライアンドエラーを繰り返そう
「生成AIは間違った答えを出すこともあるのでは?」と不安な人も多いでしょう。
実際に、生成AIは「ハルシネーション」を起こす可能性もあります。ハルシネーションとは生成AIが事実とは違った出力をしてしまうことです。
しかし、プログラミングの場合は生成AIによる間違いをあまり気にすることなく使うことができます。なぜなら、自分で試して確認することができるからです。
仮に専門的知識をChatGPTで調べて、間違った答えを鵜呑みにした場合、誰も間違いをしてくれないため危険です。一方で、プログラミングの場合は出力してもらったコードを試して、OKかどうかを自分で試すことができます。
もしもうまくいかなかった場合は、うまくいかなかった旨を伝えて再度修正することができるのです。プログラミングは生成AIのデメリットをあまり気にすることなく活用できる分野だと言えます。
【実践】生成AIのコードを理解しながら使う習慣をつけよう!
生成AIを使えば生産性が劇的に高まるということがわかりました。しかし、AIにコーディングを任せてしまうと、理解しないままコピペして使ってしまいがちです。理解していないまま、継ぎ接ぎでプログラミングをすると技術が伸びない原因にもなります。
そこで、以下のような工夫をしてみましょう。
例
- ChatGPTやCopilotの提案コードは、コピペではなく一度読み解く。
- 「なぜこの書き方になっているのか」をChatGPTなどに質問して理解を深める。
- Ankiやメモツールで抜き出し学習をする
筆者も独学でプログラミングを勉強していますが、ChatGPTでコードを作ってもらいながら進めています。筆者は提案されたコードとその解説をノートにまとめ、穴埋め問題にして、定期的に思い出すようにしています。

↑筆者がKotlinでAndroidアプリの開発について勉強したときのノート。Ankiカードの穴埋め機能を使って、覚えたいところを[・・・]で隠しています。
まとめ
- 生成AIはプログラマーの生産性を大幅に高め、特に初心者や経験の浅い人に大きなメリットをもたらす。
- 経験者もまた、AIの提案を見極める力と指示の出し方のうまさによって、さらに効果を引き出せる。
- コードを理解しながら使うことで、AIと共にスキルを伸ばすことができる。
生成AIは人間の代わりではなく、知識を拡張する相棒です。コピペではなく理解を重ねることで、AIの提案を自分の力に変えていくことが、これからの時代に生き残る鍵となるでしょう。

コメント