読者です 読者をやめる 読者になる 読者になる

Blank?=False

「呉下の阿蒙にあらず」をモットーにしたITエンジニアの日々

プリンシプルオブプログラミングは常に机の上に置いておきたい1冊だった

プリンシプルオブプログラミングを読みました。
感想としては文字通り「辞書」だったなぁ。という感じです。

この本を知ったきっかけ

この本の作者上田勲氏が運営しているストラテジックチョイスというブログがあります。
d.hatena.ne.jp

このブログ上で本を出します!とあったので非常に興味をもって、速攻で買いました。
※第1版第1刷だったり…
応用情報技術者試験などですっかり忘れていたのですが、試験も終わって時間ができたので読みました。

どんな本?

プログラミング、ソフトウェア開発に関する様々な原理原則を広く浅くかいた本。
ソースコードの書き方、プロジェクトの進め方、チームの進め方、開発手法等様々なジャンルの原理原則を、 様々な参考文献を元に体系的にまとめている辞書のような本。

特徴

すべての原理原則を1定のフォーマットで説明する。

非常に読みやすく、また5W1Hに従いどういうこと,どうして,どうすればの3つを説明するため、原因から対策までがざっと理解しやすくなっています。

コード例が一切ない

ソフトウェア開発やプログラミングの本としては非常に珍しく、コード例が一切なく、抽象的にかかれています。

これについて著者は

実用的なコード例は自分で考える

と述べてます。

これは、適用例を具体的にしないことで世界を狭くしないようにするため、という意図があるとのことです。
このため言語に縛られずにプログラミングに共通する知識として捉えやすくなっています。

ただし、自分でコード例を考えるときに経験が少ないとコード例が思いつかず、理解がなかなか進まないかもしれません。
そういうときは参考文献にコード例が有ると思いますのでそちらを読むと良いと思います。

すべての原理原則に参考文献がある

この本は、作者が様々な本を読んでそれらをまとめ上げ、わかりやすく記したものです。
そのため、すべての原理原則に参考文献が記されています。

その参考文献は、達人プログラマー,リファクタリング,CodeComplete等ソフトウェア開発の名著と呼ばれるものが多く、 読んだ人も多いだろうという本が多くでてきます。

そのため、それらの本を完全に理解している人はもしかしたら大体知ってるよと思うことばかりかもしれません。
実際に、自分が読んだときに既視感を感じる原理原則があり、その参考文献を確認したら持っている本でした。

ですが、この本は非常に多くの参考文献がありますので、もしかしたら自分が読んだことがない参考文献もあるかもしれません。
そこに書かれた原理原則は自分の知らない知識かもしれません。
そういったものを探す楽しみもこの本には有ると思います。

人に薦められる?

もし、この本が気になるかたは、まず作者のブログを覗いてみてください。
d.hatena.ne.jp

このブログに書かれた記事が元になってそのまま本になった、という感じのものです。
目新しい技術や開発プロセスが書かれているわけではありません。
経験を積んだ人ならあたりまえのようにやっていることが書かれているだけです。

しかし、ジャンル問わずそのあたりまえをたくさん集め、読みやすく体系化してあるものはこの本以外を知りません。
ちょっとあの原則の意味はなんだったかな、と思ったときに辞書のようにも使える本です。

経験が少ない人が最初にこの本を取った時、全ては理解できないと思います。
ですが、1度読んだ後にプログラミング、また読んでプログラミング…とやっていくうちに次第にすべて理解できるようになるでしょう。
この本はチームを組んで開発したり、継続発展していくソフトウェアの開発の経験と知識が結びつくことで初めて意味がある本になると思います。

この本の副題に3年目までに身に着けたい一生役立つ〜とありますが、完全にプログラミングの経験がない新人に読ませる本ではなく、 2年目に入ってプログラミングとはなんとやらを理解してきた頃に読めば、丸3年が経つ頃にはすべて理解できるようになるのではないかと思っています。

また、特徴に述べたように非常に沢山の参考文献から絞り出された101の原理原則からなっていますので、自分の知らない原理原則やその元になった本を見つけるのにも非常に有効であると思います。

問題点としては、コレも特徴に書いたように既視感を感じる項目があるかもしれないこと、完全に理解したければ参考文献を読む必要があること、の2つになります。

この本の使い方としては、辞書のように使う、また、どういう原理原則があり、理由・対策などをざっと捉え、より深く知りたければ参考文献を読む、という使い方になるのではないでしょうか。
ということでこの本は必要なときにサッと調べられるように机においておきたい1冊でした。