
【学び】「プログラム」って何だろう?
◇デジタルの分野は似たような言葉が多くて、ややこしいですね。たまに「ゲームのプログラムができるようになりたい」などと耳にします。これはたとえるなら「朝ごはんになりたい」と似た意味合いになってしまいます。食べられてしまいますよー!
「ゲームのプログラムがプログラミングできるようになりたい」、これが正解。
プログラムは「ドラゴンQエストのプログラム」のような名詞、プログラミングは「プログラムを作っていく作業を示す「動詞」だったのです。
◆お次は、最悪なことに、言葉(単語)の知識や意味をたくさん知っていても、外国語の会話がペラペラお気軽にできない点と、プログラムを作る作業こと、プログラミングが同じ状況だということ。
最低限、言葉を正しく示さないと「プログラミングしたぞ!」と叫ぼうとも、得体のしれないナニか(ファイル?)ができただけです。
では、プログラムと呼べる物を作るには?
はい。ある程度の型や構文は決まっていて、かつ、人それぞれに正しく言葉(単語や指示)を入力したり並べたりと「プログラミングして」プログラムにしなければ、やっぱり得体のしれないモノができるだけ。未来永劫、プログラムと呼べるものは完成しません。
◇昔から耳のとがった異星人も言っています。「それは非論理的です」と。ええ、まさしく、プログラミングではご法度です。
論理的な思考力がプログラミング時に、必要となります。それら論理的な考えを元にして、目的や問題を「うまく処理し解決するものこそ」、プログラムです。そして、これらをカタチにしていく作業がプログラミング。おまけで、作る人(生き物)はプログラマと呼びます。
◆さて、先ほどプログラミングは人それぞれと書きました。さまざまな問題をうまく処理する方法(カッコよく”アルゴリズム”と呼びます)は、実は……そうです。そう、アルゴリズムはひとつとは限らないのです。
この問題でしたら、どうでしょう?
・1+2+3+……+99+100はいくつ?
この問題を解くため、シンプルな考えの方は、数(値)を順番に足し算していくプログラミングをするでしょう。正解です。5050と、答えを計算するプログラムが作れます。ただ……!
◇スゴイ人(注:上のシルエットはスゴイ人ことカール・フリードリヒ・ガウス氏とは、おそらく違います)……が発見した”ガウスの計算法”ことアルゴリズム(解決への考え方でした)を知っていたら「101×50」とだけ、プログラミングで指示をすれば完了。わずかな処理でまったく同じ答えを導き出せます。
◆どちらも、プログラムとしては正解ですが、処理をやらされる機械的(?)には「1回の計算ですぐ処理できる方がカンタン」なうえ、効率アップ(動作が速いプログラムの完成)につながります。
いかに最適な方法や手順を考えるか、そう、論理的思考で挑むか、アルゴリズム勝負はプログラミングの「だいご味」といえます。
これらプログラミングに欠かせない事柄と知識、操作方法を体験し、スキルとして得ていきませんか?
(文責)米村貴裕
いいなと思ったら応援しよう!
