検索
連載

「ChatGPT」は最高のプログラミング先生? とにかく苦労したコーディングの結末知識がなくても「GPT-4」に任せればできるのか検証

「ChatGPT」があれば知識不要でプログラミングもできるのか、プログラミング初心者の筆者が試してみた。

Share
Tweet
LINE
Hatena

 「ChatGPT」がプログラミングの心強いパートナーになる――そんな声が出ています。次世代の大規模自然言語モデル「GPT-4」を実装した最新のChatGPTは、プログラミングに関する質問にも高精度で答えてくれるといい、「ChatGPTなしのコーディングはもう考えられない」と話すエンジニアもいるほどです。

 「ChatGPTがあれば、初心者でもプログラミングができる」とも言われているので、初心者である筆者にも、簡単にできるかも!? 大きな期待を抱きながら、試してみることにしました。その期待は大きすぎたことが、すぐに判明したのですが……。

 筆者は20年ほど前、HTMLでテキストサイトを作っていたのと、最近、Pythonをインストールして「Hello World」を表示できるようになったのがプログラミング経験(と言えるかどうか)。かつて所属したWeb企業でプログラミング研修を受けたことがありますが、同僚がサッと理解している内容がまったく頭に入らず、途中からついていけなくなりました。

 そんな筆者の、ChatGPTプログラミング初体験。結論から言うと、できるにはできたのですが、とにかく苦労しました。人間の先生や初心者向けの書籍と、“ChatGPT先生”の教え方が全然違い、「初心者には、本や人間の先生が必要では」と実感する結果になりました。

いきなりエラーで四苦八苦

 筆者が作ろうとしたのは、「ChatGPTのAPIを使って『GPT-4』に質問するアプリ」。筆者はWeb版のChatGPTでGPT-4を使っているのですが、3時間に25ターンの質問しかできず、また、頻繁に動作が不安定になるため、従量課金制のAPIで、GPT-4に大量に質問したい、と考えたのです。

 GPT-4にその趣旨を説明した後、「優しく、ステップバイステップで教えてください」とお願いしてみました。

ChatGPTへの最初の質問
ChatGPTへの最初の質問

 すると、(1)「Pythonと必要なライブラリをインストールしましょう」と、Pythonの公式サイトが案内されました。筆者はPythonはインストール済みなのでここはスキップ。(2)「ターミナル(Windowsの場合はコマンドプロンプト)を開き、次のコマンドを実行して必要なライブラリをインストールします」をやろうとしたところ、早速つまずきました。

 まず「ターミナル」と「コマンドプロンプト」の違いが分からない。筆者はWindowsを使っているのでコマンドプロンプトでいいんだろうと思い、言われたとおり、コマンドプロンプトに「pip install requests」を入力。するといきなりエラーが出ました。「'pip' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません」

(編注:環境変数の設定が必要だったのではないかと思われます)

 えっ?……いやでも、こういうエラーは、GPTがサクっと解決してくれるはず。表示されたエラーをそのままChatGPTに入れてみたところ、即答が! 「このエラーは、pip コマンドが見つからないことを示しています」と、解決案を2つ示してくれました。いやあ、頼りになるなあ!

 と思ったものの、2つの案のどっちがよいか分からない。順番にやってみたけど、どっちをやってもまたエラーが出る。そのエラーもGPTに入れてみたら「ターミナル(またはコマンドプロンプト)で pip install requests を実行する際、Python インタープリタを起動する必要はありません」

あっ……
あっ……(編注:混乱してPythonインタープリタの中でpipコマンドを実行したと思われます)

 あっ、コマンドプロンプトとPythonの画面って、別だった……。素人すぎてそもそも、この2つの違いと役割が、分かっていなかったのです。

本や先生との大きな違い

 ChatGPTの回答は即物的です。「前提として知っておくべき知識」や、「質問の答えに直接関係しない全体像」は教えてくれず、求めた質問に対する答えをサクッと示すだけ。

 これに対して、初心者向けの本や講座なら、コードを書き始める前に、全体像や背景知識、単語の意味、機能などを教えてくれるでしょう。

 この違いは、特に初心者のプログラミング学習においては、かなり大きいように思いました。初心者は、ChatGPTが示したコードを見ても、その意味が分かりません。言われた通りに作ってもエラーが出る。エラーをそのままGPTに聞くと、解決策が返ってくるんですが、その意味も分からないままコピペして、またエラーが出て……。

 “完璧なプログラミング講師”だと思っていたGPT-4に教わってもエラーが出るばかりだし、GPT-4が示すエラーの解決法の意味が分からないこともしばしば。「エラーの原因を特定するために、以下の手順で chat_with_gpt4 関数を修正して、エラーの詳細を表示できるようにしましょう」。ええっと、「chat_with_gpt4 関数」って、どこを指してるの?

 さらに、「APIエンドポイントのURLが不正なので、最新情報はOpenAIのドキュメントを参照してください」とも言われたんですが、APIのドキュメントを見るのも初めてだし、英語だし、どこにその情報があるか分からないよ……。

このぼう大なドキュメントのどこに「APIエンドポイントのURL」が載っているのか、私には分からないよ

 つらくなってTwitterでエラーのことをつぶやいたら「URLは合っていますよ」とフォロワーさんが教えてくれました。GPT-4が示したエラーが間違えていた、ということのようです。どないせえっちゅうねん! てか、優しく教えてくださった人間のエンジニアさん、最高!

ようやくできたけど

 紆余(うよ)曲折あった挙げ句、4時間ぐらいかかってようやく、「コマンドプロンプトからChatGPTのAPIをたたく」プログラムらしきものは、できました。できましたが、言われるがままにコードをコピー&ペーストしただけなので、コードの意味はよく分かりません。

 ただ、本でコードを見て、そのまま写経する勉強法と違って、スペルの間違いを心配しなくてよいのは大きなメリットに感じました。また、関数やエラーの意味をググるうちに、コードも少しだけ読めるようになりました。少しだけ、ですが。

 ChatGPTを使えば確かに、筆者のような初心者でもプログラミングができました。でも、途中で何度も投げ出しそうになり、「隣に優しい先生がいてほしい」とも思いました。

 筆者がつまずいた内容の一部を、プログラミングができる人に話したところ、「Pythonの環境構築はGoogle Colabを使うのが簡単ですよ」と教えてくれました。ChatGPTはそんなこと一言も言ってくれなかったよ!

 また、ある友人は「ChatGPTのAPIをDiscordから実行できるようにしてみては?」と提案してくれました。そんなことができるのか!? 初心者の筆者には思い付きもしませんし、ChatGPTとのプログラミング対話では出てこない発想です。

 筆者のような初学者は、まずは本や人間の先生から基本を学び、目標設定したり、プログラミングの全体像を理解した上で、補助的にChatGPTを使うのが、もしかしたら近道かもしれない? と思いましたが、いかがでしょうか。

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る