『プログラムをつくるとは?――できるプログラマーの発想法――』
大澤 文孝(著)
2007年
工学社
☆☆☆☆
個々の「プログラミング言語」に入門する以前に理解しておくべき「プログラミング」入門。非常に簡単にではあるが、コンピュータの動作原理から話を始め、プログラミングの本質とは何か、現在のプログラムの構成の仕方、現在主流のプログラム開発環境はどのようなものか、等について、かなり広い見取り図を示す。プログラミング未経験者で、体験しながら学んでいくのが苦手、始める前にあらかじめ(相当大きな)全体像を把握しておきたい、というタイプの読者向け。僕はまさにそういうタイプの理屈っぽい人間なので、(この本によって新たに得られた知識は何もなかったけれども、充分に)面白く読んだ。実践的な内容の本ではないので、「できるプログラマーの発想法」というサブタイトルは、ちょっと言い過ぎかな、と思うが。
僕がプログラミングに対してわりとしっかりしたイメージをもてるようになったのは、(もう随分昔のことだけど)MS-DOSの仕組みやアセンブリ言語についての本を何冊か読んだ頃だと思う(正直に言うと、アセンブリ言語でプログラミングなんてしたことありません。本を読んだことがあるだけ)。なるほど、コンピュータってこういうものか、プログラムってこういう風に実行されていくのか、BIOSやOSの役割ってこういうものか、と納得できたのが大きかった。変数名って要するにメモリの特定のアドレスをわかりやすい名前で呼んだものなのね(そして、アドレスを数値としてプログラムに書き込まなければならないのだとしたら、すぐにトンデモないことになるな)、とわかれば、Cの壁「ポインタ」も怖くない(これまた正直に言うと、僕はBASIC系の人間なので、C言語でポインタを使うようなプログラムなんて書いたことありませんが)。
著者は、プログラマには知識と知恵が必要だと言う。知識とは、ハードウェアとしてのコンピュータの動作原理、個々のプログラミング言語の文法やライブラリ・APIの使い方、等についての知識。知恵とは、そのような知識を前提に、今行いたい処理をどのように(数値演算と条件分岐の組合せで)実現するか、という知恵。コンピュータの動作原理について簡単にでも知ることは、素人プログラマにとっても大きなメリットだと思う。これは、普通のドライバーだって自動車の走る原理を知っていた方が上手に運転できるのと同じことだ。情報処理技術者試験の基本情報技術者(昔の第二種情報処理技術者)の勉強をしたり、今なら『プログラムはなぜ動くのか(第2版)』(矢沢久雄 日経BP社 2007年)あたりを読めばいいのだろうけど(僕はまだ読んでない)、素人の独学プログラマでそこから始める人は多くはないのではないか。本書は記述も簡潔でコンパクトにまとめられた良書だと思うので、理屈っぽいプログラミング未経験者にまず一読してみることをオススメする(理屈よりまず体験、というタイプの読者には敢えて勧めはしないが)。
また、コンピュータの動作原理から話を始めるような初心者向けの本の中には、オブジェクト指向やイベントドリブンの概念にまで話が辿り着かない本も多いと思うのだけど、プログラミング初心者だって現在それらを避けて通ることは不可能だ。本書はあくまでも2007年時点の視点に立って書かれていて、昔の本の単なる焼き直しではないという点もポイントだと思う。
本文150ページ程度。

0