はじめに
最近、ポッドキャストで「AIは新卒ソフトウェアエンジニアの仕事を奪うのか」というテーマについて話してみた。この問いに対する私の答えとしては「細かな作業は実際奪われていくかもしれないが、レビューや意思決定といった部分は残るので、新卒ソフトウェアエンジニアであっても仕事は完全には奪われない」という結論になった。
しかし、それを話してみてからもう少し考えてみたくなった。
奪われるのは「仕事」ではなく「機会」
実は、「仕事」ではなくて「コーディングする機会そのもの」が減ってるんじゃないだろうか。それはつまり、学びの機会がAIに奪われているともいえる。
これは、昔あった「IDE使うな論争」に近いかもしれない。VS CodeやIntelliJ IDEA、Eclipse、Xcodeなど、いわゆる統合開発環境が登場した時、コード補完が出てきたり、右クリックでインターフェースの実装を自動生成してくれたりする機能を「使うな」という派閥がいたわけだ。
初めにコードを自分の手で書いてから、理解した上でIDEで楽をするという手順を取るのが大事だと言っていた人たちがいた。そして今、AI時代において同じような構造の問題が起きているのかもしれない。
AI エージェント時代の到来に感じる馬鹿らしさ
Claude Code、Codex CLIなどAIエージェントが出てきた時、ほとんど自分がコードを書かなくて済むし、イエス・ノーだけの世界になったり、レビューをするだけの世界になる。そうすると、実際にタイピングしたり、どういうところでコンパイルエラーが出たりとか、どういう補完をするといいとか、コーディングをする上での基礎体力というのは奪われてしまうかもしれない。
結局、どういうプロセスか(自分でコードを書くかAIが書くか)に関わらず、いい機能を作ったり、プロダクトを作ったり、ソフトウェアを作ったりというところでは変わりない。しかし、どうしても自分でプログラムをする機会が減るので、その基礎体力的なところは如実に減ってしまう。
仕事云々よりも、そのコードを書く機会が奪われるというのが一番困りそうな気がする。AIが楽に書いてくれるんなら自分で書くのは馬鹿らしい。過去もそうで、IDEが気を利かせてやってくれるのに、わざわざ全部手書きで書くのも馬鹿らしい。
新卒とベテランの違いは、この機会損失
だから、新卒にとって本当に奪われるとしたら、仕事が奪われるというより「プログラミングをする機会」。自分でコードを書くというチャンスが取られちゃっている可能性がある。
一方で、一通りコードを散々書いてきたシニアエンジニアやスタッフエンジニア、ベテランと言われるような人たちにとっては、「もう一通りコード書いたから、そこはAIにやってもらっても別に構わない」という人もいるかもしれない。
技術発展と「強制ギブス」の矛盾
AIが作れない部分。その残ったところでオリジナリティを出したり、判断をしたりということになると、より原始的なタイピングとか、コードを書くとか、いろんなメソッドを探索的に調べて、どのメソッドを使うこと(言語組み込みのビルトインのライブラリとか何を使うとか、外部のライブラリー何を使うとか)という細かいことからだんだん離れていくような気もする。
でも根本的には、やっぱりその発達した技術を使わないで、そこを使わない、禁止してやるっていうのはすごく時代に逆行している。IDE禁止だとか、ラムダ式禁止とか。新しいテクノロジーや技術が出るたびに禁止したり、逆に良くないみたいな言説や主張が生まれたりするわけだ。
ただ、IDEとかはアシストなのだが、AIエージェントとかってなってくると、アシストを超えてもう勝手に動いてくるわけなので、そういうコーディングの機会というのは如実に奪われていっているのかな、というところ。そこが、多分そのシニアエンジニアやスタッフエンジニア、ベテランに比べると、新卒のソフトウェアエンジニアの方がダメージがでかいんではないかと思う。
では、どうするか
1. プロダクト全体を見る力を磨く
一つは、思い切って一気通貫でアプリを作るとか、プロダクトを作るというディレクター的なところや、プロダクト自体を全部見るというところに振り切る。そのキャリアを早く進むことが、いろんな人ができるようになったかもしれない。
2. 仕事以外でコーディングの機会を作る
一方で、そのコーディングをする機会は奪われているので、仕事以外の機会で自分でコードを書いてみる。例えば、本や教材であるような「コードを自分で書いてみましょう」というエクササイズをAIなしでやってみるというのは部分的にはありかもしれない。
あとは競技プログラミングと言われるような、いわゆるコードを書くこと、自分だけで書くことも目的にした問題に取り組んでみる。
※競技プログラミング界隈もAIに対してどういうレギュレーションを作ってんだろうなとか、地味に気になるところではある。
3. 時々はAIに頼らずに書いてみる
仕事以外でそういった機会を作るか、時々はAIに頼らずに仕事でも書いてみるとかをしないと、仕事で磨かれていっていたはずの部分が、新卒のソフトウェアエンジニアだと磨かれていかないのかもな、というところはあるのかもしれない。
「プログラミング」の"価値"
AIというテクノロジー自体は全然いいのだが、一番それが新卒のソフトウェアエンジニアとかキャリアが浅い人にとってのダメージになるような気もする。それか、プログラミングを自分で書くこと自体の価値がどんどん下がっていくのか。そうすると、その価値というのは下がると判断して、そこはバッサリと諦めるとか割り切るというのも一つの手なのかもしれない。
低レイヤーと高レイヤーの往復
でも結局、根本的には原理原則とかコアな部分——例えばカーネルがあってOSがあってとか、CPUがあってとか、その上でアプリケーションが動いているとか、高級言語というものがあって、コンパイラがあってとか、インタープリターがあってとか、いろんな処理系があるとか——そういうところ、さらにコーディングは手で書いたりもできて、さらにそれを便利にするためにはIDEがあって、いろんな情報があって、それをAIがまとめている。それらをあたかも人間が書いたかのようなコーディングができるという風に、より低レイヤーから高レイヤーになってきている(AIは単純に上位レイヤーとは言えない別文脈のものだけれども)
結局、その何層にも重なっている深い構造が理解できないと、問題が解決できなかったり、分からなくなったりする瞬間も多くなってきそう。
なので、よりAIに踊らされやすいとか、その表層的な部分しか見れなくなってしまうというリスクがある。
常に手で書けとか、そういうところは考えなくていいと思うが、一度は自分でコーディングしてみるとか、OS作ってみるとか、パソコン組み立ててみるとか。
レイヤーを下げるとか、低レイヤーに潜り込んだり、元のレイヤーに戻るという往復をして、より具体的なところとか、コアな部分を見る。それを見た上で、より今やっていることが何なのかというのを改めて理解するというような行き来、往復みたいなのは大事なのかなという気もする。
おわりに
実際、新卒のソフトウェアエンジニアの世界でどういうことが起こっているのか分からない。
むしろAIが入ったことによって学習サイクルがめちゃくちゃ速くなって、新卒の1年目にして超ベテランだったりとかという人がいっぱい生まれてたりする可能性もあるし、学生時代、就職前からすごいプロダクト作ってる人もいっぱい増えているかもしれない。
そこが楽しみでもあり、どうなっているのか知りたいところでもある。




