デバッグ(うまく動かない原因を探す)
プログラミングをしていると、ほぼ確実にこうなります。
- エラーが出る
- 何も表示されない
- さっきまで動いてたのに急に動かなくなる
とくに、先ほど説明した APIなどの外部連携 では、
- 呼び方を1文字間違えただけ
- データの形式が少し違うだけ
- 外部サービス側が一時的に落ちている
といった理由で、簡単に失敗します。
プログラミングでは「うまく動かないのが普通」で、「原因を1つずつ探す作業」 がセットと考えた方がいいぐらいです。
この
「なぜ動かないのかを調べる」
「どこでズレているのかを見つける」
作業のことを デバッグ と呼びます。
このデバッグ、これまではエラー文を読んでコードのどこが間違えているかを自力で考える作業でしたが、今はAIに任せることができるようになりました。
AI時代のプログラミング学習法
プログラミングをしていてエラー文が出たら、それを丸ごとChatGPTなどのAIにコピペして、そこにこのプロンプトを追加して聞いてみてください。
このエラー文を和訳し、子どもでもわかるレベルで簡潔に説明してください
こうすると、めちゃくちゃわかりやすい説明でエラーの意味と、どこを直せばいいのかを教えてもらえます。
さらに、修正も丸ごとAIにお願いすることもできます。
エラー文の説明を聞いた後に、編集中のファイルのコードを全てAIに貼り付けて、そこにこのプロンプトを追加してください。
先ほどのエラー文をもとに、このコードを修正してください。
そのまま丸ごとコピペできるよう、全てのコードを書き出した完全版を表示してください。
このように、今やデバッグと修正を丸ごとAIに肩代わりしてもらうことができる時代になりました。
AI時代のプログラマーに必要なもの
ここまで聞くと「じゃあもう全部AIにやってもらえばいいんじゃね?」とも思ってしまいますが、AIにプログラミングを丸投げできるのはまだまだ先の話になりそうです。
AI時代のプログラマーには、主に以下のスキルが必要になってきます。
- コードの読解力
→ このコードが何をしているのか?を読んで理解できる力 - AIに正しく質問できること
→ 人間の質問が悪いとAIは良い回答ができない - 最終判断できること
→ AIも間違える。最後は人間のチェックが必要。
特に最終判断に関しては、ある程度スキルのレベルが高くないとできないかと思います。
では、そのレベルまでに到達するために、AIを活用してどう学習を進めるのかを次の章で解説します。
AIプロンプト集
プログラミングスキルを上げるコツは「分からないままにしない」ことです。
- コードを書く
- エラーが出る
- エラーの内容をAIに解説してもらう
- コードをAIに修正してもらう
- 修正した内容をAIの解説を読んで理解する
これを何度も何度も繰り返していけば、少しずつプログラミングが上達していくはずです。
この流れの中で使える便利なプロンプトをリストアップしますので、ぜひご活用ください。
- このコードを1行ずつ、日本語で説明してください
- なぜこの書き方にしたのか、理由を教えてください
- これがさっぱり理解できない。私に欠けている基礎知識は何?
- 今回、私が「勘違いしていた可能性が高いポイント」を3つ挙げてください
- このエラーを、プログラミングを知らない10歳の子どもでもわかるような「現実世界の例え話」で説明してください
リファクタリング(動きを変えずにコードをきれいにする)
プログラミングには もう一段階大事な作業 があります。
それが リファクタリング です。
リファクタリングとは、
プログラムの動きは変えずに、
コードの書き方だけを整理・改善すること
です。
たとえば、
- 同じ処理が何度も書かれている
- 変数名が分かりづらい
- 後から見返すと「これ何やってるんだっけ?」となる
こういったコードは、
動いてはいるけど、読みづらく・直しづらい状態 です。
そのようなコードを丸ごとAIにコピペして、以下のプロンプトを追加してみてください。
- このコードの動きは一切変えずに初心者にも読みやすい書き方にリファクタリングしてください。変数名・関数名・コメントも改善してOKです。完成したコードをすべて表示してください。
- このコードの中で、同じような処理が繰り返されている部分があれば、関数にまとめてリファクタリングしてください。動きは変えないでください。
- このコードをリファクタリングしつつ、設計的に問題がある点や、将来バグになりそうな点があれば指摘してください。
このリファクタリングも先ほどと同様に、「なぜそう直したのか?」を理解しながら進めていくと、より一層プログラミングの上達につながるはずですよ。
まとめ
これで全5回すべて終了しました!
ここまで読んだらどの言語でも通じるプログラミングの基礎が一通り頭に入った状態になったはずです。
ただ、プログラミングは実際に手を動かさないと身につかないので、この記事の内容を思い出しながら実際に何か簡単なアプリ等を作ってみることをお勧めします。
簡単なアプリ作成についてはまた別の記事で機会があれば紹介しようかと思っています。
プログラミングは困ったらとにかくAIにぶん投げて解説を聞く、で、きっと解決していけるはずです。
以上です、最後まで読んでくださりありがとうございました!
