【ITニュース解説】How I think engineers grow when AI writes the first draft
2026年11月04日に「Dev.to」が公開したITニュース「How I think engineers grow when AI writes the first draft」について初心者にもわかりやすく解説しています。
ITニュース概要
AIがコードの初稿を作成するようになり、エンジニアが小さなタスクから学ぶ従来の成長ステップが変化している。今後はコード整理やテスト知識を意図的に学ぶ必要がある。AIにできない「判断力」を養うには、コードを読み、レビューし、他者に説明する経験が重要だ。チームはジュニアエンジニアの学び方を再設計すべきだ。
ITニュース解説
システムエンジニアを目指す初心者の皆さんへ、IT業界が今、大きな変化の渦中にあることを知っておくべきだ。これまでのエンジニアの成長の道筋は、多くの場合、比較的簡単で小さなタスクから始まるのが一般的だった。例えば、プログラムのエラーメッセージに誤字(タイポ)があればそれを修正する、あるいはプログラミングのループ処理などでよく起こる「1つずれる」といった小さなバグ(オフバイワンエラー)を修正する、といった作業だ。これらの小さなタスクから始め、その後、特定の機能を有効にするための設定(フラグ)の裏にあるコードの変更、そして最終的にはシステム全体の大きな部品(モジュール)の設計といった、より複雑な仕事へと段階的にスキルを上げていった。このプロセスは、まるで一歩ずつ登っていく「はしご」のようなもので、多くのエンジニアがこのはしごを上って成長してきた。
しかし、近年、人工知能(AI)を活用したコーディングツールが登場したことで、この伝統的な成長のはしごが静かに姿を消しつつある。これらのAIツールは、かつて初心者が学んでいた「小さなタスク」の多くについて、最初のドラフト、つまり叩き台となるコードをかなり高い精度で生成できるようになっているからだ。これは、これまでエンジニアが段階的に習得してきた基本的なスキルの一部を、AIが肩代わりできるようになったことを意味する。
このような変化に対して、AIツールをエンジニアから遠ざけることが解決策になるとは考えられていない。むしろ、これからはエンジニアの学習がどこで、どのように行われるのかを、意図的に計画し、実行していくことが非常に重要になる。かつて「小さなタスク」が教えていたことは、単なるコードの修正作業だけではなかった。例えば、エラーメッセージの誤字修正という一見単純な作業は、コードがどのように整理されているのか、書いたコードが他のエンジニアにどのようにレビューされ、承認されるのか、プログラムの変更が正しく動作するかを確認するためのテストコードはどのようなものか、そして最終的に自分の書いたコードが実際に動く製品としてリリースされる(シップされる)という一連の流れと感覚を学ぶ貴重な機会だった。
AIツールがコードの記述を手伝ってくれるようになっても、これらの本質的な学びは依然として必要だ。しかし、AIが「タイピング」の部分を代行することで、これらの学びはもはや「無料で」自然に得られるものではなくなった。マネージャーは、若手エンジニアにコードベース(ソフトウェア全体のコード)を学ばせたいと考える場合、以前のようにただタスクを割り振るだけでは不十分になった。これからは、システム全体の仕組みを説明するための丁寧な「ウォークスルー」を設けたり、単にコードを承認するだけでなく、なぜそのようなコードが良いのか、あるいは改善点があるのかを「説明する」レビューを行ったり、新しく変更するコードは完璧に理解できるほど「小さなもの」にしたりするなど、意図的な工夫が必要になる。
では、AIツールがまだ提供できない、エンジニアに残された最も重要なスキルは何だろうか。それは「判断力」に他ならない。AIは、指示された内容に基づいてコードを生成することは得意だが、その指示の解釈が間違っている場合や、生成されたコードがシステム内の別の場所にすでに存在する機能と重複している場合、あるいは生成されたコードが実際の大量のデータ(リアルデータボリューム)を処理する際に遅くなる可能性があるといった、より深いレベルでの判断を下すことはできない。このような判断力は、単にコードを書く量よりも、他人の書いたコードを「読む」量が多いほど、そして自分が書いたコードが公開された後に間違いが見つかり、その理由を徹底的に探求する経験を積むことで育っていくものだ。
したがって、これからのエンジニアの成長パスは、コードを書くことそのものへの強調を減らし、より多くのコードを読み、他人のコードをレビューし、自分の考えやコードの意図を他人に「説明する」ことに重点を置いたものになるだろう。これは、単にプログラムの行数(Lines of Code)を増やすことよりも、品質と理解、そしてチームとの協調性を重視する姿勢へと変化することを意味する。
この新しい考え方に対して、「ジュニアエンジニアは、これからの時代の働き方、つまりAIツールを指示するやり方を単純に学ぶべきであり、昔のはしごは単なるノスタルジー(過去を懐かしむ気持ち)だ」と主張する人もいる。確かに、この意見には一理ある。しかし、AIツールを効果的に指示するためには、「何が良いコードなのか」「良い設計とは何か」といった「良いもの」の基準を知っている必要がある。そして、その基準は、少なくとも数回は自分の手でゼロから物を作り上げてきた経験なしには身につかないと、この記事の筆者は考えている。
このため、初期段階の学習においては、一部の作業を「ツールなしで手作業で行う期間」を設けるべきだという提案がある。これは、パイロットが自動操縦(オートパイロット)を使わずに手動で飛行機を操縦する方法を学ぶのと似ている。基本的な原理やメカニズムを理解するためには、一度は自分の手で全てを経験することが不可欠だという考え方だ。
ただし、この「手作業期間」をどのくらいの長さにするべきか、あるいはそれが特定の期間であるべきか、それとも全体の作業の一部として割合で取り入れるべきかについては、まだ明確な答えが出ていない。また、AIツールが当たり前になった時代に育ったエンジニアたちが、従来のやり方で育ったエンジニアたちと同じくらい、あるいは異なるが同等に優れた「判断力」を身につけることができるのかも、まだ未知数だ。しかし、最近の採用の現場では、特定の専門知識(ドメイン知識)よりも、自律性や判断力を重視する傾向が見られる。これは、その能力を正確に測定する方法がまだ確立されていなくても、正しい方向性だという直感があるからだと筆者は考えている。
確実に言えることは、従来の成長のはしごは自然に元の形に戻ることはないということだ。もしチームが5年後に優秀なシニアエンジニアを育成したいと願うのであれば、ジュニアエンジニアが今、どのように学ぶべきかを、誰かが意識的に決定し、新しい教育パスを設計する必要がある。これは、これからのIT業界で活躍するエンジニアを育てる上で重要な課題だ。