Connect Later
「何から勉強したらいいですか」とたまに聞かれる。
新人だったり、業界に入りたての知り合いだったり。返答に困る。20年以上やっていてもまだ手探りなのに、入り口の地図など描けるわけがない。
それでも昔は、roadmap.sh という GitHub リポジトリをよく紹介していた。Kamran Ahmed という人が始めたもので、フロントエンド、バックエンド、DevOps、AI と、職種ごとに「これを順に学べばいい」というツリーが描かれている。Star は 35万を超えていて、たぶん GitHub 全体でも上位に入る。エンジニア育成の文脈で、これを引き合いに出す人は多かった。
便利なのは事実だ。HTML から始まって、HTTP、フレームワーク、データベース、認証。眺めているだけで「なるほどこういう順序か」と思える。とくに独学の初学者にとって、地図があるという安心感は大きい。
ただ、紹介しているうちに気づいた。地図を渡された人で、最後まで歩ききった人をあまり知らない。
途中で別の道に逸れる。あるいは、最初の一歩で止まる。理由はだいたい同じで、「興味がないものは続かない」だった。Redux の state management を素振りで学ぶより、自分が作りたいゲームの中で詰まったから調べる、のほうが圧倒的に身につく。当たり前といえば当たり前だ。
スティーブ・ジョブズがスタンフォードで行った有名なスピーチがある。同世代でこれを観たことがないエンジニアは、たぶんいない。点と点は、振り返ったときにしか繋がらない、という内容だ。先を見通して点を打つことはできない。後ろを振り返ったときに、ああ、あの時のあれがここに繋がっていた、と分かる。
roadmap.sh は、いわば「正しい順序で点を打てば線になる」という前提で描かれている。実際にはたぶん逆で、線は事後的に現れる。あの時 Perl を触っておいたから今の正規表現の感覚がある、とか、誰も使わないモバイル向け CSS のハックに付き合ったから今のレスポンシブが分かる、とか。当時はどれも回り道だった。
だから「何から勉強したらいいですか」と聞かれたら、いまは「作りたいものか、解決したい課題はあるか」と聞き返す。それがあるなら、必要な点はその課題が教えてくれる。なければ、どんなロードマップを渡しても、たぶん歩き出せない。動く理由が、まだ見つかっていないだけだ。
本気で向き合った時間だけが点になる。チュートリアルを一周しただけでは輪郭が薄すぎて、後から探しても見つからない。詰まって、調べて、夜中まで粘った時間が、ようやく点として残る。
点そのものに大きさがある。そして点と点の距離が離れているほど、後から見える地図は大きくなる。畑違いで粘った夜が、ずっと後になって本業を助けてくれたりする。歩き続けていれば、間の点も少しずつ埋まっていく。
地図はあっていい。けれど、地図のとおりには歩けない。歩いた跡が、後から地図に見えるだけだ。