2005年1月28日
「センス・オブ・プログラミング」/「Cプログラミング診断室」
カテゴリー: [プログラミング] [本]研究室にあった本を適当にめくっていたら,おもしろそうな本を見つけました.
ちゃんと読んだわけではないですが.
扱っている範囲はやたら広いです.プログラムとは何かという話から,リソース管理などのOSの役割,モジュール化についてなどなど,いろいろなことを書いてあります.
ここに説明されている内容は,それぞれの専門書には,もちろん細かく解説されているような内容です.
深く知りたいなら,そういう専門書の方がよいでしょう.
しかし,プログラミングをする上で,さけては通れないことを,広く浅くふれています.
なかなか,最初は何が必要なのかすら分からなかったりするものですから,最低限のことを知るという意味で,初学者には,向いているような気がします.
また,ある程度かけるようになってきた人にも,是非読んでもらいたい本です.結構大事な事が書いてあったりします.
言語は特に固定せず,CやJavaを例に挙げて説明してあります.
「プログラミング言語」ではなく,「プログラミング」を取り上げた本です.
最近は増えてきているとはいえ,こういう一見分かりきっているけど明文化されていないものを,きちんと本にしているのは珍しいので,プログラムをこれから書くという人にも,プログラミング言語はかけても,ソフトウェアは作れないと言う人にも,是非勧めたいですね.
これを読んで思い出したのが,この本です.
私が,高校生の時に買った本で,これを読んでから,コードの書き方が変わり,今までまともに動かすことができなかった,ある程度規模の大きいプログラムを動かすことができるようになりました.
いわゆる,言語は書けるがソフトウェアは書けないという状態を脱するのに,役に立った本です.
この本では,うまいコードの書き方が書いてあると言うより,実際に書かれた「とんでもない」コードを材料に,こんな書き方をするからうまく動かないんだということを,一つ一つ説明している本です.
単純に,読み物としてもおもしろいと思います.
言語はC言語ですし,環境もUNIX系の環境が主ですが,他の言語や,環境にも通じることが書かれています.
一部の内容は古くなっていて,最新の言語,環境やソフトウェア工学の事情とはちょっと違いますが,ほとんどは今でも通用する基本的なことです.C言語に特有のテクニックがけっこう多いので,そういうところは他の言語ではあまり役にたたないと思いますが.
この本は,初版の内容ですが,サイト上ですべてが公開されていますので,読んでみてください.本当は,買った方がいいんでしょうけど^^;
私が当時やたらと受けた部分のうち,一カ所を引用しておきます.
ソースリストが長くなるほど、全体が見えにくくなり、取扱いの困難なソフトになっていきます。内容の理解度は、長さの2乗、3乗あるいはそれ以上のペースで悪くなります。短くできるものは短く書きましょう。キーボードを押すのも面倒だなと思いながらプログラミングしていても長くなって困るのですから、「がんがん書くぞ!」なんて頑張られたら困ってしまうのです。消す手間がかかるではありませんか。