この記事について
- 対象読者:プログラミングを勉強中の初学者
- ひとことで言うと:AIに「答え」を聞くのではなく「やり方」を聞こう。初学者と実務エンジニアでは、同じAIの使い方でも意味がまるで違うという話です。
研修でたくさんの初学者を見てきて、最近よく感じていることを書きます。誰もが無意識にやりがちなことですが、早めに気づけると、その後の伸びがぐっと変わってくると思っています。
1. はじめに
AIに聞きながらコードを書くのは、もはや当たり前になりました。これ自体はまったく悪いことではありません。
ただ、研修の現場でこんな人をよく見かけるようになりました。
学習中の課題はスラスラ解けるのに、実際のプロジェクトに入ると、急に何もできなくなる人。
課題はできていたはずなのに、いざ実務になると「自分で考えて組み立てる」ことができない。コードレビューで「なぜこう書いたの?」と聞くと、答えに詰まってしまう。
なぜこんなことが起きるのか。原因はいくつもありますが、学習中のAIの使い方に、見過ごせない一因があると考えています。
そして難しいのは、この問題はなかなか自分では気づきにくいということです。むしろ「AIをうまく使えて効率よく勉強できている」と感じているときほど、注意が必要かもしれません。
2. 具体例で考える:単語の出現回数を数えるプログラム(Java)
抽象的な話だと伝わりにくいので、よくある課題を例にします。
課題:英文テキストのファイルを読み込み、単語ごとの出現回数を数えて表示するプログラムを書きなさい。(言語は Java)
この課題を、AIをどう使って進めるか。つい やってしまいがちな進め方と理想的な進め方を並べてみます。
2-1. ありがちな進め方("答え"を聞いている)
あなた: Javaで、テキストファイルを読み込んで単語ごとの出現回数を数えて表示するプログラムを書いてください。
AI: (
BufferedReaderでファイルを読み、splitで分割し、HashMapで集計し……という完成コード一式を提示)
コピペすれば、たしかに動きます。課題は「できた」ことになります。
でも、ちょっと考えてみてください。
- なぜそのデータ構造を選んだのか?
- どういう順序で処理を組み立てたのか?
- 自分でゼロから同じものを書けるか?
どれもスッと答えられないとしたら、手元には動くコードだけが残り、自分の中には意外と何も残っていないかもしれません。
これは「AIに丸投げした」つもりはなくても、結果として答えを丸ごと受け取っているのに近い状態です。わかった気にはなれても、トレーニングとしてはもったいない使い方になってしまっています。
2-2. 理想的な進め方("やり方"を聞いている)
理想は、次の3ステップです。
① まず自分でロジックを"日本語で"書き出す
コードを書く前に、やることを言葉にします。
- ファイルから読んだ行を、スペースで区切って単語に分ける
-
Mapで集計する。キー=単語、値=出現回数 - その単語が無ければ回数1で追加、有れば値を +1 する
ここはAIに頼らず、自分の頭で考えます。考える力が鍛えられるのは、まさにこの部分です。
② 詰まった"部分だけ"を聞く
ロジックは立てた。でも「Map に値を足す具体的な書き方」がわからない。そこだけを聞きます。
あなた: JavaのMapで、キーが存在しなければ値を1で追加、存在すれば+1したいです。一般的にはどう書きますか?
AI:
getOrDefaultを使う方法や、mergeを使う方法があります。例えばmergeなら次のように書けます……(該当する1行だけの断片を提示)
聞いているのは「単語の数え方(=答え)」ではなく「Mapに値を足すやり方(=部分的な書き方)」です。全体は自分で組み立て、知らなかった一行だけを埋めにいっています。
③ 回答を鵜呑みにせず、ドキュメントで裏取り&深掘り
もらった merge をそのまま貼って終わり、ではもったいない。意味を確認します。
あなた:
merge()の3つの引数は、それぞれ何を意味しますか?AI: 第1引数がキー、第2引数がキーが無いときに使う初期値、第3引数が既に値があるときの再計算(再マップ)関数です……
ここまでやると、
- 集計のロジックは自分で組み立てた
- 知らなかったやり方だけをAIから得た
- そのやり方を理解して、APIの引数の意味まで広げた
という状態になります。次に似た場面が来ても、今度は自分で書けます。
2-3. 2つの違いは「問いの粒度」
並べてみると、違いはハッキリしています。
| ありがちな進め方 | 理想的な進め方 | |
|---|---|---|
| 聞いている対象 | 答え(課題そのもの) | やり方(詰まった一部分) |
| ロジックを考えたのは | AI | 自分 |
| 手元に残るもの | 動くコード | コード+考え方+理解 |
| 次に自力でできるか | できない | できる |
同じ「AIに聞く」でも、問いの粒度が違うだけで、得られるものが正反対になります。
3. なぜこれが問題なのか
「答えを聞いてもいいじゃないか。動けば正解でしょ?」と思うかもしれません。
実務ならそうです。でも学習中は違います。
プログラミングのスキルは、自分で問題を分解し、組み立て、詰まり、調べて解決する——この一連の過程を通してしか身につきません。AIに答えを聞くと、この過程をまるごとスキップできてしまいます。
そしてやっかいなのは、答えを見ると「理解できた気」になりやすいことです。読んで意味がわかるのと、自分でゼロから書けるのは、実は別のスキルです。「読めばわかる」状態のままだと、思っているほど力はついていない、ということが起こりがちです。
その差は、課題のうちは表に出ません。表に出るのは、誰も答えを用意してくれない実務に入ったときです。冒頭の「課題はできるのに実務でできない人」は、こうして生まれます。
4. 初学者と実務エンジニアでは"求められているもの"が違う
ここが一番伝えたいことです。
「いやでも、現場のエンジニアだってAIに答えを聞いてるじゃないか」——その通りです。そして、それは正しい使い方です。
なぜ、同じ行動が、片方では正解で、片方では問題になるのか。
答えは、その人に求められているものが違うからです。
実務エンジニアに求められているもの=成果(効率化)
エンジニアの仕事は、限られた時間の中で、正しく動くものを届けることです。考え方や基礎技術はすでに身についている前提で、いかに速く・正確に成果を出すかが問われます。だからAIで効率化するのは合理的どころか、むしろやるべきことです。
初学者に求められているもの=考える力と基礎スキルの獲得(過程)
一方、学習中のあなたに求められているのは、課題を「終わらせること」ではありません。課題はあくまで手段で、本当の目的は考える力と基礎的な技術スキルを身につけることです。つまり、過程そのものがゴールです。
ここで答えをAIに肩代わりさせると、何が起きるでしょうか。
本来いちばん鍛えたいはずの過程を、自分の手から離してしまうことになります。課題は終わっても、本当の目的のほうはあまり前に進んでいない、という状態です。
実務エンジニアにとっての「効率化」は、初学者にとっては「学ぶ機会の放棄」になる。
同じツールでも、立場が違えば意味は逆になります。
道具は同じでも、あなたが今いる場所が違う。だから使い方も変わる、ということです。
5. じゃあ、どう使えばいい?
難しいことではありません。次の4つを意識するだけです。
-
まず自分でロジックを日本語で書き出してから聞く
コードを書く前に、やることを言葉にする。考える部分を飛ばさない。 -
「答え」ではなく「やり方」を聞く
「〇〇を作る方法」ではなく「△△の書き方」。問いを細かく分解してから投げる。 -
回答を鵜呑みにせず、ドキュメントで確認する
もらったメソッドの引数や戻り値の意味を、公式ドキュメントで一度は確かめる。 -
AIに"答えを出させない"聞き方を使う
- 「自分のコードのこの部分、なぜ動かないかヒントだけください」
- 「このコードの改善点を指摘してください(書き直さなくていいです)」
- 「この考え方で合っていますか?方針だけ見てください」
AIを「答えを出す機械」ではなく、「壁打ち相手」や「先輩」として使う感覚です。
セルフチェックリスト
AIに質問を投げる前に、自分にこう聞いてみてください。
- このロジック、自分で説明できるか?
- 聞こうとしているのは「答え」か、それとも「やり方」か?
- もらった回答を、明日もう一度ゼロから書けそうか?
- 引数や戻り値の意味を、ちゃんと理解しているか?
「いいえ」が増えてきたら、ちょっと答えに寄りかかりすぎているサインかもしれません。一度立ち止まって、聞き方を見直してみてください。
6. まとめ
- AIに聞くこと自体は悪くない。問題は何を聞くか。
- 「答え」を聞くとトレーニングにならない。「やり方」を聞こう。
- 初学者に求められているのは課題を終わらせることではなく、考える力と基礎スキルを身につけること。過程そのものが目的。
- 実務エンジニアの「効率化」と、初学者の学習は、求められているものが違う。同じ行動でも意味は逆になる。
今のあなたがAIに肩代わりさせていいのは「やり方」まで。「考えること」だけは、自分の手元に残してください。それが半年後・一年後の、大きな差になります。
自分の頭で考えるのは、正直しんどいです。答えを見れば一瞬で済むところを、あえて遠回りするわけですから、もどかしいし、時間もかかります。でも、その「うんうん悩んだ時間」こそが、いちばん力になる時間です。今しんどいと感じているなら、それはちゃんと頭を使えている証拠。焦らず、その遠回りを楽しむくらいの気持ちで続けてみてください。皆さんの将来の活躍を期待しています。
(この記事の文章の一部は生成AIを利用して作成しました。)