見出し画像

プログラミングの独習にChatGPTを使う場合、気をつけること3つ

お疲れ様です。Y研究員です。プログラミングの習得法として「写経」を研究しています。今日はChatGPT-4を使ってプログラミングを独習してみて分かったことを共有します。

ChatGPTはなんでも答えてくれて便利ですが、ハマるポイントがあるのでその話です。特に新しい言語やライブラリを独習する場合です。

課題設定が難しい

とりあえず動くプログラムを出してもらって「写経」をしました。例えばゲームを作るとします。どれくらい複雑な物を頼むかは大事なポイントです。難しすぎるとChatGPTでも間違えてデバッグが続きます。どうしても目的の動作が得られなかったら、より簡単な課題に変えたほうが良いと思います。例えばアングリーバードを作りたいなら、まずは放物線を書くところから、などです。

ハルシネーションを見分けるのが難しい

ChatGPTはもっともらしい答えを出してきます。一見すると間違っているかは分かりません。ましてや新しい言語だと、間違いを書き写すことになります。例えばROSの環境づくりでDockerを使っているのに、おもむろにGUIアプリを起動するコマンドを出してきました。この間違いには気が付きましたが、ROS特有の細かいところはよくわからず、問題解決には至りませんでした。

状況を伝えるのが難しい

ChatGPT-4oにもなると、かなり理解力が有り画像も受け付けます。しかし何が問題かを正確に伝えるのは難しいです。エラーが出たらまずはコピペします。できれば詳細に伝えたほうが解決は早いです。問題が発生している部分のコードも一緒に貼り付けるなどです。特にChatGPTが出したコードを少し改変した場合は、その変えた部分を教えてあげないと混乱します。

結局どうするのが良さそうか

HaskellとROS1を試してみた結論は「本か公式チュートリアルのほうが確実」です。最低限の動作が確認されているので、バグを出してハマる事は少ないはずです。

ChatGPTの良い所は、聞かれたら端的に答えるところです。書籍や公式ページはスタイルが様々で、回りくどい書き方をしている場合もあります。また作者の書き方やデザインも好き嫌いが別れます。欲しい答えが明らかな場合(「調べる」)はChatGPTの方が早いです。しかし「学び」たい場合は、まだ人間が作ったコンテンツの方が効率は良さそうです。この辺は目的に特化したLLMが増えるので改善されそうな気配はします。

さて自分の場合です。Haskellは良さそうな本を探して見つけられました。ROSの場合は公式チュートリアルが整備されているので結局はそれを少しやりました。ChatGPTには分からないところを質問するくらいがちょうど良いのかもしれません。

それではまた!

無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。