兄弟たち、君たちもこんな感覚を持ったことはないだろうか?あの「頭が突然フリーズする」瞬間だ。妻の誕生日を忘れたわけでも、車をどこに停めたか忘れたわけでもない。ただ、画面を見つめて、特殊記号を打ちたいとか、エンコーディングの問題をデバッグしたいと思ったとき、突然気づくんだ。「あれ、AのASCIIコードはいくつだっけ?65だったか、97だったか?」
これが10年前なら、そんなことは問題じゃなかった。目を閉じても暗唱できた。0は48、Aは65、aは97、スペースは32、キャリッジリターンは13。あの頃は、手ぶらで16進数を書ける男だった。今はどうだ?パソコンを開くと、最初の反応は百度検索、二番目はノートを見返す、三番目はオンラインツールで調べる。
これが中年の危機だと言えるだろうか?髪が薄くなったわけでも、お腹が出たわけでもない。それは、かつて飯の種にしていた技術が、少しずつ頭から抜け落ちていく感覚だ。まるでベテランドライバーが突然マニュアル車の発進の仕方を忘れてしまうような、その慌てようは、外からは見えないが、自分自身はよく分かっている。
先日、古いプロジェクトを修正していたとき、フロントエンドから特殊文字が送られてきて、バックエンドでどうしても解析できなかった。見ると、エンコーディングの問題だった。以前なら、頭の中でASCIIとUnicodeの対応関係を即座に整理して、どのバイトに問題があるかを特定できた。ところがその日、私はその文字化けを10分間見つめていたが、頭の中は真っ白だった。結局、仕方なく「ASCIIコード表検索」という小さなツールを開き、文字を入力すると、1秒で結果が出て、解決した。
ツールは良いツールだが、心は複雑だった。かつてASCIIコード表を吐くほど暗記した夜を懐かしく思うほどだ。あの頃は入社したばかりで、師匠が印刷したコード表を渡して、「暗記しろ、これは基本だ」と言った。本当に暗記した。トイレでも暗記していた。32はスペース、33は感嘆符、34は二重引用符……今思えば、あの頃は本当に若く、必死だった。
しかし、話は戻るが、今もう一度暗記しろと言われたら、絶対にやらない。怠けているからではない。必要ないからだ。ツールはたくさんあるのに、なぜ自分の記憶力と勝負しなければならないのか?中年の知恵とは、ツールを使って力技を代替することではないか?20年運転してきたベテランドライバーに交通法規の全文を暗記させられるか?彼は筋肉の記憶と道路感覚に頼っている。同様に、プログラマーは30歳を過ぎたら、どれだけ覚えているかではなく、どれだけ速く調べられるか、どれだけうまく使えるかが勝負だ。
だから、私はその後、考えを改めた。ASCIIコードを覚えていないことは恥ずかしいことではない。恥ずかしいのは、覚えていないのに無理に耐えて、結局進捗を遅らせ、若い奴らに笑われることだ。今、私のブラウザのお気に入りには、あのASCIIコード表検索ツールが入っている。ボタンを押せば、何でも揃っている。数字、文字、記号、制御文字、はっきりと表示され、10進数、16進数、2進数までリストアップしてくれる。あの頃のしわくちゃな紙よりずっと優れている。
兄弟たち、中年の危機は怖くない。怖いのは、より良い道があるのに、わざわざ最も難しい道を選ぶことだ。覚えられなければ調べる、調べても分からなければ聞く、聞いても分からなければ検索する。このご時世、誰が頭でデータを保存するんだ?我々の頭は、ロジックを書き、アーキテクチャを考え、問題を解決するためのものであって、ハードディスクとして使うものではない。
もちろん、たまに夜が更けて静かなとき、私はあのツールを開いて、一番上までスクロールし、「A: 65」を見る。何かのためではなく、自分に思い出させるためだ——かつて私も若かった、かつて私も即座に言えた。しかし今は、この「その都度調べてすぐ使える」という安心感の方が好きだ。ツールを手にすれば、天下を取れる。これに勝るものはない。
だから、もし君もASCIIコードを覚えられなくなっていることに気づいても、慌てるな、焦るな。君は老けたのではない。進化したのだ——「人肉エンコーディング帳」から、「ツールを使いこなす上級エンジニア」へ。今回の件は、損はしていない。