0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新人エンジニアにAIを禁止するのは、本当に教育なのか

0
Posted at

はじめに

先輩エンジニアが新人エンジニアに対して、AIの利用を禁止している場面がありました。

「自分で調べる力をつけてほしい」
「問題解決能力を身につけてほしい」

という意図があったそうです。

その考え自体は、とてもよく理解できます。

エンジニアにとって、自分で調べる力はとても重要です。
エラーを読み、公式ドキュメントを確認し、仮説を立て、検証する力も欠かせません。
目の前の問題をそのまま誰かに投げるだけでは、エンジニアとして成長しにくいという考えにも納得できます。

ただ、その一方で、私は少し違和感を覚えました。

それは、

「調べる力や問題解決能力を身につけてほしい」ことと、「AIの活用を禁止する」ことは、別の問題ではないか

という点です。

これからのエンジニアに必要なのは、AIを使わない力だけではないと思います。
むしろ、AIを使ったうえで、出力を疑い、根拠を確認し、自分で判断する力が求められるのではないでしょうか。

目次

本文

AIに対する懸念は、決して間違っていない

AIの利用に慎重な方の意見として、よく以下のようなものがあります。

  • AIは誤った情報を出力することがあるため、信用しきれない
  • 機密情報や個人情報を入力してしまうリスクがある
  • 学習目的で使うと、自分で考える力が身につきにくくなる

これらの懸念は、決して間違っていないと思います。

生成AIは、もっともらしい誤情報を出すことがあります。
技術的には存在しないAPIを、あたかも存在するかのように説明することもあります。
古い仕様を前提に回答することもありますし、ライブラリのバージョン差分を十分に考慮しない回答をすることもあります。

また、社内コード、顧客情報、未公開の仕様、個人情報などを不用意に入力してしまうリスクもあります。
これは、エンジニアとして軽視してはいけない点です。

さらに、AIの回答をそのままコピーして終わるだけであれば、学習効果が薄くなる可能性もあります。
「動いたからOK」で済ませてしまうと、なぜ動いたのかを理解できないままになってしまいます。

ただし、ここで大切なのは、これらの問題は

「AIを禁止すべき理由」ではなく、
「AIの扱い方を教えるべき理由」

ではないか、ということです。

包丁は危ないから料理を教えない、とはならないはずです。
インターネットには誤情報があるから検索を禁止する、という話にもなりにくいと思います。
公式ドキュメントにも読み間違いの可能性があるから、ドキュメントを読ませない、ということにもならないでしょう。

危険があるなら、危険な使い方を避ける方法を教える。
誤りがあるなら、検証方法を教える。
依存する可能性があるなら、依存しない使い方を教える。

AIについても、同じように考える必要があるのではないでしょうか。

「AIを使う」と「思考を放棄する」は違う

AIに関する議論では、よく混同されていることがあるように感じます。

それは、

AIを使うこと
自分で考えないこと

を同じものとして扱ってしまうことです。

たしかに、以下のような使い方はあまり望ましくありません。

このエラーを直してください。

AIが出したコードをそのまま貼る。
動いたら終了する。
なぜ直ったのかは確認しない。
副作用も考えない。
テストも書かない。
公式ドキュメントも確認しない。

このような使い方では、たしかに力はつきにくいと思います。

しかし、AIの使い方はそれだけではありません。

たとえば、同じエラーに対しても、以下のように使うことができます。

このエラーの原因候補を3つ挙げてください。
それぞれを確認するために、どのログや設定を見るべきか教えてください。
この修正案が有効な理由を説明してください。
また、この修正によって起きる可能性のある副作用も挙げてください。
公式ドキュメントのどの観点を確認すべきですか?
確認すべきキーワードも教えてください。
この問題に対して、暫定対応と恒久対応を分けて考えてください。
それぞれのメリット・デメリットも比較してください。

このように使えば、AIは単なる「答えを出す機械」ではなくなります。

  • 原因を分解するための壁打ち相手
  • 調査観点を広げるための補助
  • 自分の仮説を検証するためのレビュー役
  • 公式ドキュメントを読む前の地図
  • 複数の解決策を比較するための相談相手

として活用できます。

つまり、問題はAIを使うかどうかだけではありません。
AIに何をさせるか、AIの回答をどう扱うか が重要なのだと思います。

AIを使うと本当に身につかないのでしょうか

「AIを使うと身につかない」という意見はよく耳にします。

ただ、この主張は少し粒度が粗いように感じます。
正確には、次のように分けて考える必要があるのではないでしょうか。

AIの使い方 学習効果
答えをそのままコピーする 身につきにくい
なぜそうなるのかを質問する 理解が深まりやすい
出力を公式ドキュメントで検証する 調査力が育つ
複数案を比較する 設計判断の視野が広がる
自分の仮説をレビューさせる 思考の精度が上がる
AIの誤りを見つける 技術的な判断力が鍛えられる

実際、AIを学習に使う研究でも、AIの効果は「使うか使わないか」だけでは決まらないことが示されています。

たとえば、AIチューターを使った学習に関する研究では、適切に設計されたAIチューターが学生の学習成果やモチベーションを高める可能性が報告されています。
一方で、プログラミング初学者に関する研究では、生成AIが学習を助ける場合もあれば、理解が浅いまま「できたつもり」になる危険も指摘されています。

ここから言えるのは、AIが常に良いということではありません。
逆に、AIが常に悪いということでもないと思います。

重要なのは、

AIの有無ではなく、AIとの関わり方

です。

AIを使っても、考えない人は考えないかもしれません。
AIを使わなくても、丸暗記で済ませてしまう人はいると思います。
反対に、AIを使いながらでも、問い続ける人は成長していけるはずです。

新人エンジニアに必要なのは、AIを使った問題解決能力

これからの新人エンジニアに必要なのは、
「AIを使わずに頑張る力」だけではないと思います。

もちろん、基礎力は必要です。
エラー文を読む力も必要です。
ログを見る力も必要です。
公式ドキュメントを読む力も必要です。
デバッグする力も必要です。

ただ、それに加えて、これからは以下のような力も必要になるのではないでしょうか。

  • AIの回答を鵜呑みにしない力
  • AIの出力に対して「なぜそうなるのか」と問い直す力
  • 公式ドキュメントや実装で裏取りする力
  • 複数の解決策を比較する力
  • メリット・デメリットを整理する力
  • セキュリティや機密情報の境界を判断する力
  • AIに渡してよい情報と、渡してはいけない情報を区別する力
  • AIの回答を自分の言葉で説明する力

これは、従来の問題解決能力と矛盾するものではありません。
むしろ、従来の問題解決能力をAI時代に合わせて拡張したものだと考えています。

たとえば、AIに質問するときも、問題を正しく分解できていなければ、良い回答は返ってきにくくなります。

動きません。直してください。

という質問と、

Next.js で API Routes を使っています。
POST リクエスト時に 500 エラーが発生しています。

確認したこと:
- リクエストボディは送信されている
- サーバーログでは undefined のプロパティ参照で落ちている
- 該当箇所は request.body.user.id です

考えられる原因と、確認手順を教えてください。

という質問では、得られる回答の質が大きく変わります。

良い質問をするには、状況を整理する力が必要です。
前提条件を切り分ける力も必要です。
何がわかっていて、何がわかっていないのかを言語化する力も必要です。

つまり、AIを使うこと自体が、問題整理の訓練にもなり得るのではないでしょうか。

先輩エンジニアが見るべきなのは「AIを使ったか」ではない

新人エンジニアがAIを使ったとき、先輩エンジニアが見るべきなのは、
「AIを使ったかどうか」だけではないと思います。

見るべきなのは、以下のような点ではないでしょうか。

  • その回答をなぜ正しいと判断したのか
  • どの情報を根拠にしたのか
  • 公式ドキュメントを確認したのか
  • テストで検証したのか
  • 他の選択肢と比較したのか
  • 副作用を考慮したのか
  • 自分の言葉で説明できるのか

たとえば、コードレビューでは以下のように確認できます。

この実装にした理由は何ですか?
AIの回答を参考にした場合、どの部分を採用して、どの部分を採用しませんでしたか?
この修正が正しいことは、どのように確認しましたか?
他の実装方法は検討しましたか?
この変更による副作用はありますか?

こうした問いかけがあれば、新人エンジニアはAIを使っていても考えることになります。

むしろ、AIを使ったことを隠させるよりも、
AIをどのように使い、どう判断したのかを言語化してもらう方が、教育として健全ではないでしょうか。

禁止ではなく、ガードレールを作る

AIの利用を完全に禁止するのではなく、現場で使うのであればルールを作ることが大切だと思います。

たとえば、新人エンジニア向けには以下のようなルールが考えられます。

1. AIの回答をそのまま採用しない

AIの回答は、あくまで候補として扱います。
最終的に採用するかどうかは、自分で判断します。

2. 変更理由を自分の言葉で説明できるようにする

AIが出したコードであっても、レビュー時に説明できないのであれば採用しないようにします。
「AIがそう言ったから」は、理由としては不十分です。

3. 公式ドキュメント・ログ・テストで検証する

AIの回答だけを根拠にしないようにします。
必要に応じて、公式ドキュメント、実際のログ、テスト、既存実装を確認します。

4. 機密情報や個人情報を入力しない

社内コード、顧客情報、認証情報、個人情報、未公開仕様などは入力しないようにします。
入力してよい情報と、入力してはいけない情報の境界を明確にしておくことが大切です。

5. AIに聞いた内容と判断理由を残す

必要に応じて、PRや設計メモに以下のような内容を残します。

AIに相談した内容:
- エラー原因の候補
- 実装方針の比較
- テスト観点の洗い出し

採用した内容:
- A案

採用理由:
- 既存設計との整合性が高い
- 影響範囲が小さい
- テストで期待通りに動作することを確認済み

採用しなかった内容:
- B案

採用しなかった理由:
- 既存APIの責務が曖昧になるため

6. 「なぜそうなるのか」を必ず追加で質問する

AIの最初の回答だけで終わらせないようにします。
最低でも一度は、理由を確認する習慣をつけるとよいと思います。

なぜその修正で解決できるのですか?
このコードが動く仕組みを、初心者にもわかるように説明してください。
この実装で失敗するケースはありますか?

7. 複数案を比較する

AIには、1つの答えだけでなく、複数の選択肢を出してもらうこともできます。

この問題に対して、3つの解決策を出してください。
それぞれのメリット・デメリット、実装コスト、保守性の観点で比較してください。

これにより、単に答えを得るだけでなく、設計判断の練習にもつなげられます。

AIは「答えを出す道具」ではなく「考える過程を補助する道具」

AIを学習や開発に使うとき、もっとも気をつけたいのは、AIを「答えを出す道具」としてだけ扱ってしまうことだと思います。

もちろん、AIは答えらしきものを出してくれます。
コードも書いてくれます。
エラー原因も推測してくれます。
設計案も出してくれます。

しかし、それをそのまま受け取るだけでは、学びとしては十分ではありません。

大切なのは、AIを使って思考の過程を広げることだと思います。

  • 自分が見落としている観点はないか
  • 他にどのような原因が考えられるか
  • この実装にはどのような副作用があるか
  • よりシンプルな方法はないか
  • 将来的な保守性はどうか
  • テストすべき観点は何か
  • 公式ドキュメントではどこを確認すべきか

こうした問いをAIに投げることで、自分一人では気づかなかった視点を得られる場合があります。

そして、その視点をもとに自分で調べ、自分で判断します。
このプロセスこそが、AI時代の問題解決能力なのではないでしょうか。

AIを禁止すると、AIに強いエンジニアは育ちにくい

AIを禁止すれば、新人エンジニアはAIを使わなくなるかもしれません。
しかし、それでAIを正しく扱えるようになるわけではありません。

むしろ、AIを使う場面が来たときに、

  • どこまで信用してよいのか
  • どのように検証すればよいのか
  • 何を入力してはいけないのか
  • どのように質問すればよいのか
  • 出力をどうレビューすればよいのか

がわからないままになってしまう可能性があります。

これは、これからのエンジニアにとって大きな損失ではないでしょうか。

AIを使う世代に必要なのは、AIを避ける経験だけではありません。
AIと向き合い、間違いを見つけ、使いどころを判断する経験も必要だと思います。

おわりに

新人エンジニアにAIを禁止することは、一見すると「基礎力をつけるための教育」に見えるかもしれません。

しかし、それだけでは不十分ではないかと感じています。

これからのエンジニアに必要なのは、AIを使わない前提の問題解決能力だけではありません。
AIを使いながら、出力を疑い、根拠を調べ、自分の判断で採用・却下できる能力も必要です。

AIを使えば必ず成長できるわけではありません。
AIを使えば必ず考える力が落ちるわけでもありません。

大切なのは、AIをどう扱うかです。

AIの回答をそのまま貼るだけであれば、たしかに身につきにくいと思います。
しかし、AIに理由を聞き、根拠を確認し、別案を比較し、公式ドキュメントで裏取りし、自分の言葉で説明するなら、それは十分に学習につながるはずです。

AIを禁止すれば、AIに依存しない人材が育つ、というわけではないと思います。
むしろ、AIを正しく扱う訓練を受けていない人材が育ってしまう可能性があります。

先輩エンジニアが新人エンジニアに教えるべきなのは、

「AIを使わないこと」

ではなく、

「AIを使っても、考えることをやめないこと」

ではないでしょうか。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?