[ Amazon ] ISBN 978-4-87311-478-1, \1800
UNIXのテキストを書き直している。まだ作業途中ではあるが,まぁ型は決まってきたのでとりあえず公開してある。これから更に2章分追加して全体を整えて,最終締め切りが2週間後,2/18(金)なので,そこまでギリギリと作業を行うつもりである。
UNIXテキストとか言いながら,実質はC/PHPプログラミングのワークブックであって,演習のための最低限のCUI操作を教えたあとは,文法なんか後回し,とりあえずこう書けばこう動く!,分かったらちみっとカスタマイズしてこういう動作をするようにしてごらん,という調子で自学自習ができるようになっている。・・・というのが謳い文句だが,正直言ってこういう作りのワークブックを大学のテキストとして用意するってのはどーなんだと思わなくはない。
高校までの数学を単なる計算演習だと思い込んで疑わない層に,定理の証明を考えて次の定理を導く手がかりにし,理論体系の構築まで理解させる,とゆー本来の数学を教えることは至難の業である。プログラミングも同様で,文法を教えてサンプルプログラムを実行してその動作を理解し,言葉だけで書いてある演習問題を自力で解かせる,とゆーごく普通の「学習」が可能なのは結構まともなレベルなのである。試行錯誤を自分で行えない,つまり,躓いたら起き上がれない状態の子供に,「自分で立て!」とスパルタ教育をしたところで虐待,下手すりゃアカハラになる。「昔はこうやって鍛えられたもんだ」などという世迷言は通用しない。職のない優秀な若いDr.はゴマンといるんだから,昔を懐かしむだけの馬鹿ジジイはさっさと引退して席を作ってやれ。
今求められているのは,学生個々人のレベルに合わせた学習であって,逆に言えば,学習の「結果の平等」は二の次でいい,ということでもある。受講生の満足が第一なのだから,満足した結果が世間的にまるで通用しないレベルであってもそれは「自己責任」。ただし,世間並みの知識は与えましたよ,拾わなかった(or 拾えなかった)のはそちらの責任でしょ?,という説明責任を果たすぐらいのことは教師の最低限のモラルである。安くない学費を貰っているんだから,当然である。
だから,このスタイルのワークブックが,現時点でワシが考えるベストな形なのである。とりあえず書いてある通りに打ち込めばコマンドもプログラムもスクリプトも動く。でも,打ち込みながら「どういう原理なんだろう?」という「学習意識」が働かなければ,単なるキーパンチャーとして半期の講義を終えることになる。逆に,きちんと理屈の理解ができていれば,文法理解は荒っぽいけど,「こーゆーことができるんだ!」という,それなりに有用な経験として作用するはずである。この学習効果の差を,逐次レポートや提出課題を出させて確認し,成績を付ける。キーパンチャーでも真面目にやっていればC,そこそこ理解できていればB,完璧に理解して少し抽象度を上げた課題もこなせるようならA,という感じである。・・・ま,そーゆー講義ができているか,この評価基準がしっかり守られているかと言われれば,マダマダ,なのであるけれど,理想はそんな感じ。それを実現するためのテキストが自作のワークブックなのである。
しかしながら,本来のプログラミング教育ってこんな安易なモンじゃないだろう,という割り切れない気分はまだ残っている。本書は,O'Reillyのプログラミングテキストとしてはかなり薄手ながら,ワシが未だに未練を残している「本来のプログラミング教育」を実現したものとして,折に触れて読み返したい「スタイル」を持ったお手本なのである。
PHPのテキストと言えば,同じくO'Reillyから出ているPHP本が筆頭であろうが,これをテキストとして使うのは,少なくとも日本の2流以下大学では無理である。せいぜい参考書として紹介し,その中から適切な解説を抜粋して講義のネタに使うぐらいが関の山だ。O'Reillyに限らないが,邦書のPHP本でも講義テキストとして使える適度な厚みを持ったものは殆どない,とゆーのがワシの実感である。分厚すぎるのである。
その点,本書は理想的だ。本文は158ページしかないが,PHPの文法の解説からデータベースプログラミング,クラスの例示,JpGraphによるグラフ作成からPHP 5.3の新機能の解説まで,短いが要点を踏まえた文章で綴っている。欧米人の書いたものってホント分厚くて嫌になることが多いんだけど,これは真逆。まぁ,「言いたいことはコードに書いてあるから読み取って」とゆーことなんだろーな。具体的な例を次々に"Good Parts"として紹介していくのはコギミ良くて素敵だ。
何よりいいのは,ちゃんと解説文を読み解いて「機能」を頭の中で咀嚼して進んでいかないと,まるで学習ができない,という点である。打ち込めば動作するコードが書いてはあるのだが,文章による解説の補完という程度のものが多く,それらのコードの動作を理解するためにはそれ以前の記述をきちんと頭に入れておかないと理解不能という構造になっている。普通のプログラミングのテキストってこーだったよな,と思い起こさせてくれるスタイルの入門書なのだ。
PHPに限らないが,オープンソースな開発環境はリファレンスを必要なときにオンラインで参照するのが普通だ。検索するのは当たり前だし,PHPなら公式マニュアルを使わない開発者は皆無だろう。だから分厚い解説書はもはや不要・・・とは思わない。むしろ,きちんとした解説をしたいと思うのなら,ますます分厚いICT本にならざるを得ないのだ。
それは,断片的な知識を探すことが容易になった今だからこそ,それらを有機的につなげる糊としての解説がますます重要性を増しているからに他ならない。誰でも容易に入手して使えるパーツがゴマンとあるからこそ,それらの組み合わせの数は膨大なものになるのだ。どれをどう組み合わせてどういうことができるのか?・・・初心者であればあるほど,自身にあったレベルの入門書が,このインターネットに散らばる知識の集め方と使い方を例示してくれる最初の羅針盤として不可欠なのだ。羅針盤としての入門書としては,しかし,薄いに越したことはない。・・・このあたりのサジ加減が難しい。
ワシが書いているワークブックは最底辺層を掬い上げて,情報社会に飛び込むための助走をさせる程度を目指している。しかしそれでは「やりがい」を見出せない,学習の甲斐がない,というちょっと意欲のある向きが最初にPHPに取り組むための入門書として,良いパーツ(The Good Parts)を手際よく解説している本書はお勧めのものと言えるだろう。