Javaプログラミング

クリエイター・プログラマーを目指している人のためのメディアくりぷろメディア-クリエイター・プログラマーを目指している人のためのメディア

2021.10.19更新

プログラミングだけではだめ!アルゴリズムも学ぼう

プログラミングだけではだめ!アルゴリズムも学ぼう

プログラミングを学ぶということと、プログラミング言語を学ぶ、ということは違います。

ですが、この違いをよく理解しないまま学習を進めて、プログラミングを学ぶつもりが、いつのまにか言語の使い方に終始してしまう方が、非常に多いように感じます。

結果「あれ?思っていたよりもプログラムが書けない」「私には向いていない」と思って挫折してしまう方が多いのです。

これはとてももったいないと思うのです。そう感じるほとんどの方は、プログラミングを学んでないと思います。

Javaの構文、ルールを学んで終わり、ではないのです。

プログラミング言語が使えるようになって、さらにアルゴリズムという「解法」「どのようにプログラムを組んでいくか」という手法を学ばなければ、プログラミングをすることはできません。

プログラム言語の文法や使い方を学びながら、このアルゴリズムと並行して学ぶべきだと、わたしは考えています。

アルゴリズムとは何かイメージする

たとえば、100人の男女がいる中で、友人を探したいと考えてください。

その際に、あなたはどのように友人を探し当てますか?

一人ずつ確認して回る方法もあります。

友人が男性だった場合、100人を男女のグループに分けて探す方法もあります。

大声で名前を呼んで探す方法だってあると思います。

このように、同じ目的であっても、どうやって答えを導くか、その解き方、解法は人それぞれだと思います。

でも、どんな方法をとっても、結果的に友人は探せるはずです。

プログラミングも同じで、例えば「ある10個の数値を、小さい順に並び変えたい」となった場合、並び替えのアルゴリズムがいくつか存在します。

絶対それでないといけない、というものは基本的にはありません。

どんな方法を選択しても、そのプログラムが並び替える動作を行っているのであれば、ちゃんと並び替えることはできます。

でも効率、非効率、という問題はあります。

そのうえで、「絶対の答え」はないのですが「最適解」というのはあるわけです。

すでにその「最適解」のパターンは、先人たちが作り上げてくれています。

わたしたちはその「最適解」であるアルゴリズムを学び、自分が作成したいプログラムに応用するのです。

「10個の数値を、小さい順に並び替えたい」という、まったく同じシチュエーションはないかもしれません。まったく同じでなければ、学ぶ必要がないと感じるかもしれません。

ですが、その基本を知っておくと、さまざまな応用ができるようになります。 そしてその繰り返しによって、自分が思うようなプログラムを作成することができるのです。