こんにちは、谷口です。
プログラミング初心者のみなさん、アルゴリズムの勉強はしたことがありますか?
プログラミングの勉強を始めたばかりの方、アルゴリズムについてしっかり勉強したことないという方にとって、アルゴリズムを「いつか勉強したほうがいいんだろうな」と思いつつも、なかなか手を出す機会がなく、いつのまにか後回しになっているものではないでしょうか。
プログラミングを始めたばかりの頃はそれほど気にならないかと思いますが、エンジニアになって実務に入ったり大規模な開発に取り組むようになったりしたときに、アルゴリズムの知識がないと
- 複雑な処理をしたいときにどんな書き方をすべきかわからない
- とりあえずわかる作り方を駆使して力技で作る
- あとで機能や処理を追加したり改善したりするときが大変
- できる人に「もっといいやり方があるよ」と言われるけど、そのいいやり方が自分で作っているときは思いつけない
といったことが起こりがちです。
そこで今回は、プログラミング初心者でもアルゴリズムの勉強に役立てられそうなサイトと書籍をご紹介します。
アルゴリズム図鑑
アニメーションを使った解説を見ながら、いろいろなアルゴリズムを学べるスマホアプリです。
無料版でも多くのアルゴリズムを学ぶことができるので、初心者でも気軽に試すことができます。(すべてを見るには課金が必要です)
paizaラーニングのアルゴリズム入門編
動画でプログラミングが学べる「paizaラーニング」では、各プログラミング言語ごとの講座だけでなく、アルゴリズム入門編も公開しています。
paizaラーニングの「アルゴリズム入門編」では、FizzBuzz、フィボナッチ数やハノイの塔といった、就職・転職時の技術面接でよく出るプログラミング問題のアルゴリズムを解説しています。
VisuAlgo
アルゴリズムをビジュアルで見せてくれるサイトです。アルゴリズムは文章の解説を読んでもなかなか理解しづらいですが、画像のような感じで、コードとアニメーションを見ながら動作のイメージが確認できます。
アルゴリズムを、はじめよう
- 作者:伊藤 静香
- 発売日: 2012/05/14
- メディア: 単行本(ソフトカバー)
分岐や繰り返しなど、プログラミングの基礎的な処理についても解説がありますので、「まだプログラミングの勉強も始めたばかり……」「難しいアルゴリズムはよくわからない」といった方でもわかりやすいかと思います。
「アルゴリズム」のキホン
「アルゴリズム」のキホン プログラミングの基礎となる「アルゴリズム」の手引き書 (イチバンやさしい理工系)
- 作者:杉浦 賢
- 発売日: 2014/03/12
- メディア: Kindle版
こちらもアルゴリズムを初心者向けにかみくだいて解説してくれている入門書です。フルカラーで図が多く、エンジニア以外でプログラミングの勉強を始めたばかりの方でもとっつきやすいのではないかと思います。
アルゴリズムの基本
- 作者:トーマス・H・コルメン
- 発売日: 2016/03/11
- メディア: 単行本
基本的なソートやグラフに関するアルゴリズムが解説されています。こちらは、多少数学的な知識などを前提とする箇所もあります。そのため、プログラミング自体が初心者の人や数学が苦手な人だと、最初にとりかかるのはやや難しいかもしれません。入門書では物足りない人や既にある程度プログラミング経験がある人、数学系の知識がある人におすすめです。
アルゴリズムイントロダクション 第3版 総合版
アルゴリズムイントロダクションはアルゴリズムに関する書籍の定番中の定番で、基本的なアルゴリズムに関する詳細が網羅して解説されています。
これさえあればアルゴリズムのことはほぼ網羅できるのですが、プログラミング初心者が最初の一冊として挑戦するにはかなり難易度も高いし量も多いので、既にある程度プログラミングができる人、前述の「アルゴリズムの基本」の内容が理解できて「もっと詳しく学びたい」という方によいかと思います。
まとめ
というわけで、プログラミング初心者がアルゴリズムを学ぶときに役立つサービスや書籍をご紹介しました。
アルゴリズムの知識は、プログラミング問題で、より効率のよい解き方を考えるときにも役立ちます。paizaのスキルチェック問題では、プログラミング問題を解くとS・A・B・C・D・Eの6段階のランクを取得できるので、「アルゴリズムについてもっと勉強したい」という方もぜひ挑戦してみてください。
「paizaラーニング」では、未経験者でもブラウザさえあれば、今すぐプログラミングの基礎が動画で学べるレッスンを多数公開しております。
そして、paizaでは、Webサービス開発企業などで求められるコーディング力や、テストケースを想定する力などが問われるプログラミングスキルチェック問題も提供しています。
スキルチェックに挑戦した人は、その結果によってS・A・B・C・D・Eの6段階のランクを取得できます。必要なスキルランクを取得すれば、書類選考なしで企業の求人に応募することも可能です。「自分のプログラミングスキルを客観的に知りたい」「スキルを使って転職したい」という方は、ぜひチャレンジしてみてください。