paiza times

paizaがお届けする、テック・キャリア・マネジメント領域における「今必要な情報」を届けるWebメディア

logo

paizaがお届けする、テック・キャリア・マネジメント領域の「今必要な情報」を届けるWebメディア

【アルゴリズムとは】初心者でも学べる!レベル別・サイトと書籍11選

f:id:paiza:20171218175854j:plain
Photo by Ian Ruotsala
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

最近は機械学習、AI、ビッグデータといった分野が話題になっているので、ディープラーニング、ニューラルネットワーク、クラスタリングなどなどについて、よく勉強している!という方もいるかと思います。

一方で、「プログラミングを始めたばかり」という方や、「プログラミング経験はあるけどアルゴリズムについてきちんと勉強したことはない」という方にとって、アルゴリズムの勉強って少しハードルが高いですよね。「いつか勉強しようかな~」と気になってはいるものの、プログラミング言語の書き方やフレームワークの使い方などを学ぶ方を優先してしまい、「いつか」が永遠に来ない…という方も多いのではないでしょうか。

ただ、アルゴリズムについてよく知らないと

  • 複雑な処理をどう実装すべきかわからない
  • どう実装すべきかわからないのでとりあえず力技で作る
  • 力技で作っているのでコードを改修するときに面倒なことになる
  • できる人に見てもらうと「もっといいやり方があるよ」と言われる
  • でも自分ではその「いいやり方」が思いつけない

といったことが起こりがちです。

そこで今回は、アルゴリズムの勉強に役立つサイトと書籍をレベルごとに紹介していきます。

■入門者~初心者向け

VisuAlgo

f:id:paiza:20171218134745j:plain

アルゴリズムをビジュアルで見せてくれるサイトです。以前は英語版だけでしたが、現在は一部日本語にも対応しています!

f:id:paiza:20171218134958j:plain

アルゴリズムは文章だけで解説されてもなかなか理解しづらいですが、こちらはこんな感じでコードとアニメーションを見ながら動きを確認できるので大変わかりやすいです。(上の画像はバブルソートです)

アルゴリズム図鑑

f:id:paiza:20171218134430j:plain
料金:ダウンロード無料(全項目の表示は+360円)
iOS版はこちら】【Android版はこちら
アルゴリズム図鑑は、アニメーションを使った解説を見ながらアルゴリズムを学べるアプリです。

f:id:paiza:20171218134540j:plain

鍵つきのアルゴリズムは課金をしないと見ることができませんが、無料版でも多くのアルゴリズムを学ぶことができるので、初心者でも気軽に試すことができます。

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

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

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

  • 作者:伊藤 静香
  • 発売日: 2012/05/14
  • メディア: 単行本(ソフトカバー)
アルゴリズムの入門書として、プログラミング初心者にとってもかなりわかりやすい1冊だと思います。分岐や繰り返しなど、プログラミングの基礎的な処理についても解説がありますので、「まだプログラミングの基礎もおぼつかない…」という人でも無理なく読み進められる…と思います。

◆「アルゴリズム」のキホン

こちらもアルゴリズムを初心者向けにかみくだいて解説してくれている入門書です。フルカラーで図が多く、非エンジニア職の方でもとっつきやすいのではないかと思います。

■中級者向け

paizaの【毎週火曜・3週連続】24時間限定出題!テストケース開示問題

paizaでは、12月12日(火)より、3週連続で毎週火曜に24時間限定スキルチェック問題を出題しています。次回は12月19日(火)です!

普段のスキルチェック問題では、解説や解法のヒントなどは一切公開しておりませんが、こちらの24時間限定問題は、挑戦していただいた全ての方に解説とテストケースを配信いたします。「プログラミング問題に挑戦してみたいけど、少し難しい問題になると効率のよい解き方がわからない…」という方に最適です!

24時間以内に問題に解答した人の中から抽選でAmazonギフト券や技術書など週替わりプレゼントも当たりますので、ぜひ挑戦してみてください!

paizaラーニング「アルゴリズム入門編」

動画でプログラミングが学べる「paizaラーニング」では、各言語のレッスンはもちろん、「アルゴリズム入門編」のレッスンも公開しています。

paizaラーニング では、動画レッスンを見て、その場でレッスン内容をプログラミングすることで理解を深め、その後に練習問題を解いて応用力をきたえることができます。

8月13日はpaizaの日!怪盗813からの挑戦状

「怪盗813からの挑戦状」は、怪盗813から出題される謎(※プログラミング問題)を解いてお宝を手に入れるキャンペーン問題です。プレゼントキャンペーン自体は終了しておりますが、現在も問題に挑戦して結果を見ることはできますので、ぜひ挑戦してみてください!

「問題を見たけどよくわからない…」という方は、上でご紹介したpaizaラーニング「アルゴリズム入門編」で解き方の解説もしておりますのでぜひごらんください。

一週間で身につくアルゴリズムとデータ構造

sevendays-study.com
アルゴリズムとデータ構造の学習サイトです。こちらはすでにプログラミングの基礎知識があることを前提とした内容になっているので、プログラミング入門レベルの学習が終わってから始めるのがよいかと思います。

◆アルゴリズムの基本

アルゴリズムの基本

アルゴリズムの基本

アルゴリズムの基本は、基本的なソートやグラフに関するアルゴリズムが図と一般用語で解説されています。

どこまでが初心者向けで、どこからが中級者向けの書籍かというと難しいところですが……。こちらは、多少数学的な知識などを前提とする箇所もあるため、プログラミング自体が初心者の人や数学が苦手な人にはちょっと難しいかもしれません。初・中級者向け?ぐらいの立ち位置かなと思います。

入門書じゃ物足りない人や理系出身の人、既にある程度プログラミング経験がある人なら、この辺の書籍から始めてもよいかと思います。

◆The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition 日本語版

スタンフォード大の数学者、クヌース先生の著書です。ぶ厚いですが、基本となるアルゴリズムについて考え方も含めて丁寧に説明されていて参考になりますし、実際にコーディングしながら読み進めていくとより理解が深まります。

◆アルゴリズムイントロダクション 第3版 総合版

アルゴリズムイントロダクションはアルゴリズムに関する書籍の定番中の定番というか、とにかく基本的なアルゴリズムに関する詳細が網羅されています。

これがあればアルゴリズムのことは大体OKと言えばOKなのですが、プログラミング初心者が最初の一冊として挑戦するには難易度が高いしぶ厚いので、既にある程度プログラミングができる人、上記の「アルゴリズムの基本」が理解できて「もっと詳しく書かれた書籍がほしい!」という人によい書籍かなと思います。

■まとめ

アルゴリズムの勉強は、一見ハードルが高そうに思われがちなので、プログラミングを始めたての人でも取っつきやすそうなものから、中・上級者まで対応できる書籍まで紹介してみました。

アルゴリズムを知るとプログラミングについてより深く考えられるようになると思いますので、ぜひ勉強してみてください。


paizaでは、未経験者でも動画を通してアルゴリズムやプログラミングを学べる「paizaラーニング「アルゴリズム入門編」」を公開しております。

また、上でもご紹介した通り、12月19日(火)・12月26日(火)に、挑戦すると解説とテストケースが見られる24時間限定スキルチェック問題の出題を予定しております。火曜日にぜひ挑戦してみてください!





paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。

そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。

スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。

paizaのスキルチェック

paizaのおすすめコンテンツ

CGC codemonster プログラミングゲーム「初恋プログラミング研究会 ~海に行こうよ~」 CGC codemonster プログラミングゲーム「コードモンスター大図鑑 プログラミングでゲットだぜ!」
paiza転職 paiza新卒 EN:TRY paizaラーニング 記事内に記載している情報は、記事公開時点でのものとなります。 Copyright Paiza, Inc, All rights reserved.