8月26日、Shift Magazineが「AI Is Making Junior Developers Faster, But Is It Making Them Better Engineers?」と題した記事を公開した。AIがコードを書き、バグを修正し、既存コードを解析できる時代に、ジュニアエンジニアは「何を学ぶべきか」——この問いに対し、現場で日々チームを率いる上級エンジニア3人の肉声は、楽観論とも悲観論とも異なる、実践的な答えを指し示している。
取材対象は、Senior Principal EngineerのFrantišek Lučivjanský、Senior Quality EngineerのKevin Antonio Moreno Melgoza、Staff EngineerのMaida Barlićの3名だ。なお、「Staff Engineer」はコードを書きながら組織横断的な技術方針を担うシニア個人貢献者の職位であり、「Senior Principal Engineer」はそのさらに上位にあたる。3名はいずれもジュニアの育成に直接関わる立場にある。また、Shift Magazineはソフトウェア開発の現場実務にフォーカスした技術系メディアで、エンジニアへのインタビュー記事を多数掲載している。
「速く書ける」は「速く学べる」ではない
3人の意見が最も鮮明に分かれたのが、この論点だ。
Kevinは「AIは学習を加速しない」と断言する。プログラミングは試行錯誤によって身につくものであり、AIはタスクを完了させやすくするが、理解を深めるとは限らない、という立場だ。
AIが登場する前の時代に始めた開発者はすでに「やって学ぶ」段階を経て、基礎を築いている。ジュニアはまさにその基礎を構築中だ。AIに頼りすぎると、そのプロセスをスキップするリスクがある。結果として、理解せずにものを作れる状態になってしまう。
Františekはリスクは認めつつも、「AIの答えをそのまま受け取らず、能動的に問い返すなら強力な学習ツールになりうる」と主張する。彼が提示するテストは明快だ。
「私が一緒に会議に出て、あなたが作ったソリューションについて技術的な質問をしたとき、AIなしで説明できるか?」できるならAIをうまく使っている。できないなら、エンジニアリングではなくコードを生成しているだけだ。
Maidaはより柔軟な見方をする。フレームワークを内部実装まで理解せず使うことは以前からあった、と指摘した上で、「意図的に使えばAIは概念の習得を助ける」とする。ただし、その使い方には条件を付ける。
問題の解き方の例を示してもらいながら、実際にコードは自分の手で書く。これが学習のプロセスとして機能する。
経験者にはAIコードが見える
経験豊富なエンジニアには、ジュニアが生成AIに頼ったコードが見分けられることが多い。その理由として3人が共通して挙げるのが「過剰設計」だ。
Kevinは「シンプルなタスクが必要以上に複雑なソリューションに変わっているとき、AIの影響が透けて見える」と言う。そして問題の本質を指摘する。
学習するかどうかが任意になる点が弱点だ。AIを使って学ぶ人もいれば、タスクをこなすだけで終わる人もいる。
Františekは、AIが生成するコードは見た目が整っていることが多いと認めながらも、「AIは目の前の問題を解くことに最適化される傾向があり、ソフトウェアアーキテクチャ全体を考慮しない」と警告する。
だからこそソフトウェアエンジニアがまだ必要とされる。動くコードだけでは不十分だ。そのソリューションが理解可能か、保守可能か、システムに適切かを判断できる人間が必要だ。
Maidaは逆に、AIが「改善案や別アプローチを提案する」という強みも評価している。一方で、フレームワークの古い使い方を提案するなど、最新のベストプラクティスを反映していないケースもあると注意を促す。
AIでは身につかないスキル
3人が口を揃えるのが、「デバッグと既存コードの読解は、依然として自力で鍛えるしかない」という点だ。
Františekは自身の経験を語る。
ジュニアの頃、フレームワークの内部がどう動くかを理解するために、その一部を自分で再実装した。今ならAIを使ってその学習をさらに強化できる。ただし、AIに全部やらせてしまっては意味がない。
彼が勧めるのは、ミニブラウザ(簡易的なブラウザエンジン)、小さなフレームワーク、データベース、あるいは簡単なLLM関連プロジェクトをゼロから自作することだ。いわゆる「toy project(学習目的の小規模自作プロジェクト)」と呼ばれる手法で、内部構造を自分の手で実装することで、普段使っているツールの動作原理を体感的に理解できる。AIを補助として使いながら、自分が何を作っているかを理解し続けることが重要だという。
Maidaは「コードベースのどこからでも起点にして、問題に向かって自力でたどり着ける能力」を必須スキルとして挙げる。AIがコードを書いても、プルリクエストのレビューや既存コードの把握、ソリューションの検証は人間が担う必要があるからだ。
企業がジュニアに求めるものが変わる
3人は、採用市場における評価軸のシフトについても一致した見解を示す。「コードを書ける」は差別化要因でなくなり、「判断力と理解の深さ」が問われるようになるという予測だ。
Kevinはこう述べる。
特定技術の深い知識よりも、批判的に考え、要求を正しく理解し、ソリューションの良し悪しを判断できる能力が重視されるようになる。
Františekが示す、将来のジュニアエンジニアに求められる姿はシンプルだ。
「複数のアプローチを試して、トレードオフを比較して、この方法が最適だと思う、なぜなら……」と説明できること。シグナルは「コードを書ける」から「AIを使って速く作れるが、自分が作ったものを理解して、決断を説明できる」に移行する。
Maidaはこの流れの中で「技術的な深さの重要性はむしろ高まる」と結論づける。AIが生成したコードが正しいか、保守可能かを見極めるには、良いコードを知っていることが前提になるからだ。
なお、AIがジュニア採用市場に与える影響については、GitHubが公開したGitHub Copilotの開発者生産性への影響に関するリサーチや、Stack OverflowによるDeveloper Survey 2024のAI活用実態調査も参照すると、本記事の論点をより広い文脈で捉えられるだろう。
詳細はAI Is Making Junior Developers Faster, But Is It Making Them Better Engineers?を参照していただきたい。