アルゴリズムについて学ぶ簡単な方法はないか・・・と探していたところ、「アルゴリズム図鑑」なる素敵アプリに出会いました。
基本的な26のアルゴリズム+7つのデータ構造をアニメーションで解説してくれます。
アルゴリズムの勉強はプログラミングに興味のある者にとっては非常に面白く、そして必要不可欠なものです。
でも難しくて独学で学ぶには少し難しいのが正直なところですが、アルゴリズム図鑑は独学にもってこいのわかりやすさ!
これまで独学でプログラミングを学び(WEB系プログラマーには多い)、自由に関数を使いアプリケーションを開発できる状態の人で、まだアルゴリズムについて学んだことがない方には是非、この「アルゴリズム図鑑」をチラ見してほしいと思います。
無料なので(笑)
アルゴリズム図鑑は一部のアルゴリズムのみ無料で見ることができるのですが、無料で学べるアルゴリズムだけでも「そうだったのか!!」と手を打ちたくなることでしょう。
まるでプログラミングを学び始めた時に感じた、ワクワク新鮮な気持ちを味わえると思います。
これまでアルゴリズムに触れたことがあるけれども挫折した・・・という場合でもこのアプリなら大丈夫!
アニメーションでアルゴリズムを学べますので非常にわかりやすいのが特徴で、紙面やブログなど、文字情報や静止イラストだけでは理解し辛かったアルゴリズムを視覚的に学ぶことができます。
無料版だけでも結構楽しめるので、暇な時にインストールしてみてください。
知りたい欲求の強い方はおそらくは有料版にアップグレードしたくなっちゃうと思いますが安心してください。
有料版でも360円ととてもお安いのです。
わたしは面白すぎて、無料版からすぐに課金して全アルゴリズム解放してもらいました。
もうちょっと高くても多分課金してたな〜。って思えるくらい楽しくアルゴリズムを知ることができます。
わたしはPHPからプログラミングに入ったので、ゆるく簡単な言語であるがゆえにコンピュータの内部的な動きや仕組みを知らずとも「動くもの」が作れてしまい、プログラムが内部的にどういう動きをしているのかという考え方を持ち合わせていませんでした。
PHPは簡単なので、壁にぶつかりながらも一応はスクラッチでWEBサービスを作れてしまっていたため、いっぱしのプログラマー気分でいたのですが・・・
困ったことにPHPのマニュアルを読んでも、意味が分からないことが多々あったんです。
例えば「配列のポインタがどうのこうの」と書かれていても、「ポインタ」が何であるかが理解できなかったり、配列の説明では言っていることがまるっきり分からなかったり。
それでも、動くからいいじゃん!と気にせず開発に携わり続けました。今思うと赤面です。
そういった「知ったか状態」(わたしです)から脱却できる知識ツールとしてもかなりおすすめです。
完全にわかっていることと、ふんわりわかっていることとは全然違いますが、全然分かっていなことと、ふんわりわかっていることも全然違います。
まずは、全てを理解しようとするのではなくて、「面白コンテンツ」としてこのアプリをぜひ体験して見てほしいです。
ふんわりと意味がわかり、マニュアルも相当に読みやすくなることでしょう。
ちなみに、「アルゴリズム図鑑」はApp Storeの「Best of 2016 今年のベスト」に選ばれている実績あるアプリで、iOS & Android版合わせて90万ダウンロードを達成しているそうで、各国の言語に翻訳されているので、日本だけでなく使っているエンジニアも多いんじゃないかと思います。
学べるアルゴリズムの種類は?
学べるアルゴリズムの種類は、下記の通りです。
無料版でもそこそこ見られるので、まずは無料版を入れてみてはいかがでしょうか?
- ソート
- バブルソート、選択ソート、挿入ソート、ヒープソート、マージソート、クイックソート
- クラスタリング
- k-means法
- リスト探索
- 線形探索、2分探索
- グラフ探索
- 幅優先探索、深さ優先探索、ベルマンフォード法、ダイクストラ法、A*(エー・スター)
- 数学
- ユークリッドの互除法、素数判定法
- データ圧縮
- ハフマン符号、ランレングス符号
- セキュリティ
- セキュリティの基礎、暗号の基礎、ハッシュ関数、共通鍵暗号方式、公開鍵暗号方式、ハイブリッド暗号方式、Diffie-Hellman(ディフィー・ヘルマン)鍵交換法、メッセージ認証コード、デジタル署名、デジタル証明書
- データ構造
- リスト、配列、スタック、キュー、ハッシュテーブル、ヒープ、2分探索木
- WEB
- ページランク
- 再帰
- ハノイの塔
データ構造もおもしろいけど、k-means法を見てめっちゃ感動しました。
おもしろすぎる。
あとは、PHPでよく配列を使うので、リスト探索も面白かったです。
「アルゴリズム図鑑」は下記例文の意味が分かるようになります。
PHP の配列は、実際には順番付けられたマップです。マップは型の一種で、 値をキーに関連付けます。 この型は、さまざまな使い道にあわせて最適化されます。 配列としてだけでなく、リスト (ベクター)、 ハッシュテーブル (マップの実装の一つ)、辞書、コレクション、スタック、 キュー等として使用することが可能です。 PHP の配列には他の PHP 配列を値として保持することができるため、 非常に簡単にツリー構造を表現することが可能です。
PHPマニュアル 配列
上記は、PHPマニュアルの配列についての説明ですが「マップ」「リスト」「ハッシュテーブル」「辞書」「コレクション」「スタック」「キュー」という単語が出てきますが、このあたりの単語についてもアルゴリズム図鑑を見ると理解できるようになります。
深いアルゴリズムを学ぶ、というよりかは、どういったものか、というのをわかりやすく解説されているので初学者にはもってこいのアプリかと思います。
ダウンロードしてデータ構造の配列を見た時になんかもやもやが晴れたような気がしてすごくワクワクしたのを思い出します。
アルゴリズム図鑑のダウンロード
法人での研修や学校教育向けに、アップルのVPP(Volume Purchase Program)に対応したアプリも別アプリとして用意されているようです。
「アルゴリズム図鑑(法人・教育機関向け)」として提供されています。
アルゴリズム図鑑(法人・教育機関向け) – Moriteru Ishida
アルゴリズム図鑑がアプリから書籍化されていました
アニメーションで解説されているアプリで学んだ方が多分すごくわかりやすいと思うのですが、アプリを利用しない層に需要があるのか、アルゴリズム図鑑が2017年6月5日発売で書籍化されていました。
アプリで説明されているものが書籍化となっているようなのですが、そのお値段は本体2,380円(税別)です。
アルゴリズム図鑑のアプリは、全アルゴリズム解放で360円なので、アプリの方が断然わかりやすくおすすめです。
ちなみに、どこのお店でアルゴリズム図鑑の書籍版を購入しても、翔泳社さんの企画で購入特典キャンペーンをやっていて、PDF形式/A3サイズの「絵でおぼえる グラフ探索&ソート 一覧表」がもらえるそうです。
ちょっとほしい。
「アルゴリズム図鑑」の書籍版(紙書籍/電子書籍/直販PDFのいずれでも可)の購入者であれば誰でも対象になるそうです。
豊 says
ありがとうございます。入れてみます。
Chikako says
こちらこそありがとうございます!
理系のりの字も持ち合わせていないわたくしでも楽しく興味深く学べたアプリです。
ぜひ入れて遊んでみてください。