プログラミング初心者がアルゴリズムを学ぶのにおすすめの書籍

アルゴリズムの本

プログラミングにおいてアルゴリズムは土台となる考え方です。アルゴリズムを元にプログラミングが行われ、アルゴリズムを考えていないプログラムは迷走することになります。フローチャートを書くかどうかは自由ですが、少なくとも頭の中にアルゴリズムができていないときちんと動く、綺麗なソースコードは書けないと思って間違いありません。

逆に言えば、アルゴリズムさえしっかりしていればあとはアルゴリズムに従って表面的なソースコードを実装していくだけです。プログラミングにおいてアルゴリズムが最重要で、良いプログラムになるかどうかはアルゴリズムがカギを握っています。

ちなみにアルゴリズムとフローチャートの違いについては以下の記事で解説しています。

アルゴリズムとフローチャートの違いは?二つの関係も解説

スポンサーリンク

アルゴリムってそもそも何?という方におすすめの書籍

アルゴリズムについて解説された書籍はいろいろありますが、中でも特に易しく解説されている書籍を厳選して紹介します。

①アルゴリズムを、はじめよう

アルゴリズム入門書の中でも王道で人気のある書籍です。プログラマが最低限知っておくべき情報を一冊に凝縮した内容になっています。また解説も丁寧なので、すでに他の書籍でアルゴリズム学習にトライして挫折した経験をお持ちの方にもおすすめです。

アルゴリズムを考えてフローチャートに落とし込む方法も解説されているので、プログラミングに役立てるための即戦力にもなるでしょう。

②アルゴリズム図鑑 絵で見てわかる26のアルゴリズム

イラストでわかりやすくアルゴリズムについて解説した書籍です。基本となるアルゴリズムをすべてイラストで解説しています。またフルカラーなので、直感的にイメージしやすいでしょう。初めてのアルゴリズム学習では、文章が中心だとどうしても理解しにくいことがあります。

図を使って解説されているため、深く考えなくても理解できることが大きなメリットです。特に社会人として働かれている方は日頃考えなければならないことも多いため、頭が疲れているかもしれません。

図とイラスト中心であれば、頭が疲れている状態でも気軽に勉強して定着させることが可能です。

情報技術者試験の勉強も兼ねたい方におすすめの書籍

せっかくアルゴリズムの勉強をするのであれば、「基本情報技術者試験」や「応用情報技術者試験」などの情報技術者試験にも役立てたいとお考えの方も多いかと思います。そもそも情報技術者試験があるからアルゴリズムの勉強を始めようと思われた方もいるかもしれません。

そこで、情報技術者試験を想定して書かれている書籍を紹介します。

③情報処理教科書 基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版

基本情報技術者試験の午後問題を想定して書かれた書籍です。問8のアルゴリズム問題はつまずく方が多いところですが、配点が多く、また必須問題でもあるので、落としたくないところです。

また基本情報の問題の中にははっきり言って勉強しても実践的なプログラミングであまり役立たない問題も多いですが、アルゴリズムに関しては勉強することで実践で役立ちます。

私自身こちらの書籍でアルゴリズムを学習し、基本情報技術者試験の問8はきちんと満点が取れました。またプログラミングの選択問題でも役立つでしょう。私はCOBOL(現在は廃止されてPythonになっている?)を選択しましたが、基本のアルゴリズムが頭に入っていた方がソースコードをトレースしやすいです。

アルゴリズムそのものも重要ですが、どちらかというと順を追って処理の内容をつかむという考え方そのものが重要になります。

アルゴリズムで知的好奇心を満たしたい方におすすめの書籍

アルゴリズムはプログラミングだけのものではありません。朝今日一日のスケジュールを組み立てる作業もアルゴリズムです。スケジュールをフローチャートにしてみるとイメージが付きやすいかと思います。

このように日常に潜むアルゴリムですが、アルゴリズムを考えることは知的好奇心を満たし、また日常生活にも役立ちます。そこでプログラミングとはいったん離れて、アルゴリズムの面白い読み物を紹介します。

④世界でもっとも強力な9のアルゴリズム

プログラミングではなく、コンピューターに関するアルゴリズムについて解説した書籍です。たとえば、インターネットの検索エンジンのアルゴリズムについても解説されています。インターネット社会なので、日頃使っているインターネットのこともわかって楽しめるはずです。

また専門知識がなくても理解できるように書かれており、あくまでも楽しみつつコンピューター、インターネットライフに新たな視点や気付きを与えてくれるような書籍です。逆に言えば、すぐさまプログラミングや情報技術者試験に結び付けるような内容にはなっていません。

⑤アルゴリズム思考術:問題解決の最強ツール

社会生活で訪れる問題について、アルゴリズム思考をベースに解決していく内容の書籍です。たとえば、ベンチャービジネス売却のタイミング、車をどの駐車スペースに駐車すべきか、何人目の交際相手と結婚するのが良いか、などと題材として掲げています。

一見すると軽い雑記のような内容、もしくは自己啓発的な内容に思えるかもしれません。しかしどの題材に対しても真面目に考察されており、なおかつきちんとアルゴリズム思考になっています。

面白いことはもちろん、今後自分自身に対して訪れる問題に対する視点、考え方が変わる可能性が高いです。

⑥爆速! アルゴリズム: 毎日の生活がみるみるうちに変わる

アルゴリズムはプログラミングの世界だけではなく日常にも潜んでいる、といった点に主眼を置いて解説された書籍です。そのため、アルゴリズムもプログラミングでよく使われるものをピックアップしており、それを日常生活に当てはめることでイメージしやすくしています。

具体的には、「二分探索で自分に合うサイズの服を見つける」「マージソートで郵便物をソートする」などです。実際このようなシステムはプログラミングの練習でもよく作られるものなので、アルゴリズムをプログラミングのため、日常生活に役立てるため、の両方の視点から学びたい方におすすめです。

またアルゴリズムが何なのかまだイメージがつかめていない方は、プログラミングの世界と実社会の世界がアルゴリズムを通して結び付く内容になっているので、初めの第一歩としては良いかと思います。

アルゴリズムは設計書にもなる

仕事でシステムを作る場合、先に設計書を作ることが多いです。まずシステムの大枠を考え、処理のパーツを決めていきます。プログラミングにおいてアルゴリズムを考えることは設計を考えることとほぼ同じで、個人開発ではあえて設計書を作らないことも多いでしょう。

またシステムは何か問題を解決するために存在します。日常の問題をアルゴリズムで考えることは、システムのアイデア、概要にもつながるのです。たとえば「マージソートで郵便物をソートする」という考え方はそのままシステムにできます。

別の言い方をすれば、アルゴリズムは問題の解決策とプログラミングを結び付けるものとも言えるでしょう。

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