プログラミング技術・ソフトウェア工学の本

試したことをとりあえずメモに!
スポンサーリンク

ソフトウェア関係で分類できない本は、とりあえずこのカテゴリにリストアップしました。

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

一時期かなり話題になって、売れた本です。技術的な本と言うよりは、読み物です。これは悪い意味ではなく、スラスラ読んでいけると言う意味です。

内容的には、CPUの仕組みから、メモリ・ディスクとCPUの関わり、代表的なアルゴリズムなどが記されています。また、浮動小数点の仕組みや、スタックの仕組み、簡単なアセンブラにも触れています。

情報工学系の大学の授業を受ければこれらは習うと思いますが、それ以外の人は系統的に習う機会がないかもしれませんので、オススメします。

この本を読んだからと言ってプログラムが書けるようになるわけでもないと思いますが、知識を整理やはじめの一歩として十分活用できます。

オススメ度:★★★★★

ライティングソリッドコード―バグのないプログラミングを目指して (マイクロソフトプレスシリーズ)

この本には、バグや不具合を未然に防ぐ為のテクニックがかかれています。

ソフトウェアが大型化するに従って、デバッグは泥沼化していきます。それを避けるためにもバグを未然に防ぐことが大切になってきます。

この本に書かれているテクニックは、複数人数で一つのソフトウェアを構築するときに最も効いてくると思われます。チームプログラミングするひとにはぜひ一読をオススメします。

私は恥ずかしながらこの本でASSERTの有効性を認識させられました。この本は私のプログラミングスタイルに影響を与えた1冊です。

オススメ度:★★★★★

CODE COMPLETE 第2版 上
CODE COMPLETE 第2版 下

ソフトウェア開発に関する辞書です。

ソフトウェアの設計からコーディング・デバッグ・チューニングにいたるまでの各ステージでのポイント・テクニックがカバーされています。この本に記載されているマイクロソフトで実践されているそうです。

個人的にはこの本に書かれているテクニックが細かすぎるとか思うこともありますが(ハンガリアン命名規則とか)、WindowsやOffice等の巨大なプログラムのソースコードを一定のレベルに保つのには必須のテクニックなのでしょう。自分のかかわっているプロジェクトにフィットする部分から取り込んでいけばよいと思います。

また、各章には参考文献が解説付きでリストアップされています。日本語訳の本が出版されている場合には、ちゃんと邦題も記載されており役に立つと思います(この本の出版時時点での情報ですので、邦題が記載されてなくても出版後に翻訳されてるかもしれません)。

ただ、いかんせん厚すぎます(上下合計で約1200ページ)。私は全部読むのに非常に時間がかかりました。辞書として備えておいて、必要な部分からつまみ読みするというスタイルでも良いかもしれません。

オススメ度:★★★★☆

GNUソフトウェアプログラミング ―オープンソース開発の原点

この本は代表的なGNUツールを取り上げ、使い方を簡単に紹介しています。まさに広く浅くと言う感じです。

GNUツール群には非常に強力なツールが揃っています。そのほとんどはLinuxやCygwinに付いてきます。しかしツールの存在を知らなければまさに宝の持ち腐れです。

この本はGNUツール群(のほんの一部)のガイドブックです。この本で便利なツールを見つけたら、それぞれの本や資料を探して理解を深めましょう。

オススメ度:★★★☆☆

プログラミング作法

久々に読み直してみました。

この本には、設計からコーディング・デバッグ・テスト・チューニングまで、ソフトウエア開発の全てのステージにおける哲学が述べられています。例示されているコードの多くはCですが、この本にかかれていることはおそらく全てのプログラミング言語に適用することが出来ます。

本格的なソフトウエアの開発をする必要がある人は、読んでおくべき本です。巻末のルール集は会社の壁にでも貼っておいても良いかもしれません。ちょっと訳が読みにくいところもありますが、おおむね良好です。ぜひ買いましょう。

難点を挙げるとすれば、各節の末尾についている問題の解答がついていないところでしょうか?解答がついていないと、イマイチ問題を考える気にならないのは私だけでしょうか?

オススメ度:★★★★★

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造

読み直し予定です。しばらくお待ちください。

オススメ度:★★★★☆

人月の神話【新装版】

この本は古典的名著とされています。

題名の「人月」とは、エンジニアの仕事量を表す単位として現在も用いられているものです(1人月とは1人のエンジニアがこなせる仕事量を意味する)。プロジェクトの仕事量を人月単位で見積もり、納期から投入するエンジニアの人数を決める際に用いられたりします。本書ではこのような人月と言う単位が神話に過ぎない(=現実に則していない)と言うことを看破しています。

副題の「銀の弾」とは狼人間を一発で撃退することのできる魔法の弾丸のことです。つまり、この副題は、問題を一発で解決できる魔法の方法などは存在しないと言うことを意味しています。

この本でもっとも有名なものが「遅れているプロジェクトに人を投入すると、そのプロジェクトはもっと遅れる」という法則です。この法則は著者の名前をとってブルックスの法則とも呼ばれています。

このような本が20年以上前からあるにもかかわらず、今日でも人を投入すれば問題が解決すると思っている(=それしか打つ手を持たない)ひとがたくさんいると思われます。

この本は、人事権を持つマネージャにぜひ読んでもらいたいです。

オススメ度:★★★☆☆

コメント

タイトルとURLをコピーしました