Okachi.js 終了後、中華料理屋にて、どんな風に新しい技術を勉強しているの?という質問が出たので、それについて書いておこうと思います。
うーん、参考になる人がいるかどうか不明ですが。
例えば、新しいフロントエンド技術を勉強しようかなと思ったとします。でもその場合も、実は勉強自体はもう少し前から始まっていて。
まず、毎年一つずつプログラミング言語を学んでいこうと思って始めるところから一年が始まっています。つまり、年初にベースとなる部分の勉強がスタートするのです。今年でいうと Rust ですね。これがハマって、何年もやることもあれば 1ヶ月くらいで投げ出しちゃうものもあります。投げ出してもいいんです。とりあえず挑戦するのです。
ハマってきていい感じだと感じたら、その言語で出来ている WAF (Web アプリケーションフレームワーク) を探します。
なんで WAF を探すのかというと、目標としてだいたい、自分が作っているツールやサイトのリニューアルのために勉強を兼ねて新しい技術を使うことが多いからです。
僕の場合、自分がずっと作り続けている クローラー & キャプチャツールをその言語にて再実装することが多いです。(クローラー & キャプチャツールではなくて別の自分製ツールであることもあります)
その時のポイントは、バックエンドだけとか、フロントエンドだけとかにせず、全体的に新しい (というか自分が勉強したいもの) 技術にするということです。
例えば、以前 Clojure 言語をやるぜーってなったときは、
- Clojure : プログラミング言語
- compojure / compojure-api / immutant : Web アプリケーションサーバー周り
- re-frame : React のラッパー
- garden : CSS を書き出すライブラリ
みたいな感じで、その時に自分がやりたいフロントエンドも含めて全部入りスタックを組み立ててみています。どういうスタックにしようか調べていると、いろいろな知識が集まってきますし、お試しをすることで知識も増えます。
作ろうとするもの自体は既存のツールなので、データベースはすでに定義済みだし、ロジックもわかっているので、一から何か設計して作るという感じになりません。そのため、学習と開発に割と集中できます。認証、バッチ、外部ライブラリとの連携など一通り Web アプリに求められる機能があるので、あの言語でやってたあの機能なんだっけって感じでロゼッタストーン的に調べていく形で学習が進みます。
もちろん、最後まで作りきれないこともあります。それでもそこまでのプロセスで得た経験は無くなったりしないのでよしとしましょう。
このキャプチャ & クローラーは、年々高度になっていっていますが、最初はどういうスタックだったかというと
- Perl CGI (見よう見まね程度) + cron (これも見よう見まね)
- exe で動く外部ライブラリの呼び出し (画面キャプチャ用)
- データベースとは接続せず、テキストファイルに出力 (手動バックアップ)
- HTML はテーブルレイアウト
- CSS とかはなし
というレベルでした。Perl といっても、ガッツリしたものではなくて、CGI 入門をかじった程度のもの。今見るととてもしょぼい。でもそれがあるから今があるのです。
その後 PHP 化してみるとか、Bootstrap 入れるとか jQuery 導入とかいろいろとスクラップ & ビルドをして何度もリニューアルしています。新しいインスピレーションを受けたら、新しいデザインを試したり、新機能を入れたりします。
僕は全体から細部へと興味の対象が移っていくタイプの人間で、まず全体を作りたくなり、その時点では、細部は割とどうでもいいです。その後個々のレイヤーで気になったところをより勉強していき、飽きたら次のスタックへ移ります。技術を新しくすると、その技術には今までの反省点などが入っているため、自分の中の感覚もアップデートされていき、今に至るという感じなのです。
ということで、自分が必要とする同じようなものを、時代に応じた違うスタックで、何度も作る、というのが僕の技術勉強法と言えるかもしれません。
つまり、僕からの自分に似たような人へのアドバイス的なものがあるとしたら、あなたの作りたいものが作れる、あなただけのスタック (テンション上がる組み合わせ) を見つけよう になります。
ARTICLES
AUTHOR

原 一浩
カンソクインダストリーズ代表 / グレーティブ合同会社代表
1998年に独立し、同年、ウェブデザイン専門のメールメディア DesignWedgeの発行を開始。Webデザイン業の傍ら、海外のWebデザインに関する情報発信を行う。
雑誌への寄稿多数。主な著書に『はじめてのフロントエンド開発』『プロセスオブウェブデザイン』、『Play framework徹底入門』、『ウェブデザインコーディネートカタログ』など。自社製のWebデザインのクロール&キャプチャシステムvaqumをベースに、様々なリサーチを行っている。Web 検定プロジェクトメンバー。