まず先に言います、私は間違いなく器用貧乏です
技術選定が案件ごとにバラバラで、「どれもそこそこ書けるけど、どれも深く詳しくはない」という状態がしんどい。同世代が得意領域で登壇しているのを見て不安になる、という相談でした。
これに対して、まず先に言っておきたいことがあります。私は間違いなく器用貧乏です。
どれも深く掘り込めたことは、一度もありません。もうこれは私のコンプレックスに近いかもしれません。
この番組でもちょいちょい言っているんですけど、私はWebという仕事において技術系が何も大成できないと自分で自覚したので、ディレクターをしているという側面がどこかにあるんです。
デザインも素晴らしくはないし、フロントもサーバーサイドも、登壇できるようなタイプでは全くないという自覚があります。だからこそ、この相談はちょっと他人事に思えなかったんですよね。
受託でどれも深く掘るのは、たぶん無理なんです
その上で技術スタックの話なんですけど、これははっきり言っちゃいます。もし受託でやられているんだとすると、全部を深く掘るのはたぶん不可能だと思います。
だって考えてみてください。私のキャリアの中で、30年前にAstroもNextもなかったわけです。JavaScriptのフレームワークなんて存在すらしていませんでした。
ある程度の期間やっていると、技術スタックってどんどん新しいものが出てきますよね。誰にも負けないぜというレベルまで掘り込んでいられる時間は、そんなにないんじゃないかと思うんです。
もし本当に仕様を全部空で書けるレベルを目指したいなら、もう技術を作る側に行くしかないと思います。LinuxにコミットするとかRubyのような言語を自分で作るとか、そのくらいまでいかないと難しいんじゃないかな。
だから、器用貧乏が別に悪いわけではないと思うんですよね。しかも私たちの業界みたいに動きの早いところでは、そういうものだと受け止めてやるべきだと私は思っています。
経験は、未来で自分の意思を持って使うもの
ここが一番言いたいところなんですけど、幅広く経験できること自体と、その経験を未来で使うことは、全く別の話なんです。
私はサーバーサイドで言うと、最初にCOBOLをいじって、大学ではFortran、それからVB、C++、Perl、PHPとやってきました。文法や仕様はそれぞれ違いますけど、「ああ、こうやって動くのか」という勘所がわかるようになったのは、いろんな技術スタックを学んできたからじゃないかと思うんです。
PHPを最初にいじった時なんて、Perlに比べてなんて簡単な言語なんだと感動したんですよ。そういう気づきをちゃんと持てるかどうか、なんですよね。
未来を優位にするのは、その経験を使うか使わないかです。経験をしていたから有利になるんじゃなくて、その経験を技術としてちゃんと使うかどうか、という意思の話だと私は思っています。
たとえば私が今こうしてポッドキャストをやれているのも、昔、声に関わる仕事を多少なりともさせていただいた経験があるからです。それを「今は自分はWeb屋だから関係ない」と思うか、ちゃんと使うと決めるか。その違いなんですよね。
だから、のんべんだらりと10年20年やっても次につながらない人もいるし、5年しかやってなくても深い経験として自由に使える人もいる。要は意思の問題なんです。
フロントエンドの「専門性」って、技術の名前じゃない
では自分の専門性をどう育てるか、という話です。
フロント側で何が得意かというのは、NextやAstroが使える、ということじゃないと思うんです。その結果として、表示速度に対してどうするかとか、データの構造化とか、昔で言えばセマンティックなHTMLが書けるかとか。そういうことなんですよね。
技術がどう変わろうと、Webとしてあるべきものはこうで、それに対しての技術実装ができる。これがむしろ自分の専門性じゃないかと思うんです。
私がフロントをゴリゴリやっていた頃も、セマンティックに書くのは当たり前でしたし、WCAG ── Webコンテンツのアクセシビリティに関する国際的なガイドラインやWebのJIS規格を見なくても、Aレベルくらいは普通に書けました。それはフロントエンドエンジニアなら当たり前ですからね。
SEOとは何かを自分なりに調べて追いかけられるか、とか。そういうところが専門性であって、HTMLを書けること自体は専門性じゃないと、私はずっと自分で思っていたんです。
なので、案件で選ばされる技術というのは、何が来てもやるぞという覚悟の問題かなと思います。あんまり悔いをせず、頑張っていただければと思いますよ。
まとめ
器用貧乏をこじらせてきた私が言うのもなんですが、いまの時点では「器用貧乏は悪くない、大事なのは経験を未来で使う意思だ」と考えています。技術の名前ではなく、Webとしてあるべきものを実装できる力を専門性と呼びたい。そんなふうに思っています。
- 受託で全部の技術を深く掘るのは、たぶん無理。動きの早い業界ではそういうもの
- 幅広い経験があること自体と、それを未来で使うことは別の話。使うかどうかは意思の問題
- フロントエンドの専門性は技術の名前ではなく、表示速度やセマンティックなど「Webのあるべき形」を実装できる力






