前に、独学プログラミングが続かないのは才能ではなく仕組みの問題だ、という話を書いた。環境構築でつまずく、エラーが読めない、教えてくれる人がいない——独学の難所をいくつか挙げた。
正直に書くと、あれを書いた直後から、自分でも思っていた。この難所、AI がほとんど溶かしてしまうな、と。
エラーを貼れば、AI が読んで直し方を教える。何を作るか迷えば、AI が叩き台を出す。教えてくれる相手がいないという独学最大の孤独すら、AI が埋めてしまう。書くこと自体の壁が、急速に低くなっている。
では、独学もエンジニアリングも、もう何も難しくないのか。——そうは思わない。難所が消えた代わりに、前とは別の段差が現れたと感じている。今日はその話を書く。先に言っておくと、これは「今の」私の読みで、数年後にどうなっているかは正直わからない。それも含めて書く。
昔は「書ける」が壁だった。今は AI が書く
少し前まで、プログラミングの壁は「書けること」だった。文法を覚え、エラーと格闘し、環境を整える。独学は9割が挫折すると言われたのも、ここでみんなが折れたからだ。
今は、その多くを AI がやる。動くコードは、驚くほど速く、それなりに正しく出てくる。これは本当にすごい変化で、入口の敷居は劇的に下がった。まず、この事実は素直に認めたい。AI を使わずに昔のやり方に固執するのは、もったいない。
でも、新しい段差が現れた ―「作らせられるが、分かっていない」
前の記事で、「写経はできるのに、自分では作れない」段差の話を書いた。AI 時代の段差は、その親戚で、もっとたちが悪い。
AI に作らせると、動く。でも、自分は中身を分かっていない。
写経は、少なくとも自分の手で打っていた。AI に任せると、手すら動かさずに「動くもの」が手に入る。便利だ。でも、動いた瞬間に「分かった気」になって、そこで止まる。分かっていないのに、進めてしまう。これが新しい段差だ。前は「作れないこと」で折れたが、今は「作れてしまうこと」で、分からないまま進んでしまう。
AI は「作れれば良い」と思っている節がある
使っていて感じるのは、AI には 「動けば良し」と考える癖があることだ。頼めば、それらしく動くものを、まとめて一気に出してくる。
でも、AI は技術的負債という概念を持っていない。今のタスクが通れば、それで終わり。次にそのコードを抱えて困るのは、未来の自分だ。だから放っておくと、出てくるのは「動くが、(今のところは)困る」コードになりがちだ。具体的には3つ。
- 後で直せない:どこに何が書いてあるかを自分が把握していないから、直す場所が分からない。
- 意味が分からない:なぜ動くのかを、自分の言葉で説明できない。動いている理由が、自分の中にない。
- 壊して試せない:前の記事で「1日1回、壊して直す」と伸びると書いた。でも中身を分かっていないと、怖くて壊せない。学ぶ手段を一つ失う。
これからのエンジニアリングは「内部の意味を分かること」
じゃあ、何をすればいいのか。答えは、たぶんこうだ。
内部の意味をしっかり分かっていると、AI への指示も正確に出せる。それが、これからのプログラマ・エンジニアのエンジニアリングだと思う。
曖昧な指示は、AI の「作れれば良い」を引き出す。「いい感じにして」と言えば、いい感じに動く(が、分からない)ものが返ってくる。逆に、内部を分かっている人は、「ここはこの構造で、この責務はここに置いて」と正確に指示できる。同じ AI を使っても、出てくるものが変わる。
実例を一つ書く。私は 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 に渡してもいい。でも、分かっている頭は、まだ人間が握っている。
——ちなみに、正直に白状すると、CLAUDE.md にはこの先もまだ続きがある。ただ、ここから先はだんだん「私の好み」の領域に入っていく。ここはこう書きたい、この並びが好き、みたいな、その人だけの“癖”だ。普遍の原則というより、ただのこだわり。なので、中身はここでは伏せておく(笑)。たぶん、誰の CLAUDE.md にも、本人にしか分からない妙なこだわりが、しれっと混ざっている。
ただ、好みとは別に、一つ真面目な前提もある。AI と二人三脚で作るとしても、コードはたいてい、自分ひとりのものでは終わらない。他の人が読む。別の AI セッションが続きを書く。半年後の自分だって、もう他人みたいなものだ。だから「作り方を揃える」のは、AI のためだけじゃなく、複数人で開発する前提のためでもある。一貫した構造は、人と人(と AI)のあいだの、共通言語になる。
方法は「小さく試す」
では、どうやって「分かったまま」進むか。方法は、前の記事と同じだ。小さく試す。
AI に全部を一気に作らせない。いちばん小さい一歩だけ作らせて、自分が理解できるか確かめて、次へ行く。理解が追いつく範囲でしか、進まない。これは独学の「1日1回、壊して直す」の、AI 開発版だ。人は監督、AI は速い手。小さく刻むほど、理解と指示の精度が保たれる。
一気に大きく作らせた瞬間に、「動くけど分からない」塊が生まれる。だから、急がない。AI が速いからこそ、人間はわざと小さく刻む。速さに飲まれないことが、AI 時代の規律だ。
直近で効くのは「コードを読んで、変だと気付く力」
書く力が AI に渡るなら、人間に残るのは読む力だ。そして、直近でいちばん効くのは、ただ読めることではなく、AI が出したものを読んで、「これは何か変だ」と気付けることだと思う。
AI は、それらしく動くものを出す。でも、「それらしい」と「正しい」は違う。微妙に間違っている、どこか危ない、構造が歪んでいる——なのに、一見ちゃんと動く。そういう出力に対して、読んで「ん、おかしいぞ」と立ち止まれるか。これが、現場でいちばん要る力になっていく。
具体的には、こういうことだ。使われないまま残っている、要らないコード。あるいは、本当はもう用意されている部品があるのに、それを使わず、わざわざ似たものを作り直している。どちらも、動きはする。だから、知らなければ見落とす。でも、その場所を分かっている人なら、「これ、要らないよね」「ここ、既にあるやつを使えばいいよね」と、すぐ気付ける。動くかどうかではなく、余計なものが残っていないか/使うべきものが使われているかを読めること。それが、変に気付くということだ。
そして、この「変だと気付く力」は、内部を分かっていることから来る。分かっていなければ、変かどうかも分からない。だから、さっきの「内部を分かる」と、この「変だと気付く」は地続きだ。分かる → 読める → 変に気付ける。この順番でしか、AI の出力を信用していいかどうかは、判断できない。
書けることより、読めて、違和感を持てること。少なくとも直近は、これが AI 時代の、いちばん現場で要る技術だと思っている。
今は、構造は人が握る
AI は、どこに何を置くか、状態をどう管理するか、責務をどう分けるか——そういう構造を、勝手には守ってくれない。「作れれば良い」から、通ればそれでいいのだ。
だから、今は、構造は人が握る。「最初から正しい場所に、正しい構造で」書く。後で全部直す前提の、その場しのぎを許さない。AI がどれだけ速くコードを吐いても、それをどう積むかの設計は、今はまだ人間の仕事だ。ここが、人間の価値の最後の砦だと、今は思っている。
正直に言うと、未来は2つに分岐する
ここまで「人間が内部を握る」と書いてきたが、正直に書く。これがいつまで本当かは、分からない。
未来は、たぶん2つに分かれる。AI が「分からないコードは困る」という問題そのものを超えられるかどうかで。
- 分岐A(超えられない):みんなが「作れれば良い」で作り続けて、訳の分からない実装が、世界中にめちゃくちゃ増える。そうなると、内部を分かって読み解ける・直せる人の価値は、むしろ上がる。理解が、生存技術になる。
- 分岐B(それすら凌駕する):AI が理解も保守も、人間が困る前に全部引き受けてしまって、「分かっていないと困る」という心配自体が、消える。「そんな時代もあったね」と笑う日が来る。
どっちに転ぶか、私には分からない。だからこれは、永遠の正解として書いているわけじゃない。あくまで「今の」エンジニアリングの話だ。
それでも、分かろうとした時間は消えない
最後に、正直なことを書く。
どっちの未来でも、効くものがある。分岐Aなら、内部を分かる力が、そのまま生きる。分岐Bでも——たとえこの心配が要らなくなっても、分かろうとして手を動かした時間は、ちゃんと自分の血と肉になっている。理解は、たとえ結果が使われなくなっても、自分には残る。
これは、前の記事や、この特集でずっと書いてきたことと同じだ。やってみた時間は、たとえ後で「あの心配は無駄だったね」と笑われる側に転んでも、消えない。
だから今は、分からない未来に向けて、小さく試して、自分で確かめながら進む。それが、どっちに転んでも、いちばん損をしない構えだと思っている。
——正直に書くと、この文章も、この site も、私は AI と一緒に「小さく試して」作っている。うまくいくかは、まだ分からない。それでも、やってみた時間は、きっと血と肉になる。


