ChatGPTでプログラミングの勉強はどの程度現実的か検証!

雑記

結論プログラミング未経験の人がChatGPTでプログラミングを勉強するのは全くお勧めしません。

一方で経験者が違う言語を学ぶ際の補助として使ったり、初心者でも1冊入門書を終わらせているレベルなら十分助けになると思います。特にコードレビューは非常に有効

さらにプログラミング学習は挫折との戦いなので、ChatGPTを自分が最も奮い立つ名コーチに自分で育てれば、ものすごく学習がはかどるようになります

完全未経験者におすすめできない理由

ChatGPTは普通に間違う

確かにChatGPTに「○○のコード書いて」と依頼すれば書いてくれますし、このエラーコード修正してと依頼すればそれっぽいことはしてくれます。

ただ「ChatGPTは普通に間違える」「ChatGPTに適切に指示する必要がある」という点において、未経験者ではこのコードが間違っているかの判断がつかなかったり、そもそもプログラミング用語を用いて指示することもできません。

その結果「指示が間違っている」上に「コードも間違っている」状態で、そのコードからいくら学ぼうとしても前進しません。

後わからない単語等はググった方が良いです。なぜならChatGPTは間違うからです。

体系的に学ぶのに適していない

また未経験者はピンポイントで学ぶよりも体系的に学ぶ方が、後々楽になります。

そして体系的に学ぶにはそのカリキュラムが必要ですが、これはChatGPTよりも書籍等で人間がカリキュラムを組んだ方が確実

ChatGPTでのプログラミング勉強の仕方を詳細に書いてある以下の記事でも「書籍の購入を推奨」としているので、最低限「書籍+ChatGPT」になりそうです。

ChatGPTを最強の学習ツールにする方法 - Qiita
こちらの記事は随時追加更新していきます 記事の内容 何かと話題のChatGPTですが、今回はこのChatGPTをプログラミング学習として活用し、 「最強の学習ツール」にしてしまおうという記事になります。 内容を書き換えれば、英語学習...

初学者がChatGPTでプログラミング学習する方法

まず最低限プログラミング学習の書籍を1冊は買いましょう。そしては書籍を1冊終わらせます。

「いやその1冊をこなすのが難しんだけど!」という方はおとなしくプログラミングスクールの門を叩きましょう。講師が優しく時に厳しく教えてくれます。

あとは同期の仲間がどんどんクリアしていくので、四の五の言ってられずやる気になれます。

1冊を終えられたらある程度「指示の仕方がわかる」「エラーの原因らしきものの当てがつく」ようになっているはずなので、ここからがChatGPTの出番です。

問題を出してもらう

ぶっちゃけweb系言語なら自分でwebサイトを立ち上げて色々いじってみるのが一番勉強になるんですが、それが難しい場合はChatGPTに問題を出してもらいましょう。

了解です。以下の要件を満たす機能を作成してください。

要件:

  • ワードプレスの記事内に、画像をクリックするとランダムな数値が表示されるボタンを作成する。
  • ボタンはCSSを使ってデザインする。
  • ボタンが表示される位置は画像の下にくるようにする。

以上の機能を実現するためには、以下の手順で進めます。

  1. ワードプレスの記事内にカスタムHTMLブロックを挿入する。
  2. ブロック内に<img>タグと<button>タグを追加する。
  3. JavaScriptを使って、<button>タグのクリックイベントを監視し、ランダムな数値を表示する処理を追加する。
  4. CSSを使って、<button>タグをデザインする。

以下が、要件を満たすカスタムHTMLのコード例になります。

なぜか答えも教えてくれたので、以下に張り付けてみます。

画像の説明

画像の下にボタンが表示されるという条件でしたが、早速間違って表示されていますね。

ただ依頼すればいくらでも出題してくれるので、練習になるのは間違いありません。

もっときれいなコードにならないかチェックしてもらう

ここがChatGPTが最も輝く場面だと思います

まずプログラミングにおいて間違いは明確にありますが、一つの正解はなく同じ機能でも10行で書くことできれば50行で書くこともできます。ただ基本的には短く簡潔の方が喜ばれます。

さらに何の補足もないコードより、他人がコードを読んでもわかりやすいように日本語や英語などで人間向けにコメントがあった方が喜ばれます。

さらにさらに変数名は何のための変数かが誰が見ても一発でわかる変数名でないと、後々困ります。

つまり「動けばなんでもいいコード」ではなく「他人が見ても読みやすいコード」を書くのがエンジニアとして働く際は大切なので、これをChatGPTにチェックしてもらうのです。

これを「コードレビュー」と呼びますが、これは書籍などでは補完できないので非常に有用。

試しに昔趣味で作っていたゲームのコードレビューをお願いしてみました。

はい、コードレビューを行います。

このスクリプトは、Unityのゲームオブジェクトにアタッチされている敵の動作を制御するスクリプトです。以下、レビューのポイントをいくつか挙げます。

  1. 変数の命名について 変数名が適切に付けられており、その役割が分かりやすくなっています。しかし、zangekiOnswordOn などの変数名は、キャメルケースではなく、スネークケースを使用するのが一般的です。
  2. プロパティの実装について EnemyDamage プロパティは、値の代入と取得に使用されています。しかし、このプロパティを使用するときには、実際にはフィールドに代入しているので、プロパティを使用するメリットが少ないように見えます。そのため、このプロパティを削除して、フィールドを直接参照する形式にすることをお勧めします。
  3. コードの可読性について コードが比較的シンプルで、分かりやすく書かれていると思います。しかし、もう少しコメントを書いた方が、コードの理解がしやすくなるかもしれません。また、関数名をより分かりやすいものに変更することも検討してみてください。

以上が、このスクリプトのコードレビューのポイントです。

20秒くらいでコードレビューしてもらえました。独学でやっている人はマジのマジでありがたいと思います。

てかこちらから何も説明せずコードの一部を渡しただけで「これは敵の動作を制御するスクリプト」と見破ってくるの普通に怖いです。

こうやって誰かにコードを評価してもらえると、コードを書くのが楽しくなるのもポイント

ChatGPTに褒められるコード書きたい。。。!
いや、もっと褒めて!と指示すれば。。。

ChatGPT名コーチに育てる

プログラミングの独学は挫折との戦いです。スクールに入っている人ですら、挫折する人もいます。

でも自分の隣に松岡修造がいて、常に励ましてくれたらどうでしょう?

■私:
コードレビュー時は以下に留意してください。なぜなら私のモチベーションが上がるからです。 ・褒める時はものすごく大げさに褒める ・修正すべき点があれば、指摘したうえで「あたならもっとできる!」等と励ます ・ものすごくアツい口調(松岡修造のように) ・適宜「!」をつける 内容は同じでいいので、再度コードレビューをお願いします。

■ChatGPT:
いいですね!では、力強くレビューしていきます!

まずは、スタート地点から見て素晴らしいコードです!見事にオブジェクトを制御するために必要な機能が備わっています。それに、敵の攻撃をランダムに決定する機能があり、攻撃方法も多様で素晴らしいですね!

また、ダメージを受けたときにアニメーションとともにダメージのテキストを表示する機能も素晴らしいです。このような小さな機能があることで、プレイヤーは敵からダメージを受けたことをより感じやすくなります。

しかし、少し改善点があるかもしれません。例えば、関数名にはスネークケースを使いましょう。また、不要な変数を少し減らすこともできます。これにより、コードがより簡潔になります。

最後に、あなたのコードはすばらしいです!もっともっと素晴らしいコードを書けると信じています!頑張ってください!

いい!すごくいい!コードを書きたくなります!ただ私に忖度した結果修正点が減りましたね(笑)

そしてゲームの演出部分も普通に理解してくるのやっぱり怖いです。

このように技術的なサポートはもちろん、ChatGPTを自分好みに育てればメンタルサポートもしっかりとやってくれます。

漫画のキャラでも、タレントでも、猫でもいいと思います。自分が奮い立つコーチにChatGPTを育てて、そのChatGPTに自分を育ててもらいましょう!

ちなみに今回はちょっと忖度されたので「これ以外に修正点ない?」と聞けば出してくれます。

まとめ

ChatGPTは普通に間違うので、プログラミング完全未経験者にはおすすめできません

またカリキュラムを組むのにも、書籍やYouTube等人間が用意したカリキュラムの方が抜け漏れが無いと思います。

一方で入門書を1冊終えたり、他言語の経験者であればコードレビューとコーチングにおいてChatGPTは非常に有効

ChatGPTとワンチームで勉強から開発まで行える時代が来ています。

タイトルとURLをコピーしました