プログラミングの効率的な学習の為に必要な環境についての考察(いわゆる高速道路?)
想定
これの実現に役立つ環境とは何かについて、JavaScript坂を上っている最中の経験をもとに考察してみる。
独習に役立つ環境
手軽にtry&errorを繰り返せる実行環境
例:Firebug
ちょっと書いては実行というのを手軽に何度もできると慣れやすいと思う。
Firefox+Firebugの場合はたくさんある既存のWebサイトについて、
JavaScriptでDOM操作して遊べるのが大きいのかも。
多様性に富み情報の鮮度が高いクックブック
書籍・Web等メディア問わず。
JavaScriptで該当するものは思いつかない。
クックブックがあると「ある目的を実現する為にコードをどう実装するか」のたくさんの実例に触れられるので良い。
同じ言語でのコードの書き方でも年々工夫されていっているので、
モダンなコードに触れられる方が良い。
という意味で情報の鮮度が高いというのは重要だと思う。
ホエザル本はいい本だと思うけど、コードが古くさい。
粒度の細かいライブラリ群とそれらのもくじ
例:jQueryのplugin(The domain name jqueryplugins.com is for sale | Undevelopedから探せる)
粒度が細かいライブラリは実用だけでなく学習にも有用。
なぜなら、粒度が細かければライブラリはそのままクックブックのレシピと同じものだと言えるから。
「ある目的を実現する為にコードをどう実装するか」の実例になっていない訳がない。
メンテされているライブラリなら鮮度も高いと思う。
ペアプロとか
この間、職場の後輩がeventの伝播が全然分からないようだったのでペアプロしてみた。
実例を見せてデモしつつコードを弄っていったら、腹に落ちた感じだった。
私が独学でこの辺勉強したときにはえらい苦戦したので、
「本を読むだけでは理解しにくく、感覚を身につける必要がある」ようなものについては、
ペアプロなりなんなりで感覚が身に付いている人とマンツーマンで弄ると、
効率的に感覚が身に付いて理解出来るのではないかと思う。
ペアプロで感覚を身につけ、その感覚で理解出来る範囲をがんがん独習というのがいいのではないか?
一般化
以上がJavaScriptの場合の話だけど、これはJavaScriptに限らないと思う。
「粒度が細かいライブラリ」についてはPerlのCPANがもろに当てはまるし、
CPANのソース読んで勉強した人の話も結構聞く。
なので、各プログラミング言語について、
- 言語全体を網羅した良書
- 手軽にtry&errorを繰り返せる実行環境
- 多様性に富み情報の鮮度が高いクックブック
- 粒度の細かいライブラリ群とそれらのもくじ
のリストアップ
感覚を身につけないと分かりにくい部分の洗い出し、
できればその感覚を身につける為のペアプロなり何なりのセッティング
をすれば、各プログラミングの中級者を増やす事ができるのではないだろうか?
成功すればまさに「プログラミング能力をつけるための高速道路」ではないか。