スクールアイドルです

冷やし中華はじめました

「また新しいフレームワークかよ」と言う人へ

フレームワーク」を「プログラミング言語」や「アーキテクチャ」に置き換えてもよいです。技術を点でしか把握せず、APIの羅列を単純に丸暗記しようとして破綻してるパターンが多いように思われます。API丸暗記は負担のかかる作業なので、これを毎回繰り返すとあるものを一生懸命覚えている間に他のものが出てきてスピードが追いつかなくなります。

技術開発とは大体の場合において、設計者が以前困ったことや他技術からの影響、既存の技術に対する反発を動機として生み出されます。強い動機を持って生み出された技術は、コンセプトから設計、実装に至るまで動機が色濃く反映されます。素晴らしいことに人間の論理的推論能力は他の人間にとっても再現しやすいので、利用者がコンセプトから推理可能な範囲に、実装の大半は集中していると考えてよいでしょう。

この認識を持てば、単なる実装の羅列が、多くの推測可能で知的負荷の発生しない「驚きのない実装群」と、少しの推測不可能で知的負荷が高い「驚きのある実装群」に化けるということになります。極端を言えば、常用しないのであれば「驚きのない実装群」は必要に応じて参照する程度でもなんら問題ありません。コンセプトと「驚きのある実装群」、いわゆるはまりポイントだけに注意を払えば、支払う知的コストは小さいまま技術を習得できるということになります。

厄介なのは、いわゆるハウツーや小ネタだけを延々写経しても、ほとんどの場合このような理解には至れないという点にあります。点で得る知識は他と結びつけづらく、その場限りで消費されてしまうことが多いです。本当に右も左も分からない状態であれば十分に有効な学習手段ですが。

いくつか習得すれば、時系列順に並べてコンセプト間の関係性を一貫性のあるストーリーにすることができます。つまりは現実における歴史と同じように、「影響」や「反発」などの関係性を用いて説明できる歴史を自分の中で構築するわけです。自分の中でその技術に関する歴史を構築することで、次に習得する技術とそのコンセプトを関係性の中に取り入れ、定着させる素地が出来上がります。この歴史というのは習得スピードを上げるためのものなので、別に間違えていても、人に教えたり押し付けたりしない限り問題はありません。間違えていた時はさっさと撤回しましょう。

ここまで読んで「何を当然のことを」と思った方は正解です。人間は意識せずにこういう理解の枠組みを構築できるので、意図的にやればより効率的に理解できるという程度のことです。