「アルゴリズム」とは、何らかの問題を解くための計算の実行手順のことです。
アリゴリズムの1つひとつはシンプルなものも多いですが、
大きなアルゴリズムだったり、多くのアルゴリズムを組み合わせたりすることで、
複雑な機能を実現することができます。
新しい効率的なアルゴリズムをビジネスで活用すれば、顧客に
- 新しい機能による、革新的な「問題解決」
- 効率的な処理による「時間節約」
という付加価値をもたらすことができ、 同業他社への競争優位性にすることができます。
例えば、人工知能アルゴリズムを活用した、顧客の問題解決方法の提案などは、現在多くの企業がしのぎを削っています。
もしあなたがエンジニアやプログラマとして就職・転職を希望している場合は
- 既存アルゴリズムに詳しくなる
- 問題解決に最適なアルゴリズムを選ぶことができる
といった能力を磨いておくことで、付加価値の高い製品を、短時間で構築することが可能となり、あなたの市場価値を高めることができます。
さらに、そもそも既存のアルゴリズムでは(効率的に)解けない問題について、
新しいアルゴリズムを開発するといったアルゴリズム理論に関係する能力を磨けば、
就職や転職の際に大きなアドバンテージとなります。
といっても
- アルゴリズムの勉強方法って、どうすればいいの?
- アルゴリズムの考え方は、どう身につければいいの?
- アルゴリズムの書き方にコツはあるの?
と思われる方も多いかと思います。
そこで本記事では、アルゴリズムの勉強方法や、考え方、書き方など、
アルゴリズムをシッカリ学びたいあたなのために、
アルゴリズムをプログラミングしながら学べるおすすめの本や教科書・参考書などをご紹介します。
本記事の概要
アルゴリズムの勉強方法とは?プログラミングコンテストについて学べる書籍などもこちらです
まずは、アルゴリズムの基礎をひと通りサクッと学ぶのがおすすめです。
アルゴリズムは初めて、といった初学者の方はこちらをどうぞ↓
『アルゴリズムとは?アルゴリズムに入門したいあなたにおすすめの本はこちらです』
アルゴリズムを勉強したことがある方が、
一生、辞書的にも使える、アルゴリズムの教科書の定番といえばこちらがございます↓
アルゴリズムイントロダクション 第3版 総合版 (世界標準MIT教科書)
本書は、アルゴリズムの教科書の定番のシリーズです。
計算幾科学の専門家の方4名が、教育用にまとめており、アルゴリズムの解説だけでなく、アルゴリズムの設計などの指針が得られる、充実の1冊です。
- アルゴリズムにはどんな概念があるのか
- それらの概念はどんな解析により表現できるのか
のようなポイントもシッカリ学べ、アルゴリズムの理解・設計・実装について、学部から大学院レベルの内容について、1冊で学べます。
もちろんエンジニアや研究者の方が手元に置いて、辞書のように使うこともできる良書となっています。
練習問題も豊富なので、1つひとつ身につけていくことで、確実にアルゴリズムの力を磨いていくことができます。
本書1冊を手元に置いて、使い込んでいくのも1つの勉強方法ではないかと思います。
ちなみに、本シリーズには幾つかのバージョンがあります。
基本的には3部作で、それらをまとめた総合版があります↓
上の3冊をまとめた総合版がこちらになっています↓
原著もございます↓
総合版は分厚いので、授業で持ち運びが多い学生さんなどは、Kindle、もしくは、分冊でお求めになると良いかと思います。
また、一度学ばれた経験がある方が、最近のアルゴリズムも含めて、サクッと復習したい、といった場合なら、リファレンス本として以下のものもございます↓
新規アルゴリズムとして、(ボロノイ図の計算で使う)フォーチュンアルゴリズム、マージソート、マルチスレッドクイックソート、AVL平衡二分木、R木と四分木などが追加されています。
アルゴリズムの勉強方法とは
アルゴリズムの勉強方法ってどうしたらいいんだろう?
と思われる方も多いかと思います。
アルゴリズムの勉強方法の1つに「プログラミングコンテスト」を活用する方法があります。
プログラミングコンテストとは
プログラミングコンテストでは、与えられた問題について、効率的なアルゴリズムを、正確に迅速に運用する能力を競います。
プログラミングコンテストで優秀な成績を収めることで、
- 自分の能力を客観的に測定できる
- エンジニアとしての価値を客観的に示すことができる
- 就職や転職などでのアピールポイントにすることができる
といったメリットがあります。
何より競う人がいることで、やる気が持続して、
その結果、能力が伸びやすくなります。
というと、プログラミング上級者のためのものでしょ?と思われるかもしれませんが、
初心者向けの問題も用意されており、練習問題集として使うことも可能です。
その他にも「オンラインジャッジ」と呼ばれる、
プログラミングコンテストの過去問題集の自動採点システム
もあります。それらを活用してアルゴリズムの勉強を深めていくことも可能です。
そこで、プログラミング・コンテストってなに?という方から、
- どんな問題が出るのか
- どんな対策をすればいいのか
- IT企業でのコーディング面接の対応
など、アルゴリズムを勉強しながら、就職や転職にも活かしていきたいあなたにおすすめの勉強方法として、以下の書籍をご紹介します↓
プログラミングコンテストチャレンジブック 第2版 ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~
本書は、プログラミングコンテストの参加経験豊富な著者らによる、アルゴリズムの基礎から高度な内容まで学べる1冊です。
初心者からでも学びやすいように、
- コンテストの概要が理解できる、準備編
- 基礎からスタートできる、初心者編
- ここで差がつく、中級者編
- さらに極める、上級者編
となっていて、自分のレベルに合わせて始めることができます。
アルゴリズムの基礎から、プログラミングコンテストに出やすい典型問題の解説に加えて、
それらを活用するための理解や、オリジナルの問題などもあります。
まずは自分で解法を考えてみて、その後解説を読むことで、理解が促進されるかと思います。
様々な問題を解いていきながら、アルゴリズムの運用能力を効率的に高めていける1冊となっています。
プログラミングコンテストやコーディング面接などに関する書籍はこちらもございます↓
というわけで、本記事では、アルゴリズムの勉強方法の1つとして、
プログラミングコンテストや、オンラインジャッジを活用する方法などをご紹介しました。
こちらもございます↓
問題解決力を鍛える!アルゴリズムとデータ構造 (KS情報科学専門書)
しっかり学ぶ数理最適化 モデルからアルゴリズムまで (KS情報科学専門書
Modern C++チャレンジ ―C++17プログラミング力を鍛える100問
コンピュータの構成と設計 第5版 上
コンピュータの構成と設計 第5版 下
CPUの創りかた
アルゴリズムパズル ―プログラマのための数学パズル入門
問題解決のPythonプログラミング ―数学パズルで鍛えるアルゴリズム的思考
プログラマの数学第2版
数学ガールの秘密ノート/行列が描くもの
技術者のための基礎解析学 機械学習に必要な数学を本気で学ぶ
これだけはおさえたい 文系プログラマーの数学知識 基礎の基礎 (プロフェッショナル「確実」養成講座)
これだけはおさえたい ゲームプログラムの物理の知識 基礎の基礎
ゲームプログラマになる前に覚えておきたい技術
ゲームプログラマのためのコーディング技術
Python3ではじめるシステムトレード ──環境構築と売買戦略 (Modern alchemists series)
ITと数学 (Software Design別冊)
こちらの記事もございます↓
『アルゴリズムとは?アルゴリズムに入門したいあなたにおすすめの本はこちらです』
『「アルゴリズム」を「Python」で学びたいあなたにオススメの書籍はこちらです』
『「Python」についての記事の一覧(目次)はこちらです』
『「テキストマイニング」についての記事一覧(目次)はこちらです』