この記事は、AI がコードを書く時代に人間側へ残るエンジニアリングは何かを書いたエッセイだ。結論は二つある。コードの内部の意味を分かって AI に正確に指示すること。そして、AI が出したコードを読んで「変だ」と気付くこと。今のところ、この二つは人間の仕事だ。

前に、独学プログラミングが続かないのは才能ではなく仕組みの問題だという記事を書いた。環境構築でつまずく。エラーが読めない。教えてくれる人がいない。独学の難所を、そうやっていくつか挙げた。

正直に書くと、書いた直後から自分でも思っていた。この難所は、AI がほとんど溶かしてしまう。 エラーを貼れば、AI が読んで直し方を教える。何を作るか迷えば、AI が叩き台を出す。教えてくれる相手がいないという独学最大の孤独すら、AI が埋める。書くこと自体の壁は、急速に低くなっている。

では、独学もエンジニアリングも、もう難しくないのか。私はそうは思わない。難所が消えた代わりに、前とは別の段差が現れたと感じている。今日はその段差の話を書く。先に断っておくと、これは「今の」私の読みだ。数年後にどうなっているかは正直分からない。その分からなさも含めて書く。

なぜ「書ける」ことは壁でなくなったのか

文法・エラー・環境構築という昔の壁を、今は AI が代わりにやるからだ。

少し前まで、プログラミングの壁は「書けること」だった。文法を覚え、エラーと格闘し、環境を整える。独学は9割が挫折すると言われたのも、ここでみんなが折れたからだ。

今は、その多くを AI がやる。動くコードは驚くほど速く、それなりに正しく出てくる。入口の敷居は劇的に下がった。この変化は本当にすごい。まず、この事実は素直に認めたい。AI を使わずに昔のやり方に固執するのは、もったいない。

AI 時代の新しい段差「作らせられるが、分かっていない」とは何か

AI に作らせると、動く。でも、自分は中身を分かっていない。これが新しい段差だ。

前の記事で、「写経はできるのに、自分では作れない」段差の話を書いた。AI 時代の段差はその親戚で、もっとたちが悪い。

写経は、少なくとも自分の手で打っていた。AI に任せると、手すら動かさずに「動くもの」が手に入る。便利だ。でも、動いた瞬間に「分かった気」になって、そこで止まる。分かっていないのに、先へ進んでしまう。

前は「作れないこと」で折れた。今は「作れてしまうこと」で、分からないまま進んでしまう。

AI に任せたコードは、なぜ後で困るのか

AI には「動けば良し」と考える癖があり、技術的負債という概念を持っていないからだ。

この癖は、使っていて感じるものだ。頼めば、それらしく動くものを、まとめて一気に出してくる。

今のタスクが通れば、それで終わり。次にそのコードを抱えて困るのは、未来の自分だ。だから放っておくと、出てくるのは「動くが、(今のところは)困る」コードになりがちだ。困り方は3つある。

  • 後で直せない:どこに何が書いてあるかを自分が把握していないから、直す場所が分からない。
  • 意味が分からない:なぜ動くのかを、自分の言葉で説明できない。動いている理由が、自分の中にない。
  • 壊して試せない:前の記事で「1日1回、壊して直す」と伸びると書いた。でも中身を分かっていないと、怖くて壊せない。学ぶ手段を一つ失う。

これからのエンジニアリングとは何か

内部の意味を分かって、AI に正確に指示することだ。

じゃあ、何をすればいいのか。答えは、たぶんこうだ。

内部の意味をしっかり分かっていると、AI への指示も正確に出せる。それが、これからのプログラマ・エンジニアのエンジニアリングだと思う。

曖昧な指示は、AI の「作れれば良い」を引き出す。「いい感じにして」と言えば、いい感じに動くものが返ってくる。ただし、中身は分からない。逆に、内部を分かっている人は「ここはこの構造で、この責務はここに置いて」と正確に指示できる。同じ AI を使っても、出てくるものが変わる。

実例:私が AI に渡している指示書 CLAUDE.md

実例を一つ書く。私は AI にコードを書かせるとき、Claude Code というツールを使っている。そこに、CLAUDE.md という指示書を渡している。並んでいるのは特別な発明ではなく、昔からエンジニアリングで言われてきた原則だ。

  • 同じことを二度書かない(DRY)
  • とにかくシンプルに保つ(KISS)
  • 必要になるまで作らない(YAGNI)
  • 一つのものに責任を詰め込まない(単一責任=SOLID の「S」)
  • 同じ値や名前は、一箇所だけに置く(SSOT=信頼できる唯一の出どころ)
  • 機能ごとに疎に分け、関係の近いものはまとめる(関心の分離・疎結合/高凝集)
  • 命名や書き方を、チームで揃える(コーディング規約)。既にある部品を使い、余計なものを残さない

要するに、自分が分かっている「正しい作り方」を、AI に正確に伝えるための文書だ。

面白いのは、どれも新しい話ではないことだ。SOLID も DRY も KISS も YAGNI も、人間のエンジニアが何十年もかけて積み上げてきた言葉だ。AI が書くようになっても、これらは消えない。むしろ、この基礎を分かっている人ほど、AI に的確に指示できる。指示が正確なほど、返ってくるものは変わる。

もう一つ言える。こういう指示書をわざわざ書かないといけない事実そのものが、AI を放っておくと「作れれば良い」に流れる何よりの証拠だ。

血肉になった知識だけが、AI に渡せる

正直に言えば、こうやって AI に「正しい作り方」を渡せるのは、これらが私の中で血と肉になってきたからだ。本で読んだだけの知識では、こうは書けない。自分で作って、つまずいて、痛い目を見る。ようやく「これは本当に大事だ」と腹で分かったことだけが、AI への指示として正確に出てくる。

自分の血肉になっていないことは、AI にも正確には渡せない。 学んで、失敗して、身につけてきた時間そのものが、AI を使いこなす力の土台になっている。

つまり、価値の中心は「自分でコードを書けること」から、「内部を分かって、AI に正確に指示できること」へ移った。書く手は AI に渡してもいい。でも、分かっている頭は、まだ人間が握っている。

指示書の続きは「好み」の領域

ちなみに、正直に白状すると、CLAUDE.md にはこの先もまだ続きがある。ただ、ここから先はだんだん「私の好み」の領域に入っていく。ここはこう書きたい、この並びが好き、といった、その人だけの癖だ。普遍の原則というより、ただのこだわりだ。なので、中身はここでは伏せておく(笑)。たぶん、誰の CLAUDE.md にも、本人にしか分からない妙なこだわりが、しれっと混ざっている。

ただ、好みとは別に、一つ真面目な前提もある。AI と二人三脚で作るとしても、コードはたいてい、自分ひとりのものでは終わらない。他の人が読む。別の AI セッションが続きを書く。半年後の自分だって、もう他人みたいなものだ。だから「作り方を揃える」のは、AI のためだけではなく、複数人で開発する前提のためでもある。一貫した構造は、人と人(と AI)のあいだの共通言語になる。

分かったまま進むにはどうすればいいか

小さく試す。 方法は、前の記事と同じだ。

AI に全部を一気に作らせない。いちばん小さい一歩だけ作らせて、自分が理解できるか確かめて、次へ行く。理解が追いつく範囲でしか、進まない。これは、独学の「1日1回、壊して直す」の AI 開発版だ。人が監督で、AI が速い手だ。小さく刻むほど、理解と指示の精度が保たれる。

一気に大きく作らせた瞬間に、「動くけど分からない」塊が生まれる。だから、急がない。AI が速いからこそ、人間はわざと小さく刻む。 速さに飲まれないことが、AI 時代の規律だ。

直近でいちばん効く力は何か

AI が出したコードを読んで、「これは何か変だ」と気付ける力だ。

書く力が AI に渡るなら、人間に残るのは読む力だ。ただし、読めるだけでは足りない。直近でいちばん効くのは、読んだうえで気付けることの方だと思う。

AI は、それらしく動くものを出す。でも、「それらしい」と「正しい」は違う。微妙に間違っている。どこか危ない。構造が歪んでいる。なのに、一見ちゃんと動く。そういう出力を読んで、「ん、おかしいぞ」と立ち止まれるか。これが、現場でいちばん要る力になっていく。

「変」の具体例は、要らないコードと作り直し

具体的には二つある。一つは、使われないまま残っている、要らないコード。もう一つは、本当はもう用意されている部品があるのに、それを使わずに似たものを作り直しているコードだ。どちらも、動きはする。だから、知らなければ見落とす。

でも、その場所を分かっている人なら、すぐ気付ける。「これ、要らないよね」「ここ、既にあるやつを使えばいいよね」と。動くかどうかではなく、余計なものが残っていないか、使うべきものが使われているかを読める。それが、「変に気付く」ということだ。

分かる → 読める → 変に気付ける

この「変だと気付く力」は、内部を分かっていることから来る。分かっていなければ、変かどうかも分からない。だから、さっきの「内部を分かる」と、この「変だと気付く」は地続きだ。分かる → 読める → 変に気付ける。 この順番でしか、AI の出力を信用していいかどうかは判断できない。

書けることより、読めて、違和感を持てること。少なくとも直近は、これが AI 時代にいちばん現場で要る技術だと思っている。

今、構造は誰が握るのか

人が握る。AI は、構造を勝手には守ってくれないからだ。

ここで言う構造とは、どこに何を置くか、状態をどう管理するか、責務をどう分けるか、といったことだ。「作れれば良い」の AI にとっては、通ればそれでいい。

だから、今は、構造は人が握る。「最初から正しい場所に、正しい構造で」書く。後で全部直す前提の、その場しのぎを許さない。AI がどれだけ速くコードを吐いても、それをどう積むかの設計は、今はまだ人間の仕事だ。ここが、人間の価値の最後の砦だと、今は思っている。

この状況はいつまで続くのか ― 未来は2つに分岐する

正直に言うと、分からない。分かれ目は、AI が「分からないコードは困る」という問題そのものを超えられるかどうかだ。

ここまで「人間が内部を握る」と書いてきた。未来は、たぶん2つに分かれる。

  • 分岐A(超えられない):みんなが「作れれば良い」で作り続けて、訳の分からない実装が、世界中にめちゃくちゃ増える。そうなると、内部を分かって読み解ける・直せる人の価値は、むしろ上がる。理解が、生存技術になる。
  • 分岐B(それすら凌駕する):AI が理解も保守も、人間が困る前に全部引き受けてしまう。「分かっていないと困る」という心配自体が、消える。「そんな時代もあったね」と笑う日が来る。

どっちに転ぶか、私には分からない。だからこれは、永遠の正解として書いているわけではない。あくまで「今の」エンジニアリングの話だ。

それでも、分かろうとした時間は消えない

どちらの未来に転んでも、分かろうとして手を動かした時間は自分に残る。

最後に、正直なことを書く。

どっちの未来でも、効くものがある。分岐Aなら、内部を分かる力が、そのまま生きる。分岐Bでも、この心配が要らなくなり、結果が使われなくなっても、分かろうとして手を動かした時間は、ちゃんと自分の血と肉になっている。

これは、前の記事や、この特集でずっと書いてきたことと同じだ。やってみた時間は、後で「あの心配は無駄だったね」と笑われる側に転んでも、消えない。

だから今は、分からない未来に向けて、小さく試して、自分で確かめながら進む。それが、どっちに転んでも、いちばん損をしない構えだと思っている。

正直に書くと、この文章も、このサイトも、私は AI と一緒に「小さく試して」作っている。うまくいくかは、まだ分からない。それでも、やってみた時間は、きっと血と肉になる。