『Pythonによるアルゴリズム入門』を読んだ

読もうと思った経緯

もともとアルゴリズムについてはなんとなくの知識があり、かつ興味もあった一方で、アルゴリズムと一緒に語られるデータ構造ってなんなのだろうという疑問を持っていた。たまたまipadアプリ「アルゴリズム図鑑」を購入して動かしていたところ、具体的に自分で実装してみたいと考えるようになった。

並行して勉強している言語がpythonであったので、pythonアルゴリズムに書かれている本の中から、

  • 新しめで
  • アルゴリズム図鑑と類似の話題を扱っており
  • コードとコードの説明がしっかりしていそうなもの

を探したところ、本書を手に取った。

どう読んだか

kindleで読んでいた。流れとしては、本文を読み、コードをPCで開いてコードの解説を読んだあと、自分自身でコードを写経するということの繰り返しをした。頭から終わりまで、この方法で一通り進めた。9月9日に購入したようなので、3週間で読んだようだ。

読んだ感想

一言で言うと「いい意味で地味」。(少なくともkindleでは)2色刷りとかになっていないし、淡々とした説明が続くので、飽きやすいといった可能性はある。しかし、裏を返せば無駄な記載がなく、必要な説明をすることに専念されているともいえる。コードについての説明もかなり詳しく書かれていると感じている。

また、コードについても、base Python(という言い方があるのだろうか。)で一からアルゴリズムやデータ構造を構成しており、理解につながりやすい工夫がなされていた。また、変数の命名方法や、条件処理など「ほーなるほどそう書くとスッキリするな」と私のレベルで思うところも多く、単純にpythonのコーディングの勉強にもなった。

上記のとおり「いい意味で地味」であるのでパッと見で面白さがわかりにくい可能性もある。そのため、「アルゴリズム図鑑」のアプリや書籍で興味を持った後に、自分で具体的にpythonで実装してみたいと思ったなら、手に取るのが良いのではないだろうか。

今後どう読んでいくか

割と詰め込み感があったので、ことあるごとに見返すことになると思われる。ダイクストラとA*アルゴリズムがちょっとあやしい。また、本書で扱われていないアルゴリズムについても、ぐぐりながら自分で構成してみる、といったことができるレベルまでは連れてきてくれたと思うので、必要に応じて知識を広げたい。

www.amazon.co.jp

www.amazon.co.jp