プログラミング初心者がChatGPTを活用するメリットとリスク
プログラミング初心者はChatGPTを使えばプログラミングができるようになるのでしょうか?実際の経験談を踏まえて解説します
未経験者がChatGPTだけを使ってプログラミング学習するのは危険
知識ゼロ、経験ゼロの状態でChatGPTだけを使って学習すると成功確率は著しく低くなるでしょう。理由として次の2つが挙げられます。
- 知識がなければAIに質問できない
- 生成したコードが正解とは限らない
知識がなければAIに質問できない
AIの回答は人間の質問に大きく左右されるので、回答を引き出すための指示(プロンプト)を工夫する必要があります。
簡単なコードは問題なく生成してくれます。しかし、生成したコードに手を加えたい場合や複雑な処理を実装したい時、破綻するケースがあります。
誤ったコードの修正依頼をしても、またエラーが発生する.. エラーの無限ループを経験した人は多いのではないでしょうか。
プログラミング知識があれば、どこが間違えているのか理解し適切な修正指示を出すことができます。
しかし、プログラミングの知識がなければ、どのように修正すればいいのか分からずAIに指示できません。
生成されたコードが正解とは限らない
AIはしばしば嘘をつきます。間違った回答をさも正解のように説明するので厄介です。
プログラミング知識のない人が誤った回答を聞いた時、間違った知識をそのまま吸収してしまう危険があります。
ChatGPTは学習の補助と位置付ける
以上のことからChatGPTだけを使ってプログラミング学習を進めるのは危険です。
- ChatGPTの回答をそのまま鵜呑みにする
- ChatGPTが生成したコードを理解しないままコピペで使う
このような使い方ではいつまで経ってもプログラミングスキルは身につかないでしょう。
ChatGPTは学習の補助ツールとして使用し基礎的な学習は書籍や動画、プログラミングスクールで固めることが独学の近道です。
おすすめの勉強法は何か動くものを作ること、これが1番経験値を得ることができます。
それはアプリでも良いですし、動くものを作り切ることです。
プログラミング学習でChatGPTを活用するシーン
ChatGPTを学習の補助として活用できるシーンは主に2つあります。
- コードの解説をしてもらう
- エラーの対処を教えてもらう
AIにコードの解説をしてもらう
書籍や動画に掲載されているコードが理解できない経験はありませんか?プログラミングの独学をしていた時「このコードはどういう動きをするんだ?」と悩んだ経験はたくさんあります。
こうしたケースではコードをそのままコピーして、AIに質問すれば説明してくれます。
説明が分かりにくい場合は、回答を読む人の属性を指定してあげましょう。
AIにエラーの対処方法を教わる
プログラムを書いていると必ずエラーに遭遇します。これは初心者に限らず現場で働いている人も例外ではありません。
今までエラーに遭遇した場合は検索で同じようなエラーを調べるか、質問サイトに投稿するかのどちらかでした。
しかし、ChatGPTに質問することで解決策を提示してくれます。
これからのプログラミング学習はAIありきで勉強する
すでにITの現場では生成AIが使われており、これからのプログラミング学習はChatGPTを想定した上で学習することをおすすめします。
例えばMicrosoftのGithub Copilotはプログラミングをアシストする強力な生成AIです。
プログラミングの勉強は困難を伴いますが、ChatGPTの学習は1時間ほどあれば簡単に身に付けることができます。ChatGPTの学習コースはこちらから。
プログラミングするようにプロンプトを書く
ここまでChatGPTを使ったプログラミング学習を紹介しましたが、プロンプトを使ったプログラミングもおすすめです。
筆者はこれをプロンプトプログラミングと呼んでいますが、プログラミングで書いている処理をプロンプトに置き換える試みです。
有名なFizzBuzz問題をプロンプトで実装してみましょう。
- 1から100までの数字を出力
- 3の倍数の時、Fizzと出力
- 5の倍数の時、BUzzと出力
- 3と5の倍数の時、FizzBuzzと出力
Pythonで実装すると次のようなコードになります。
これをプロンプトで実装すると次のようになります。
自然言語で記述していますが、プロンプトの中に変数やループ処理、条件分岐のようなプログラミングの概念を使用しています。
プロンプトプログラミングのメリットとデメリット
プロンプトプログラミングでは私たちが会話する自然言語でプログラミングの処理を実装できます。プログラミング言語の規則に縛られることはありません。
ChatGPTが使える状況であれば環境構築不要でプログラミングできるのもメリットの1つです。
一方で自然言語で書けるがゆえにエラーが存在しません。エラーがないのは良いことですか?いいえ、そんなことはありません。
そう考えるとエラーを教えてくれるプログラミング言語やフレームワークはなんと親切なことでしょうか!
[プロントプログラミングのメリット]
- 自然言語でプログラミングできる
- 環境構築不要でプログラミングできる
[プロンプトプログラミングのデメリット]
- 明確なエラーがない
プロンプトプログラミングで小さなプログラムを実装する
プログラミング学習で成果を伸ばすポイントは、何を作るか決めて実際に動くものを作る。これに尽きます。
プログラミングの写経も悪いわけではないのですが、実際に自分1人の力で動くものを作った時の経験値は比較になりません。
- 何を作るか決める
- 実装のために必要な技術、知識を洗い出す
- 必要な知識に絞って学習
- 実装する→エラー→修正の繰り返し
従来であればPythonなどのプログラミング言語で実装していましたが、今ではプロンプトで実装する新しい選択肢があります。
そして、ChatGPTはプラグインやファイルをアップロードする機能もあります。アイデア次第で実務で使用できる小さなソフトウェアを作るとができます。
例えば、筆者はX(Twitter)のアクセスデータを集計するプログラムをプロンプトで実装しました。具体的にはXの管理画面からダウンロードしたアクセスデータのCSVファイルをアップロードし、AIに集計させるものです。
この作業は定期的に手作業で行っていましたが、現在はAIにファイルを丸投げするだけで集計してくれます。
XではAIの最新ニュースやプロンプト、活用アイデアを発信しています。フォローよろしくお願いします!(@robothink_jp)
無料で学べるAIスキル、ロボシンク
ロボシンクは4,000名超が学ぶAI学習サービス。無料のコースで生成AIを学べます。AIの学習を開始しましょう🚀