あなたがプログラムを理解できない10の理由:第4回

たにぐちまこと(H2O Space.)
2008-05-27 08:00:00
  • このエントリーをはてなブックマークに追加

やってみたいことがない

 学生時代はよく「テストに出るから」という理由で歴史上の人物の名前を覚えたり、英単語を100個覚えたりしたものだ。

 しかし、試験前日に勉強した歴史上の人物は覚えられないのに、ふとテレビで見たお笑い芸人は一度で覚えてしまう。英単語は覚えられないのに、ポケモンの種類は100種類以上言える。

 地理の勉強の時はミュンヘンという都市がどこにあるのかなど興味もわかないのに、いざドイツ旅行に行くとなれば、あっという間にその場所や特色なども覚えてしまうことだろう。

 そんな経験はないだろうか?

 つまり、もし皆さんが「スクリプトをなかなか理解できない」と思っているなら、スクリプトは「歴史上の人物」や「ミュンヘン」と同じ位置にあるのだ。「自分には関係のないこと」「勉強しなければならないもの」など、身近に感じることができていないために、どんな知識が出てきても実感がわかないのである。

 では、スクリプトにおける「実感」とはどういうことなのだろう。それはひとえに「作りたいものがある」のか、それとも「スクリプトを勉強したいと思っている」のかの違いである。

 たとえば、入門書などに次のような記述があったとする。

MySQLから、レコードセットを取得する場合には「mysql_query」というファンクションを利用し、取得したレコードセットを「mysql_fetch_assoc」などで取得する。

$record = mysql_query($sql);
$table = mysql_fetch_assoc($record);

echo $table['field1'];

 このとき、もしあなたが「PHPを勉強したい」という気持ちだけで入門書を読んでいるなら、上記はあくまで事実を伝えるものという役割しか満たすことができず、「mysql_query」や「mysql_fetch_assoc」という記述は、「単語」としてしか映らない。これでは、頭にはいるわけがない。

 実際にサンプルを打ち込んで動かしたとしても、「動いた」という結果だけで、それ以上のものを得ることができないのだ。

 しかしこのとき、もしあなたが「ブログのような日記管理システムを作りたい」という気持ちを持っていれば、上記の記述で「記録した日記はこうして取得することができるのか」と、実感を伴ってその知識を得ることができる。

 そして、サンプルを動かし正常に動作したとなれば、「今度はこれを日記のタイトルと、本文にして動かしてみよう」などと、新たな欲求が生まれるかもしれない。

 次々とわく欲求に従って試行錯誤していると、正常に動作しなかったり、知識が足りないことに気がつくだろう。すると、入門書にも好奇心を持って挑むことができ、「作業」や「仕事」にならずに楽しく学習できるのである。

 ただし、作りたいものを思い浮かべる時に、若干注意しなければならないことがある。それが、次のポイントだ。

  • 新着記事
  • 特集
  • ブログ