paiza times

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

logo

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

初心者でもアルゴリズムが学べる・身につく書籍とサイト一覧

f:id:paiza:20161206123613j:plain
Photo by Anders Sandberg
f:id:paiza:20140916135428p:plainこんにちは、谷口です。

皆さんは、アルゴリズムの勉強はどのようにしていますか?

情報系の学部出身の方は授業で勉強したことがあるかもしれませんが、文系の方や、プログラミングの業務経験のない方は、「そういえばちゃんと勉強したことない」という方も多いかと思います。(私もかつてそうでした……)

アルゴリズムとは、「問題を解くための手順を定式化した形で表現したもの」のことです。例えば、複数のデータを並べ替えるソートの方法として、バブルソートやヒープソートといったアルゴリズムがあるということは、アルゴリズムをきちんと勉強したことがなくても、知っている方は多いかと思います。

仕様書の通りにコーディングをしていくだけの業務であれば、アルゴリズムを勉強する必要はないかもしれません。さらに前述のようなソート等に関しては、多くの場合既に関数が用意されており、アルゴリズムを理解していなくても処理を追加することができます。

しかし、ソート一つをとっても、アルゴリズムを理解していなければ、どんな種類のソート方法があり、処理によって最適な方法はどれなのか……ということを判断することはできません。

また、問題が発生した時に、中でどのような動作が実行されているかということが分かっていなければ、対処をするのは難しいでしょう。

そうは言ってもどう勉強したらいいのか分からない」「ちゃんと勉強したことないけどなんか難しそう」という方のために、今回はプログラミング初心者の方がアルゴリズムを勉強する時に役立ちそうな書籍とサイトをご紹介いたします。

■初心者の方がアルゴリズムを勉強する時に役立ちそうな書籍とサイト

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

アルゴリズムの入門書としてかなり分かりやすい書籍だと思います。アルゴリズムを学ぶ以前の、プログラミングにおける基礎的な分岐や繰り返しといった処理についても解説がありますので、「そもそもプログラミングの勉強も始めたばかり」という方にもお勧めです。

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

こちらも多くの図を使って、かなり初心者向けにかみくだいた解説がされているアルゴリズム入門書です。「情報系の勉強をしたことはないんだけど、仕事でエンジニアと会話することが多いので勉強したい……でも難しい書籍だと理解できない……」という場合にもよいかもしれません。フルカラーだしキャラクターもかわいいです。

◆3.アルゴリズムの絵本

絵本シリーズのアルゴリズム版です。こちらは多少C言語の基礎知識が必要かと思いますが、「アルゴリズムは文章だけで説明されても分かりにくいし、図が多い書籍があればとっつきやすいな……」という方にぴったりだと思います。

◆4.基本情報技術者 大滝みや子先生のかんたんアルゴリズム解法

基本情報技術者の試験対策向けの書籍で、疑似言語等アルゴリズムを考える必要がある問題の解法についてが詳しく解説されています。プログラミング経験が浅い人だと、こういった問題を解くのはなかなか難しいかと思いますが、初めて受験する人でも理解できるようにかなり丁寧に解説されています。もちろん受験しない人でもアルゴリズムの勉強に役立つと思います。

◆5.図解でかんたんアルゴリズム

アルゴリズムについての説明がコンパクトにまとまっている新書です。よく使うアルゴリズムのパターンがが多く収録されています。技術書は大きいものが多い中で、このサイズ感はありがたいです……。「分厚い本は読む気がしない」「通勤中に勉強したい」「いろいろなアルゴリズムの概要が知りたい」という方にとても良い書籍だと思います。

◆6.アルゴリズムパズル ―プログラマのための数学パズル入門

こちらは「パズルを解くことで、アルゴリズム的思考を鍛える」というコンセプトで、150問のパズル問題が収録されています。ハノイの塔やnクイーン問題など、採用試験等でもよく出される問題についても収録されています。「パズルを解くのが好きだ」「実際に問題を解いて頭を動かしながら勉強したい」という場合にぴったりです。問題解くの楽しいです。難問もたくさんありますが……。

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

こちらは参考書というよりも読み物として、コンピューターの知識がない人でも分かるような形で、アルゴリズムの解説がされています。検索エンジンのインデクシング、ページランク、公開鍵暗号法、誤り訂正符号、.パターン認識、データ圧縮、データベース、デジタル署名、決定不可性などの、実サービスでよく目にするアルゴリズムについてがわかりやすく書かれています。

◆8.数学ガール 乱択アルゴリズム (数学ガールシリーズ 4)

数学を題材にした小説、数学ガールシリーズの第4弾はアルゴリズムが題材になっています。確率、統計、アルゴリズムについて、魅力的な物語形式で書かれており、数学の知識がそれほどなくても式の立て方や、考え方について分かりやすく書かれています。

◆9.VisuAlgo

https://visualgo.net/en


アルゴリズムをビジュアルで見せてくれるサイトです。アルゴリズムは文章だけで概念を解説されてもなかなか分かりにくいことが多いですが、こちらはビジュアルで動作の様子を見ることができます。「文字で読んで何となく分かったような気がする」アルゴリズムについても、ビジュアルの動きで直感的に理解することができます。

■まとめ

プログラミングの勉強を始めると、言語の勉強が主体となり、アルゴリズムの勉強というのはなかなか後回しになってしまいがちかと思います。また、初心者の方や数学が苦手だった方(私だ……)には敷居が高いと感じてしまうかもしれませんが、上記のようなとっつきやすい書籍やサイトもありますので、一度勉強してみるとプログラミングに関する理解も深まってよいかと思います。




paizaは、技術を追い続けることが仕事につながり、スキルのある人がきちんと評価される場を作ることで、日本のITエンジニアの地位向上を目指したいと考えています。

自分のスキルを磨いていきたいと考えている方におすすめなのが「paizaラーニング」。オンラインでプログラミングしながらスキルアップできる入門学習コンテンツです。初心者でも楽しくプログラミングの基本を学ぶことができます。

paizaラーニング

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

paizaのスキルチェック

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

paizaのおすすめコンテンツ

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