Photo by Tim Samoff
秋山です。
皆さんはアルゴリズムについてどれくらい知っていますか?というか勉強したことありますか?
私はもともと情報系だったので学校でも習いましたが、paizaのプログラミングスキルチェック問題を作るときなどはいまだにいろいろ調べることもあります。
アルゴリズムについて勉強したことがない人の中には「ずっと気になってはいるものの、各プログラミング言語の書き方やフレームワークの使い方などを学ぶことに手一杯で、アルゴリズムはつい後回しになっている…」という方も多いと思います。
ただ、アルゴリズムを知らないままプログラミングを続けていると、少し複雑な処理を考えなければならなくなったときなどに、力技のやり方しか考えつかなくて「すごい人だったらもっとスマートな書き方ができるんだろうな……」と悶々としてしまうことがあるはずです。
今回はそんな方に向けて、アルゴリズムについて調べたり学んだりする際に役立つサイトと書籍をレベルごとに紹介していきます。
プログラミングを始めたばかりの初心者の方から、逆に既にある程度プログラミングはできるので初心者向けじゃ物足りないという方まで、参考にしていただければと思います。
■手軽にアルゴリズムを学べるサイト・アプリ
◆アルゴリズム図鑑
料金:ダウンロード無料(全項目の表示は+360円)
【iOS版はこちら】【Android版はこちら】
アルゴリズム図鑑は、様々なアルゴリズムをアニメーションを使った解説を見ながら学べるアプリです。鍵つきのアルゴリズムは課金をしないと見ることができませんが、無料版でも多くのアルゴリズムを学ぶことができるので、気軽に試してみることができます。
◆VisuAlgo
アルゴリズムをビジュアルで見せてくれるサイトです。アルゴリズムは文章だけで概念を解説されてもなかなか分かりにくいことが多いですが、こちらはビジュアルで動作の様子を見ることができます。「文字で読んで何となく分かったような気になっていただけ」のアルゴリズムが、直感的に理解することができます。以前は英語版しかありませんでしたが、日本語版もできたのでよりしやすくなりました。
■初心者から中・上級者までアルゴリズムを学べる書籍
◆初心者向け
◇アルゴリズムの絵本

- 作者: (株)アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2003/08/05
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 77回
- この商品を含むブログ (8件) を見る
◇アルゴリズムを、はじめよう

- 作者: 伊藤静香
- 出版社/メーカー: インプレス
- 発売日: 2012/05/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る
◇「アルゴリズム」のキホン

「アルゴリズム」のキホン (イチバンやさしい理工系シリーズ)
- 作者: 杉浦賢
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2011/03/18
- メディア: 単行本
- 購入: 3人 クリック: 32回
- この商品を含むブログ (16件) を見る
◇図解でかんたんアルゴリズム

図解でかんたんアルゴリズム 情報処理のかなめとなる考え方が手に取るようにわかる! (サイエンス・アイ新書)
- 作者: 杉浦賢
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2012/12/15
- メディア: 新書
- この商品を含むブログ (1件) を見る
◇マッチ箱の脳(AI)―使える人工知能のお話

- 作者: 森川幸人
- 出版社/メーカー: 森川幸人
- 発売日: 2014/01/05
- メディア: Kindle版
- この商品を含むブログ (13件) を見る
↓Web用に編集・公開されているページがこちら
「マッチ箱の脳」Web Version
◆中級者向け
◇アルゴリズムの基本

- 作者: トーマス・H・コルメン,長尾高弘
- 出版社/メーカー: 日経BP
- 発売日: 2016/03/11
- メディア: 単行本
- この商品を含むブログ (5件) を見る
どこまでが初心者向けでどこから中級者向けの書籍かというと難しいところですが……多少数学的な知識などが前提な箇所もあるため、プログラミング自体が初心者の人や数学が苦手な人、絵本的な入門書から始めたい人にはちょっと難しいかもしれないので初・中級者向け?ぐらいの立ち位置かなと思います。
逆に入門書じゃ物足りない人や理系出身の人、既にある程度プログラミングをしている人が改めてアルゴリズムの勉強を始めるのであればこのへんの書籍からがいいかと思います。
◇The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版

The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版 (アスキードワンゴ)
- 作者: Donald E. Knuth,青木孝,筧一彦,鈴木健一,長尾高弘
- 出版社/メーカー: ドワンゴ
- 発売日: 2017/01/10
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
◇アルゴリズムイントロダクション 第3版 総合版

アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)
- 作者: T.コルメン,R.リベスト,C.シュタイン,C.ライザーソン,Thomas H. Cormen,Clifford Stein,Ronald L. Rivest,Charles E. Leiserson,浅野哲夫,岩野和生,梅尾博司,山下雅史,和田幸一
- 出版社/メーカー: 近代科学社
- 発売日: 2013/12/17
- メディア: 大型本
- この商品を含むブログ (8件) を見る
これがあればアルゴリズムのことは大体OKといえばOKなのですが、プログラミング初心者が最初の一冊として挑戦するには難易度が高いし、ぶ厚いので、既にある程度プログラミングができる人、上記の「アルゴリズムの基本」が理解できて「もっと詳しく書かれた書籍がほしい!」という人によい書籍かなと思います。
◇計算理論の基礎
![計算理論の基礎 [原著第2版] 1.オートマトンと言語 計算理論の基礎 [原著第2版] 1.オートマトンと言語](https://images-fe.ssl-images-amazon.com/images/I/51rjfNYrhjL._SL160_.jpg)
- 作者: Michael Sipser,太田和夫,田中圭介,阿部正幸,植田広樹,藤岡淳,渡辺治
- 出版社/メーカー: 共立出版
- 発売日: 2008/05/21
- メディア: 単行本
- 購入: 6人 クリック: 68回
- この商品を含むブログ (30件) を見る
そもそもアルゴリズムの根底には計算理論(簡単に言うと計算模型やアルゴリズムを理論的に扱う学問のことです)があり、より深く学ぶならその辺にも触れておく必要があるかと。まずは数学の基礎知識からオートマトンや正規言語などにつハードルてある一巻を読んでみてください。
■まとめ
アルゴリズムの勉強は、一見ハードルが高そうに見えるので、プログラミングを始めたての人でも取っつきやすそうなものから、中・上級者まで対応できる書籍まで紹介してみました。
アルゴリズムを知るとプログラミングについてより深く考えられるようになると思いますので、ぜひ勉強してみてください。
paizaでは、未経験者でも動画を通してアルゴリズムやプログラミングを学べる「paizaラーニング」を公開しております。
本日から2017年1月30日までの期間限定で、「アルゴリズム入門2」が無料で見放題になっています。
無料公開の期間を過ぎると有料に戻ってしまいますので、ぜひこの機会にアルゴリズムを学んでみてください!
paizaラーニングでは、paizaの人気美少女キャラクター霧島京子(cv:上間江望)が、かわいい声で優しく・楽しく・わかりやすくプログラミングを教えてくれます。「霧島京子による1本3分程度のレッスン動画」に加え、「ブラウザ上でコードを書いて実行できるオンライン実行環境」「複数の練習問題」で、初心者でも無理なくプログラミングを習得することができます。
paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。
自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。