いつも通り色々やってたら月の後半になってました。

この本は向いの研究室で置いてるのを見て良さそうと思い購入し、そのままになっていた本です。

僕は C 言語自体はあまり使わないので、中途半端な知識でしたが、丁寧に書かれているのであまり悩まずに読む事ができました。

C 言語の構文はなんとなく分かったけどもう少し発展的な内容を勉強したい人に良いのかなぁという印象です。

内容

構成としては、C の基本であるリスト構造を理解した後、ソートアルゴリズムに入る流れです。割とソートアルゴリズムにページを割いているのでこの辺りで実装力を上げましょうという筆者の言外のメッセージなのかも知れません。

ソートが終わると文字列のマッチと正規表現に入ります。この辺りはオートマトンの話になるので、情報の学生では無い (オートマトンを勉強した事が無い or 理解していない人を含む) 場合、少し辛い話になるかも知れません。まぁここまで読み進めている段階で読み切れないなんて事はそうそう無いと思いますが。

最後は動的計画法とメモリ処理で締めくくっています。実はこの辺りを一番楽しみにしていたのですが、あまり話が無く、少しばかりの解説で終了しています。メモリの扱いも特に GC に興味があったので残念です。ページの都合もあるでしょうし、少しだけであれば書いていましたが概要程度で、やはりそれ専門の本を読むしか無いみたいです。

まとめ

情報の学生向けに書かれたのだろうなぁという文体で、表現も解説的に書いていたので一つ一つ試して行きたい人には非常に向いている本でした。特に、サンプルのコードが全て書かれている訳ではなく、解説している部分のみを載せている辺り非常い好感が持てました。完全にコードが載っているとノイズが邪魔で読み辛いですし。

完全に最初から勉強したい人にとっては、そこが逆に難易度が上がっている感じはしますが、そもそも C を勉強する為の本では無いですし、構文自体はそれなりに把握してからこの本を読む流れでしょうか。

後、読んでいてふと思ったのですが、この手のグラフ (や連結リスト) が登場する話って慣れる迄は想像力が物を言う世界な気がします。
実際に文字列をアウトプットしても、ターミナルに文字が出るだけだったりするとパッと見で判断出来ないので何か良いのが欲しいです。Python だと NetworkX があるっていうのは知っているんですが、Ruby では無いんでしょうかね。