こんにちわ!
今日は、アルゴリズムの学習に大変役立つ書籍を紹介していきたいと思います。
私は、これまで6年以上エンジニアとしてのキャリアを経験してきましたが、
プログラミングをする際に、先人が残した基礎的だが非常に効率的にコードを書けるテクニックのようなものを、
アルゴリズムを学ぶことで使えるようになると思いますので、是非参考にしてみてください。
目次
- 1 問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)
- 2 プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~
- 3 プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
- 4 Scratchで学ぶ プログラミングとアルゴリズムの基本
- 5 世界で闘うプログラミング力を鍛える本 コーディング面接189問とその解法
- 6 トコトンやさしいアルゴリズムの本 (今日からモノ知りシリーズ)
- 7 アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
- 8 新・明解Pythonで学ぶアルゴリズムとデータ構造
- 9 はじめアルゴリズム 全10巻 新品セット セット買い
- 10 プログラミングとロジカルシンキングが一気にわかる本 アルゴリズムで論理の流れが見えてくる Kindle版
- 11 世界でもっとも強力な9のアルゴリズム
問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)
こちらの本は、著者自身が競技プログラミングなどを実際に経験してきて、その経験で培ったアルゴリズムの知見を紹介してくれている本です。
どのようにすれば効率のよい結果が得られるか? すなわちどのようなアルゴリズムを採用すればよいか? という点に対して、幅広くかつ明快に解説しているのでオススメだと思います。
*ユーザーの声
アルゴリズムの紹介だけに留まらず、アルゴリズムを設計できるようになる・使いこなせるようになるという方向で書かれており紙面もとても読みやすい。
考えている問題にどのような構造があればその考え方(分割統治・貪欲法など)が使えるのか整理されていて分かりやすい。
17章「PとNP」、18章「難問対策」は効率の良いアルゴリズムが知られていない問題に対応する際のアプローチの方法が紹介されており、この本に特徴的な内容だと感じた。
プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~
Kindle版 ¥2,641 単行本¥3,608

- 出版社 : マイナビ出版 (2012/1/28)
- 発売日 : 2012/1/28
- 言語 : 日本語
- 本の長さ : 372ページ
こちらの本は、プログラミングコンテストの問題を通してアルゴリズムのしくみや考え方を楽しく解説されている本です。
プログラミングコンテストにて世界トップレベルの成績を誇る著者たちが、
コンテストで得た知識やノウハウを難易度別にまとめてくれています。
初心者が取り組めるアルゴリズムの基本問題から、世界中のプログラマを悩ませた難問まで、“プログラミング脳”を活性化するための問題を厳選して紹介されているのでとてもおすすめです。
*ユーザーの声
序盤の内容は大学のアルゴリズムの授業で必ずカバーされる内容なので知っていることが前提となっているのかもしれないが、特に最短路問題などは重要度の割には説明が短い。
一定の網羅性があるので初中級者は必携だが、初心者の場合にはこの本の説明だけで理解できなくても諦めないで他の資料を当たってみるのが良いと思う。
プログラミングコンテスト攻略のためのアルゴリズムとデータ構造
Kindle版 ¥3,544 単行本¥3,938
53個の評価
- 出版社 : マイナビ (2015/1/30)
- 発売日 : 2015/1/30
- 言語 : 日本語
- 単行本(ソフトカバー) : 480ページ
こちらの本は、プログラミングコンテスト"で実際に仕える「アルゴリズム」と「データ構造」を学べる本です。
初級者が体系的にアルゴリズムとデータ構造の基礎を学ぶことができる入門書となっています。
*ユーザーの声
愛読している書籍に、アルゴリズムを勉強すると良いとの記述があり、その目的で購入しました。
C++は触ったことなかったためその点に不安がありましたが、スクリプト言語の経験があったためまあ概ね問題なしでした。本を読んでコードを書いて理解してを繰り返しながら読み進めたため、読み切るのに土日を使って7,8日くらいかかりました。期間にすると大体1ヶ月。
1ヶ月の土日を潰しましたが、全く後悔はありません。アルゴリズムの勉強をするという目的での購入であったため、プログラミングコンテストのモチベーションはなかったのですが、これを機に初めてみてみとごにハマりました(笑
Scratchで学ぶ プログラミングとアルゴリズムの基本
Kindle版 ¥2,404 単行本¥2,530
19個の評価
- 出版社 : 日経BP; 改訂第2版 (2019/4/18)
- 発売日 : 2019/4/18
- 言語 : 日本語
- 単行本 : 204ページ
- ISBN-10 : 4822286177
こちらの本は、scratchを活用したアルゴリズムの学習本として、scratchの操作方法を身につけて自由自在に使いこなせるようになるだけでなく、
頭の中で考えているアイデアをプログラムとして実現するスキル、つまり論理的な思考のスキルを身につけることを目的として書かれている本です。
サンプルのプログラムを作りながら、Scratchの操作とプログラミングのポイントについて学び、アルゴリズムの知識も学ぶことが出来るのでお勧めです。
*ユーザーの声
キーボードに慣れていないプログラミング初心者向けというScratch感が認識不足であったことがわかりました。再帰処理まで触れられており、良書です。
世界で闘うプログラミング力を鍛える本 コーディング面接189問とその解法
Kindle版 ¥3,762 単行本¥4,180

- 出版社 : マイナビ出版 (2017/2/27)
- 発売日 : 2017/2/27
- 言語 : 日本語
- 本の長さ : 776ページ
こちらの本は、人気のあるトップIT企業で行われるコーディング面接に合格し採用されるための攻略本として、
グーグル等でエンジニアとして働き、かつ多くの採用プロセスに関わってきた著者によって書かれたものです。
この本でで取り上げるプログラミング問題はトップIT企業が求める能力が凝縮されているため、将来はプログラマーとして仕事を獲得していきたいという方にもおすすめです。
*ユーザーの声
内容が多く、世界に通用しそうな指導書のようなものだった。文の記述量が多くて、要約しきれないほどである。でも、苦しみながら読むので成長している感が出るのも魅力的。意識高いプログラマにはもってこいの本。
価格は多少高いものの、情報量から見ればとてもコスパがいい。買って損は無い。思考停止を防ぐのなら今すぐ読んで、今後のエンジニアとして生きる難易度を下げてみてはいかがだろうか?
トコトンやさしいアルゴリズムの本 (今日からモノ知りシリーズ)
こちらの本は、アルゴリズムの考え方やしくみが、楽しく読んでいるうちに自然に身につくように設計された本です。
問題解決の“やり方”、計算の“解き方”順次処理、分岐処理、反復処理、ソート、サーチ、マージ、マッチング、アルゴリズムをscratchで試すことが出来るとてもいい本です。
アルゴリズムの具体的な実装方法を、子供でも分かりやすいように解説されてるのでお勧めです。
アルゴリズム図鑑 絵で見てわかる26のアルゴリズム
Kindle版 ¥2,356 単行本¥2,618

- 出版社 : 翔泳社 (2017/6/6)
- 発売日 : 2017/6/6
- 言語 : 日本語
- 単行本(ソフトカバー) : 208ページ
こちらの本は、アルゴリズムを独学する人のために書かれた本です。
はじめて学ぶときにはイメージしやすく、復習するときには思い出しやすくなるよう、基本的な26のアルゴリズム+7つのデータ構造が、すべてイラストで開設されているので分かりやすいです。
ソートやグラフなどの「動き」を図で追うことで、考え方や仕組みを理解する手順が分かりやすいです。
*ユーザーの声
初心者と最学習に最適です。
社会人プログラマーで国家試験の高度を持っていても、理解が曖昧な人は読み返すべき参考書でしょう。
Googleの面接試験でフレームワークなどの知識ではなく、この基礎学習面を聞いてくるという噂を聞きました。日本の人売の面接はフレームワーク知識と経験年数くらいしか聞かず、役立たずなor下手くそなアルゴリズムでプログラミング組む人を採用してますよね。
結果、応答スピードが遅いシステムが出来上がります。
マジでこれ読め。
新・明解Pythonで学ぶアルゴリズムとデータ構造
Kindle版 ¥2,376 単行本¥2,640

- 出版社 : SBクリエイティブ (2020/1/10)
- 発売日 : 2020/1/10
- 言語 : 日本語
- ファイルサイズ : 263356 KB
- 本の長さ : 370ページ
こちらの本は、Pythonで実装した豊富なプログラム例を通じて、アルゴリズムとデータ構造の基礎を身につけるためのテキストです。
基本的なアルゴリズムとデータ構造に始まって、目的とするデータを見つける探索、データの並びを一定の順序で並びかえるソート、そして、スタック・キュー・再帰的アルゴリズム・線形リスト・2分探索木などを解説されています。
解説にあたっては、難しい理論や概念を視覚的なイメージで理解できるように、213点もの図表を提示していして、
単なるサンプルではなく、実際に動作するものばかりです。すべてのプログラムを読破すれば、かなりのコーディング力が身につくはず!
初心者から中上級者まで、すべてのPythonプログラマに最良の一冊です。
*ユーザーの声
基本的には、ソートやリスト検索のような基本的なアルゴリズムについて説明した本です。自分はプログラムコンテストで使うような高度なアルゴリズムの原理の説明+Python(numpy)に特有の書き方の説明を探していたので、完全に目的違いでした。
しかし、それでも一通り読んでから少し時間が経ってみると、基本的な考え方を丁寧に説明した良い本だったなと思いました。とくに、再帰的アルゴリズムを展開して考える方法は、この本で初めて読みました。情報学科の人にとっては当然なのかもしれませんが、こういう初歩的な本でかみくだいて書いてあるのはありがたいです。ハッシュや木構造の探索も、整理されていて分かりやすいです。
売れ筋の入門書には懐疑の目を向けがちな人間なのですが、この著者の本は良いと思います。
はじめアルゴリズム 全10巻 新品セット セット買い
セット買い¥6,820 コミック (紙)¥6,820
Amazon.com
こちらは、マンガのシリーズなのですが、物語を通してアルゴリズムを学べるので、紹介してみようと思いました。
公式の解説
関口ハジメ(小5)はみんなが見えない世界を数学で解き明かしたい。そんな彼は老数学者・内田豊と出会った。天才的な才能があるハジメは内田に導かれ、才能を広げていく・・・。数学がちょっとやりたくなり、世界の見え方が変わってくる漫画、スタート。
プログラミングとロジカルシンキングが一気にわかる本 アルゴリズムで論理の流れが見えてくる Kindle版
Kindle版 ¥1,568 単行本¥1,650

- 出版社 : 翔泳社; 第1版 (2020/2/28)
- 発売日 : 2020/2/28
- 言語 : 日本語
- 本の長さ : 167ページ
こちらの本は、プログラミングとロジカルシンキングを同時にマスターできる本です。
プログラミングは最適な手順を作り、自分の意図した通りシステムを動かせること。
ロジカルシンキングは目的を達成するために物事の筋道を考えて、計画的に実行することと、両者の親和性は強いです。
「なぜそうなるのか」→「どうしたらできるのか」→「どうやってやるのか」→
「実施」→「結果どうだったか」というプロセスをたどり、アルゴリズム的な考え方をマスターできるのでお勧めです。
*ユーザーの声
頭で分かっているものの行動できていないような痛いところを突いてくる本。この本で自分の振り返りや後輩への指導内容を整理するのもいいけれど、手っ取り早いのはこの本を相手にプレゼントすることだと感じた。初心者にも読みやすいけれどレベルが低いわけではない良書です。
世界でもっとも強力な9のアルゴリズム
Kindle版 ¥1,980 単行本¥2,200

- 出版社 : 日経BP; 第1版 (2012/7/23)
- 発売日 : 2012/7/23
- 言語 : 日本語
- 本の長さ : 375ページ
こちらの本は、コンピュータを使い物にするアルゴリズムにはどういうものがあるか、今日的な視点から選んだ実際に役立っている9のアルゴリズムのアイデアを、章ごとに掲げてわかりやすく説明した読み物です。
図を多用し、その仕組みをたとえを使いながら見せることに重点を置いているので、とてもお勧めです。
扱っている9のアルゴリズムのテーマは、検索エンジンのインデクシング、ページランク、公開鍵暗号、誤り訂正符号、パターン認識、データ圧縮、データベース、デジタル署名、計算不能性など、専門的な深い技術を学べる手助けになるかなと思っています。
*ユーザーの声
ソフトウェアを仕事にしていますが、この本に書かれているような話には疎かったので、すべての章を楽しく読むことが出来ました。
多少はコンピュータサイエンスのリテラシが上がったように思います。
多くのアルゴリズムが、難しい数学や理系的な背景をほとんど必要とせず、身近な比喩と簡潔な理屈で説明されています。
特に仕事などで必要とされていない方にも読み物としてオススメしたいです。