まだAI使わず勉強してんの?プログラミング初心者が知らないと損する生成AI活用術
はじめに
まさかいまだにプログラミングの勉強に関してChatGPTとかGeminiとか生成AIを使ってない鈍感な人は居ないと思うが、その使い方を間違っちゃってる人は続出しちゃってる気配がしちゃっているので、プログラミング学習指導歴10年の俺が一筆したためるよ。
この記事は何
プログラミング学習における正しい生成AIの使い方/正しくない生成AIの使い方を知ることができるよ。知ったあとどうするかは読んだ貴殿次第です。
対象読者
プログラミングを学習し始めたばかり(時間にして50時間以内)の初学者。 大体、HTML/CSSやJavaScriptや、何らかのプログラミング言語の文法を教材見てパラパラ確認したくらい。自分で何かを作る、というところまではまだやったことないくらいの人。
プログラミング学習における生成AIの使い方
自分が全く理解できない、何をやっているのか皆目見当もつかないような複雑なコードを AI が出してきたとして、それをそのまま自分のプログラムにコピペして「動いたから OK!」としてしまうのは、とても危険な行為です。
なぜなら、そのプログラムに何か問題が起きた時、あるいは少しだけ動きを変えたいと思った時に、自分では何も対処できなくなってしまうからです。
それは、まるで自分が運転できない車の助手席に乗っているようなもので、どこへ連れて行かれるか分からず、コントロールもできません。
そのような AI の使い方は、残念ながら「AI に使われている」状態であり、お前の学びを深めることには繋がりません。
そのような「AIガチャ状態」(良いコードが出るまで何度も AI に聞き続けるような状態)に陥ることなく、AI を賢い学習パートナーとして活用しましょう。
では、どのような使い方が「良い」のでしょうか。
プログラミング学習における「良い」AI の使い方
家庭教師になってもらったつもりで質問する
- 「このエラーメッセージはどういう意味?」
- 「
whileとforってどう違うの?」 - 「配列のこのメソッドの使い方が分からない」
といった、具体的な疑問点を解消するために AI に聞くのは非常に有効です。まるで専属の家庭教師がいるかのように、根気強く教えてくれるでしょう。これは、プログラミング初学者にとって、本当に心強い味方になります。
筆者のような、ある程度プログラミングを続けている者にとっても、新しいプログラミング言語を学ぶ時や、未知の技術概念に触れる時、専門書を読む時の補助として、AI は非常に役立ってくれます。
アイデアの壁打ち相手として
「こんな機能を作りたいんだけど、どんな手順で進めたらいいかな?」 「この処理、もっと効率的に書けないかな?」 といった、アイデア出しや設計の相談相手として AI を使うのも良いでしょう。AI は様々な角度からヒントをくれるかもしれません。
コードのレビュアーとして
自分で書いたコードを見せて、「ここ、もっと分かりやすく書けないかな?」とか「何か改善できる点はある?」と聞いてみるのも良い使い方です。思わぬ改善点や、自分では気づかなかったバグを発見してくれるかもしれません。
一方で、「避けるべき」AI の使い方
自分が全く理解できないコードを丸投げして作らせ、そのまま使う
前述の通り、これは最も避けるべき使い方です。プログラムが動かなくなった時や、少しでも改造したくなった時に、必ず行き詰まります。 「とりあえず動けばいいや」という考え方は、自分の成長を妨げます。
エラーが出たら、何も考えずにエラーメッセージを AI にコピペして修正案を求める
もちろん、エラー解決のヒントを求めるのは良いのですが、まずは自分でエラーメッセージをよく読み、何が原因なのかを推測する努力をしましょう。その上で、「このエラーはこういう意味だと思うんだけど、どう直したらいいかな?」と、自分の考えを添えて AI に聞く方が、学びが深まります。
AI は強力なツールですが、あくまでも道具です。道具に振り回されるのではなく、自分の目的を達成するために賢く使いこなすことが大切です。 そのためには、やはりプログラミングの基礎をしっかり理解していることが大前提となります。
また、自分自身の基礎知識の確立や実力がないと、AIで能力が拡張できる範囲も狭いです。
逆に、そうした実力が大きければ大きいほど、AIで拡張できる能力の幅もまた、大きくなります。
基礎知識や実力がある程度あれば、生成AIの意見について「判断」ができるためです。
AIはこう言ってるけど、ちょっと怪しいから別の方法でも調べた方が良いな
こういう聞き方をしたら、今度はもっと良い意見をAIからもらえるかもしれないな
そうした試行錯誤を経て、より大きな成果を挙げられる可能性が高まります。
以上。