tetsunosukeのnotebook

tetsunosukeのメモです

いわゆる勉強というものを考えたときに。

プログラムっておいしいの? に自分も一石投じておくことにする。

まず、プログラムを勉強するにあたって、師匠の存在は大きい。これは間違いないと思う。今自分はJavaと.NETの家庭教師をちょっとやっているのだけど(PHPの引き合いもありがたいことにあります)、始めの立ち上がりをできる人に聞けるというのはとてもラッキーなことだと思う。

まあ、かなり多くのことにおいて、師匠の存在というのは大きいかなと思う。自分ができるようになった何かで、直接教わった覚えのないことといえば、野球のピッチャーのフォームくらいかな?という気がする。あれはプロのピッチャーを見よう見まねで初めて、その後に野球の本とか見て、握りを覚えたりフォームを覚えたり研究した気がする。それは小学生のときのこと。

次に、「勉強」というものを考えたとき、それは中学から高校の受験勉強に関しての時期だったと思う。

自慢でもあり恥ずかしいことでもあるのだが、自分はどちらかというとよく勉強した方だと思う。いわゆる「それなりの大学」に入るために、勉強した量はそれなりに多い。問題集も何度も反復してやったおかげで、数学だけであれば偏差値でいうところの80〜90をたたき出すこともままあった。

でも、高校一年のときにつまづいたことがある。今までの勉強スタイルが通じないのだ。何度やろうとしても、理解できない。(当時の自分を知る人であれば、その程度では「つまづいた」とは思っていなかったかもしれない。それでもクラスでは二番目くらいだったから)自分の中ではどうしていいかわからなかった。

そのときに親に頼んで予備校に行かせてもらった。そこでの先生の教え方がすごく良くて、「なんでこんなことも理解できなかったのだろう?」と思うくらいになった。ただ、反復練習は、できるようになるまでは必要だった。

プログラムをはじめたきっかけは、大学に入ったときにWebの何かをいじってみたくてHTMLを勉強した。当時はまだメジャーじゃなかったCSSも勉強した。Javascriptは少しだけ書いた。PHPなんて知らなくてJavaアプレットを見よう見まねで書いたり、PerlのCGIをいじった。でも、そこではついにプログラムを理解することはなかった。

仕事でプログラムを初めて、二年くらいしたとき、確かに、それなりには書けるようにはなったけど、まだまだできるようになった気はしなかった。先輩も自分のコードを見てくれないので、「なんとか動くコード」を作り出していた(ひどい会社だ(笑))

そこでPHPに出会った。

PHPの大きな利点は「Webに特化していること」と「関数がたくさんあること」と「ライブラリが読めること」だと思う。

関数がたくさんあることというのは、たとえばfile_get_contentsという関数みたいに、他の言語なら10行くらい書かないと実現できないコードが一発である。これは気楽に書けてよかったなあと思う。

ライブラリが読めることというのはPEARのことで、PEARはダウンロードすればソースが読める。実は初めてPHPに触ったときにやったことは、PEARのAuthというクラスのソースをプリントアウトして読むことだった。動かしつつ、どうしてそういう動きになるのかを理解しようとした。id:amachangも、そんな勉強法をすると昔書いていた気がする。

それが理解できてから、他の言語の概念も理解できたし、PEARのソースを読むことでオブジェクト指向の作り方の実例も理解できるようになった。今まで断片的にしか理解できなかったことが、急に理解できるようになった。だから自分はPHPとの出会いを感謝している。

でも

自分に取っては師匠がいない。素晴らしい人たちのやっていることを見ていれば、手本にはなるのだけど。

あと、反復練習がない。やっぱり、正解があって(プログラムも基本には正解があると思ってる)それを反復練習しないといけないんじゃないかなと思ってる。昔数学の参考書で「チャート式」というのがあったけど、そんなような本があると良いなと思うし、書きたいと思う。なんとなく、入門者がしっかりと育つ土壌って、そういうところにあるんじゃないのかなあと考えるのでした。