2021/01/212021/01/21

書評『なっとく!アルゴリズム』|アルゴリズム入門書としておすすめ

こんにちは、Nash です。今年の目標はコンピュータサイエンスを学習し直すことです。

この記事は「『なっとく!アルゴリズム』を読んだ結果の書評」の記事です。

なっとく!アルゴリズム

では見ていきます。

結論

とりあえず結論から書いておきます。

この本のおすすめ対象読者として、「アルゴリズムに興味があるエンジニアの入門書を探してる」という人だと思います。

特に、この本の特徴として「わかりやすさ」に特化しているので、アルゴリズムのことを知らなくても詰まることなくほぼ読み切れると思います。

ということで、個人的には入門アルゴリズム本としてはかなりおすすめしています。

では、書評について細かく説明していきます。

本の紹介

著者は「Aditya Bhargava」さん。有名なイラスト付きのブログであるadit.ioで運営していて、このブログの人気から書籍化した流れぽいですね。

ちなみに、この書評記事を書いてるときにadit.ioを見に行ったのですが、過去に自分が Haskell でモナドを勉強してたときに「なに、これめっちゃわかりやすいんだけど」ってなったときの記事があったので、すでにこの人の記事にお世話になってました。「このブログの人の書籍だったんか・・・」って今なってます。

本のコンセプト

アルゴリズムをわかりやすく解説する本」という位置づけになってる

実際にコードの説明に対しても「1行ごとに1つの図解で説明」みたいなレベルで丁寧に説明されている箇所があり、ここまで丁寧な説明は技術書ではあまり見ないタイプだなーと思いながら読んでました。

ちなみに日本 Amazon のレビュー数はそこまで多くないけれども、米 Amazon では「評価数 387、星 4.7/5(2021-01-21 時点)」でほぼ全員が星5をつけてるような状態。コメント見ても「わかりやすさ」という観点でみんな絶賛してた。わかる。

対象読者

自分の読んだ感じとしては「アルゴリズム入門を知りたいエンジニア」がおすすめの対象読者でした。逆にアルゴリズムはある程度はわかってるぜとか、オーダー計算くらい出来るよ、みたいな人には向かないかと思う。

Python でのコードレベルでの説明もあるので、非エンジニアはさすがに厳しいとは思う。エンジニアなら Python を使ったことなくても「あー、だいたいこうね」でわかるので問題なし。実際、自分もそんな感じで読んでた。

写経不要で腹落ちする説明

この本の良い点の1つとして、コード写経しないでも「なるほど、完全に理解した」って割となる。その理由として、上述してるけどかなーり丁寧にコード・ロジックを説明してくれるので。経験上、大抵の技術書って写経しないと、腹落ちしにくいことが多いんだけど、この本はその必要がなかった。

というわけで、移動中・電車の中でも読める技術書だと思う。もちろん、より理解を深めたいなら写経するのは大事だと思うけど、コード的にかなり簡単なので、移動中は読むことに集中して、時間を取って家にいるときにガーっと写経するのでも十分なんじゃないかな。

厳格よりもわかりやすさ重視の説明

わかりやすさに注力しているので、その分だけ厳格さが緩い。

具体的には、すべてのアルゴリズムに対してオーダー計算量の言及がなかったり、あえて「難しいからここでは説明をしません。」みたいにスキップしてる箇所もある。

ただ個人的には、この本の立ち位置が「アルゴリズム入門書」だと見てるので、この方針はかなりポジティブに考えてる。アルゴリズムを深堀りすると難しすぎるねん。

他のアルゴリズム本との比較

アルゴリズム本として2大有名な本として「蟻本」「螺旋本」があるけれども、入門者にはマジでおすすめできない。適当に「アルゴリズム 本」で検索すると、アフィブログで入門者にもこの2つを推す記事が多いけど、マジで罪深いと思う。挫折してアルゴリズム嫌いが増えるやろ。

プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~

プログラミングコンテスト攻略のためのアルゴリズムとデータ構造

ちなみに新しいアルゴリズム本として『問題解決力を鍛える!アルゴリズムとデータ構造』も登場して、IT エンジニア本大賞 2021も取ってる良本みたい。

問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)

こっちも今、読んでる途中だけど難易度・順番的に下記の順番で読むほうが良さそう。

  • 「なっとく!アルゴリズム」⇒「問題解決力を鍛える!アルゴリズム」

というのも、『なっとく!アルゴリズム』は「わかりやすさ」に特化してるので、やっぱり入門書としてはこっちを最初に読んだほうが良いかな。

Kindle 電子書籍が固定レイアウト

固定レイアウト本なので、サンプルもあるので先に問題がないかを試してみるのが良いかと思う。

固定レイアウトになってる理由はおそらく図解の説明が多いからなのかなーと思ってる。

翻訳の違和感:なし

翻訳本にしては珍しく、翻訳による違和感がほぼなかった。翻訳者に感謝。

所感

個人的にはアルゴリズム入門書としてはかなりおすすめの本でした。

まとめると下記が特徴かな。

  • 「わかりやすさ」に特化したアルゴリズム入門書
  • コード1行1行に図解説明がある

アルゴリズムを勉強したいなーと思ってるエンジニアに最初の1冊目としてはかなりおすすめでした。

なっとく!アルゴリズム

Nash
Nash
プログラミングが好きな人。SE→ITベンチャー→フリーランス。日本を出て、海外で働いて、最終ゴールは月で生活すること。