「事前読み込み」と「遅延読み込み」

WEB+DB PRESS 総集編 [Vol.1?60]

WEB+DB PRESS 総集編 [Vol.1?60]

大塚知洋(http://blog.ozacc.com/)さんの「WEB+DB PRESS 総集編」の記事
「限りある時間と勉強」にて、目から鱗だった事について。

ITの世界はドッグイヤーで、技術は日進月歩。次から次へと新しい技術が生まれる。
ぼくらエンジニアは、これら技術とどう付き合えばいいのか?

大塚さんは、こう述べる*1

その技術が必要になったときに、本格的にドキュメントやソースコードを読んだり、自分でコードを書いたりして学習すればいいんです。
Lazy Loading(遅延読み込み)というプログラムのデザインパターンがあります。
メモリの効率利用や処理速度向上のために、あるオブジェクトが必要になるまで生成しない、読み込まないというものです。
技術の学習についてもLazyな手法を踏襲すればいいのです。
プログラミング周りの技術のほとんどは、プロダクトを作るためのツールに分類されると思います。目的であるプロダクトを作るために必要だったり便利だったりするツールがあることがわかってから、その使い方を学べばいいのです。
あれもこれもとPre-Loading(事前読み込み)しておく必要はないのです。
そんなことをしていたら人生の効率が悪くなってしまいます。
(WEB+DB PRESS 総集編 p86-87)

ただ、大塚さんはPre-Loadingしておくべきものもある、と話を続けます。

しかし、必要になってから学べというスタンスだと、短い納期の仕事の場合に間に合わなくなってしまうかもしれません。
だから効率的に学ぶ必要があります。
そのためには技術やプログラミングの「学力」(これは文字通り「学ぶ能力」のことを指します)が必要になります。
この学力はプログラミングの基礎知識を習得することによって得られると考えています。
それゆえ、この基礎知識だけは若いうちの時間を使って積極的に学び、脳味噌のしわに刻み込んでおくようにするのです。
(WEB+DB PRESS 総集編 p87)

この後、Webアプリケーションプログラマとして、Pre-Loadingしておくべきものは何だ?
となって、以下の5つが挙げられました。

プログラミング言語を2つ
オブジェクト指向の理解
・リレーショナルデータベース(SQL)
・HTTPプロトコル
・HTML

私は、プラットフォームエンジニアもどきですが、上記と似たようなものだと思います。
(ITSSで選択した職種なんですが、純然たるものではないので)
が、やはりインフラ系の人間として、他にどのようなものが挙げられるでしょうか。
う〜ん、なんかいっぱいあるような気がする。
今後、Pre-Loadingしておくものを見極めて、まとめてみたいと思います。

この後も、大塚さんの話は続きます。

将来採用するに値するもの(Lazy Loadingするものとして=引用者注)なのか判断するヒントになる程度の情報には習慣的に触れるようにしておくことが大切です。
(WEB+DB PRESS 総集編 p88)

"あるを知る"ことが必要だということですね。
手を出さないにしても、そういう技術が"ある"ということを"知っている"必要があります。
そういう、あまりエネルギーのかからないもの(そうでもないかな?)については、いろいろとアンテナを張っておくべきですね。

というか、原文引用しすぎたかな。申し訳ないです。。じゃ済まないか。。。
でも、話は上で紹介したものだけでなく、その後に英語や質問についての話(短いですが)が続きます。なので、ぜひ未読の方は雑誌の方もご覧になってください(罪滅ぼし)。

*1:小飼弾さんもここで紹介する学習法について述べている、と紹介している。http://blog.livedoor.jp/dankogai/archives/50999338.html http://blog.livedoor.jp/dankogai/archives/51047035.html