私たちは、コンピュータを逆から学んでいる
ずっと引っかかっていたことがあります。
コンピュータは、下から順に作られてきました。0と1があって、回路ができて、OSができて、その上で言語が動いて、ようやくアプリやWebサービスが乗っかっている。
でも今、学ぶ人はその逆から入ります。
まずHTMLを書く。Pythonのチュートリアルをやる。動くものを作る。仕組みは、後から知ろうとする。
作られた順番と、学ぶ順番が、逆になっている。
これってどうなんだろう、と何年も思っていました。

積み上げてきた人と、上から入る人
技術が生まれてきた順番は、こうです。
| 層 | 中身 |
|---|---|
| 1 | 電気・論理回路(0と1) |
| 2 | CPUやメモリなどの構造 |
| 3 | アセンブリ、Cのような低レイヤ言語 |
| 4 | OS(Unix、Windows など) |
| 5 | PythonやJavaのような高級言語 |
| 6 | アプリ・Webサービス・クラウド・AI |
一段ずつ、下から積み上げられてきました。
ところが今の学習は、6から始まります。そして5、4と、下りていく人もいれば、下りないまま終わる人もいます。
私はこれを、地層のようなものだと思っています。上を歩いているだけなら、下に何が埋まっているかは見えません。
「怖くない」から始めるのは正しい
先に言っておくと、上から入ること自体は悪くありません。
むしろ教える側としては、そうせざるを得ません。
0と1から始めたら、ほとんどの人が三ヶ月ももちません。何も動かないまま、意味の分からない話が続くからです。まず動くものを作る。楽しい。だから続く。この順番には合理性があります。
私が教えている40代から60代の方も、いきなり「メモリとは」から入ったら、たぶん二回目に来ません。
だから上から入るのは正解です。
問題は、そこで止まったときに起きます。
エラーが出た瞬間に、下から呼ばれる
上から入った人がつまずくのは、たいてい「動かないとき」です。
手順どおりにやったのに動かない。エラーメッセージの意味が分からない。検索しても、出てくる答えが自分の状況と微妙に違う。
このとき何が起きているかというと、普段は隠れている下の層が、顔を出しているんです。
- パーミッションが違う
- パスが通っていない
- ポートが埋まっている
- 文字コードが合っていない
どれも、上の層だけ見ていては永遠に分かりません。
これには名前がついていました
調べていて驚いたのですが、この現象には20年以上前から名前がついていました。
「漏れのある抽象化の法則」といいます。2002年に Joel Spolsky という人が書いたものです。
内容はこうです。
どんな抽象化も、程度の差はあれ、必ず漏れる
抽象化というのは「難しいことを隠して、簡単に使えるようにする」ことです。フレームワークもクラウドも、全部これです。
でも隠したはずのものが、時々こぼれてくる。そのとき使う側は、隠されていたはずの中身を知らないと対処できません。
そして、この法則にはこう続きます。
抽象化は、作業の時間は節約してくれる。でも、学習の時間は節約してくれない。
私が何年もモヤモヤしていたことが、この一行に収まっていました。
でも「漏れる」だと、少し違う気がしています
ひとつだけ、引っかかったことがあります。
「漏れる」という言葉です。
漏れると聞くと、水道管やバケツを思い浮かべませんか。どこかが壊れていて、そこから水が出てきている。そういう感じがします。
でも実際に起きていることは、たぶん違います。
私はこれを、地層だと思うようになりました。
私たちは地表に立っている
パソコンを、地面だと考えてみてください。
私たちは地表で作業しています。ファイルを開いたり、アプリを動かしたり。足元は固くて、安定しています。
でもその下には、何層も積み重なっています。土があって、岩盤があって、もっと下にはマントルがあって、中心には熱がある。普段は見えません。見えないまま、私たちは地表で暮らしています。
そして時々、下から噴き出してきます。
- 地震
- 温泉
- 火山
ここが大事なところです。これらは、地球が壊れているから起きているのではありません。
正常に活動しているからこそ、噴き出してくる。地下が生きている証拠です。
エラーは「壊れた」ではなく「下から呼ばれた」
エラーも、これと同じだと思っています。
パーミッションが違う。パスが通っていない。文字コードが合っていない。
どれも、パソコンが壊れたから出ているのではありません。普段は地表からは見えない下の層が、そこにあると知らせてきているだけです。
温泉が湧くのと同じです。異常ではなく、下が生きている証拠。
初心者の方がエラーで固まってしまうのは、たいてい「自分が何か壊してしまった」と思うからです。手が止まって、それ以上さわれなくなる。
でも壊れていません。呼ばれているだけです。
私はこの言い換えが、けっこう効くと思っています。
「壊れた」から「下から呼ばれた」へ。
これだけで、エラーが出たときに手が止まらなくなります。

サーバーが見えなくなった話
もうひとつ、私が引っかかっていたことがあります。
WindowsやMacでサーバーの勉強をするのは、ちょっと無理があるんじゃないか、ということです。
MAMPやXAMPPを入れれば、たしかにサーバーは動きます。でもあれは、サーバーを隠すための道具です。ボタンひとつで立ち上がって、ボタンひとつで止まる。
便利です。でもそれを使っている限り、サーバーというものには一生近づけません。
生徒さんで、仮想環境を怖がって、パソコンに直接Linuxを入れた方がいました。周りから見れば遠回りです。でも私は、あれは正解だったと思っています。
隠されていないものを触ったからです。
AIで、地表はさらに高くなった
ここまで書いてきて、これは昔話ではないと気づきました。
今、AIがまさに同じことをしています。
コードが書けなくても、動くものができる。仕組みが分からなくても、結果が出る。これまでで最も強力な「抽象化」です。
地層でいえば、私たちの立っている地表が、また一段高くなったということです。下の層は増えたのに、見える範囲は変わっていません。むしろ狭くなりました。
しゃべるだけで、いろんなものが手に入る。とても良い時代だと思います。
ただ、ここからが本題です。
壊れるより先に、性能が出せなくなる
これまでの話は「エラーが出たとき困る」という内容でした。
でもAIの場合、もっと手前に問題が来ます。
壊れる前に、引き出せない。
たとえば、こういうことが起きます。
- どこまで頼めるのか分からないので、小さいことしか頼まない
- 出てきたものが良いのか悪いのか判断できないので、そのまま使う
- 少し違う結果が欲しいのに、何をどう言い直せばいいか分からない
- 「できません」と言われたとき、本当にできないのか、言い方の問題なのかが分からない
どれもエラーではありません。普通に動いています。
動いているのに、持っている力の一部しか使えていない。これが一番もったいない状態です。
「使える」と「引き出せる」は別です
同じAIを使っていても、人によって出てくるものがまるで違います。
その差は、たいてい下に何があるかを知っているかどうかから来ています。
ファイルというものが分かっていれば、ファイルを扱う頼み方ができます。サーバーがどういうものか知っていれば、その話ができます。逆に何も知らなければ、聞ける範囲がそのまま狭くなります。
知らないことは、頼めません。
AIは何でも答えてくれますが、こちらが問いを持っていないと何も始まりません。そして問いは、下に何があるか知らないと出てきません。
だから、これから差が開きます
上から入るのは正しい、と書きました。今もそう思っています。
ただAIの時代は、上と下の距離がこれまでになく離れています。しゃべるだけで結果が出るので、下を見る理由が減ったからです。
だから、こうなると思っています。
同じ道具を持っていても、引き出せる量に差がつく。
エラーで止まる人と止まらない人、という話ではありません。普通に動いているのに、半分も使えていない人が増えていくということです。
そしてそれは、本人からは見えません。エラーが出ないからです。
そのとき効くのは、AIの使い方ではありません。下に何があるかを知っているかどうかです。
全部を知る必要はありません
誤解のないように書いておきます。
全員がアセンブラを書けるようになる必要はありません。0と1から勉強し直す必要もありません。私だってできません。
必要なのは、たったひとつです。
今触っているものの下に、何かがあると知っていること。
それだけで、二つのことが変わります。
ひとつは、エラーが出たときの態度です。「壊れた」ではなく「どの層で起きているんだろう」と考えられるようになる。
もうひとつは、頼み方です。下に何があるか知っていれば、聞けることが増える。問いの範囲が広がります。
この差は、思っているより大きいです。
順番は逆でいい
結論としては、こうです。
上から入るのは、正しい。楽しいし、続くし、結果が出る。
ただ、そこが全部だと思わないこと。下には五つの層が埋まっていて、何かあれば必ず顔を出してきます。
私は生徒さんに、無理に下まで下りてもらおうとは思っていません。でも「この下に何かあるらしい」ということだけは、折に触れて言うようにしています。
興味が湧いたときに、下りていける人になってほしいからです。
メモ
エラーが出たとき「なぜ動かないか分からない」と感じたら
壊れたのではなく 下から呼ばれているだけです
温泉が湧いたようなもので 地下が生きている証拠です
「どこの層から来てるんだろう」とだけ考えてみてください
それが下りていく入口になります
