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

C言語プログラマが読むべき3冊の本

 ここ最近は、今年度から就業したといった事情でCを使って本格的な開発を始めた人が少なくないと思う。そこで今回は、C言語を使う人にとって役に立つと感じる書籍をいくつか紹介してみる。

 なおいい本というのは本当に沢山あるのだけれど、今回は普遍的に価値のあるものとして3冊に絞ってみた。以下優先度が高い方から並べてみる。


Amazon.co.jp: プログラミング作法: Brian Kernighan, Rob Pike, 福崎 俊博: 本
 C言語での開発や構造化プログラミングといった古典的(決して悪い意味ではない)な観点から、設計やテスト、デバッグといったソフトウェア開発のノウハウ・技法を解説したもの。内容は長年にわたって通用するほど洗練されていて、様々な技術が生まれている現在でも全然色あせてない。ここ最近のソフトウェア開発のノウハウを紹介する書籍はJavaといった最新の開発言語に依存していることが多いのを考慮すると、C言語開発者にとってこれはかなり希少な存在といえると思う。


プログラミング言語C ANSI規格準拠: B.W. カーニハン, D.M. リッチー, 石田 晴久: 本
 C言語のバイブルと位置づけられているK&Rの第2版。C言語規格C90のサブセットとしても通用するため、言語仕様の把握にも使える。また記載されている問題は良問が多く、初心者を卒業したかどうかの判定に有効だとよく言われている。解説が網羅的なので、リファレンスとしてかなり優秀な本。


珠玉のプログラミング―本質を見抜いたアルゴリズムとデータ構造: Jon Bentley, 小林 健一郎: 本
 C言語や構造化プログラミングの世界(一応C++も出てくる)でのデータ構造やアルゴリズムを解説した書籍。効率化とアルゴリズムの評価についての説明が詳しく、C言語開発で有効な、効率的で作りこまれたイディオムを学ぶことができる。組み込みのような、高速化やリソース効率化の優先順位が高い開発現場にいるなら、ぜひ読むべき本。


 なお注意として、この3冊はいずれも入門書として扱われていない(K&Rを入門書として扱う事例を見るけど、挫折のリスクが高いので個人的にお勧めできないと感じる)。そのためこれらの本に取り掛かる際は、事前に平易なC言語の入門テキストと、データ構造・アルゴリズムの入門テキストに目を通しておいた方が、理解がより深まる点で無難だと思う。