【読書レビュー】アルゴリズムとプログラミングの図鑑
基本情報技術者試験などのアルゴリズムの問題がよく分からな・・・
他のアルゴリズムの本を読んでみたけど、いまいちよくわからない・・・
複数のプログラミング言語で書き方を比較したい・・・
At Coder などの競技プログラミングの勉強を始めた・・・
そんな方に、おすすめの本を紹介します!
本書はほとんどが図解されており、かなり丁寧にアルゴリズムの考え方が解説されています。
そのため、紹介されているアルゴリズムの量はそこまで多くないですが、
基本的なことを理解するのにはもってこいの本です。
ぜひ一度、ご自身で手に取ってみて下さい!
それでは、紹介して行きます!
■アルゴリズムってなに?
アルゴリズムって聞くと
どんなことを思い浮かべますか?
「アルゴリズム体操はじめ!」
「アルゴリズム体操はじめっ!」
「こっち向いて〜」
ってはじまりそうですが、
本書では体操はしてないです 笑
アルゴリズムを考える前にまず、
あなたはなぜ、パソコンやスマホを使いますか??
仕事で必要だから・・・?
スマホがないと生きていけいないから・・・??
そうでしょう、今や必需品ですよね。
もう少し、掘り下げてみましょう。
スマホやパソコンで普段何してますか?
・写真やデータを撮る、作って保存する
・安全に資料をメールやSNSで送る
・データを集計する
・面白そうな動画や記事を見つける
・気になったコスメを調べる
・気になったお店への行き方を調べる
など、いろんなことやってますよね。
これって、こういうこと、便利にできたらいいなぁ〜
っていう思いを叶えてきた結果なんですよね。
なので、
パソコン&スマホを使う理由 = 「問題を解決すること」
そして、その問題を解決するために、パソコンやスマホを動かすもの
それが、
コンピュータを動かすもの = 「プログラム」
ただ、パソコンやスマホはプログラムに書かれたことしかできません。
なので、
プログラムの中身が重要になります。
何をプログラムに命令して、問題を解決するか?
ってことですね。
その時の問題解決の考え方
これが、アルゴリズムです!
「アルゴリズム」 = 問題を解決する考え方
■アルゴリズムっていつ使うの??
アルゴリズムが何者なのか?
何となくわかったけど、どう考えればいいの?
天才が考えたものだし、凡人にはわかりませーん。。。
ってなりそうですが
アルゴリズムを考えるっていうのは
普通の人が問題解決するのと同じことをすれば良いと言ってます。
どういうことか?まずは問題を整理することから始めます。
①目的
②現状
③結果
まず、これらをはっきりさせていきましょう
①目的
どんな問題を解決したいのか、その叶えたい目的をはっきりさせます。
②現状
現状はプログラムを考える時のインプットと一緒です。
今、どんな状態か?どんな前提条件があるか確認していきます。
③結果
どんな結果になっていると、目的を果たせるのか?
求める結果=アウトプットを明確にします。
①目的、②現状、③結果が整理できたら
あとはどう対応すれば、求める結果になるを考えればよい
その時、先人の知恵を拝借。
その知恵を拝借する行為がアルゴリズムを勉強することなんです。
■感想
この本は試験勉強用に読み始めました。
なぜかって言うと、アルゴリズムに強い苦手意識があったから。
基本情報技術者試験でいつも全く分からず、点が取れなかった記憶。
日商プログラミング検定で、アルゴリズムをコーデぃングできず、タイムアップになった記憶。
何でアルゴリズムなんて科目があるんだーー
って思ってました。
でも、この本に出逢ってアルゴリズムって使えるじゃん!?
なんだ、こういうことを言ってたのか!?
図解が多いので、何となくイメージできる。
イメージできるから、頑張って読み進められる。
そして、理解できる。
私と同じようにアルゴリズムに苦手意識のある人に届けたい。
そんな一冊でした!
最後まで読んでくださり、ありがとうございました。
この記事が、読んでくださった方の
何かを掴むきっかけになれば幸いです。