プログラミングには、「知識」と「知恵」が必要です。これまで連載でずっとお話してきたプログラミング言語の習得は、「知識」に相当します。プログラミング言語は、コンピューターに命令を伝えるための手段。いわば基礎で、むしろそこからがはじまりとも言えます。自在にプログラミングできるようになるには、命令自体の組み合わせや組み立て方も習得しなければなりません。これが「知恵」です。最終回の今回は、この「知恵」についてお話しします。

数学的な考え方とプログラミングの関係

さて、いま算数や数学の話が出てきましたが、それとプログラミングの関係について、少し補足しておきましょう。

プログラミングは、算数や数学と、とても密接な関係があります。正三角形の例で説明したように、図を描いたり、キャラクタを動かしたりする場合は座標で指定しますし、各種計算も、算数や数学の知識が絡んできます。逆に、学校で学ぶような数学の問題を、パソコンを使って解くこともできます。たとえば、「最大公約数の計算をする」「一次関数、二次関数の解を求める」「因数分解する」などは、プログラムをつくれば、比較的簡単に解けます。

また最近では、数式を入れたときにグラフを描くソフトもあるので、数学を学ぶときの手助けとしてパソコンを活用し、理解を高めるという使い方も考えられます。

実務的な考え方とプログラミングの関係

ここでは、正三角形を描くというような、いかにも算数や数学に関係している問題を扱いましたが、現実のプログラムはどうなっているのでしょうか? つまり、パソコンで動くソフトやスマホで動くアプリなどです。

実は、こうしたソフトやアプリも、その中身の処理は、ほとんどが計算処理の塊です。Excelなどの表計算ソフトはいかにも内部で計算していそうですが、Wordのようなワープロソフトも、文字の大きさや位置を計算するのにたくさんの計算をしています。そしてゲームもキャラクタは、すでに述べたように座標を計算して動かしているわけですが、ガチャなどは確率計算で当たりがでるかどうかを計算していますし、敵と出会ったときに勝つか負けるかなどは、戦闘力や防御力などのさまざまなパラメータを計算して、その大小比較することで決めています。

ですから、何か考え方が違うというようなことはありません。ただ違うのは、「データをファイルとして読み書きしたり、通信したり方法」とか「ユーザーがクリックやタップしたことを知る方法」など、「ユーザー操作」「ファイル操作」「通信」に関する命令が、いくつか絡んで来るという点は違います。こうした点は、やり方が決まっているので、プログラミング言語を習得するのと同様に、知識として身につける必要があります。

プログラムに慣れてイディオムを吸収していく

では、こうした「考え方」を習得するには、どうすればよいのでしょうか?それには、ともかく慣れてプログラムをつくっていくしかありません。プログラムが読めることと、プログラムが書けることとは、別の能力です。

まずは、プログラミング言語の基本的な内容を習得します。すると、プログラムが読めるようになります。読めるようになったら、多くの参考書を見て、どんなプログラムが書いてあるか、その意味を理解するのです。そして次に、それをまねしてつくってみるのです。そうすると、それがだんだんと身についてきます。

ここでは「考え方」などとたいそうなことを言いましたが、実は、典型的な考え方のほとんどは実は決まっていて、英語のイディオムのようなものです(図書館に行くと、「アルゴリズム辞典」のような本があると思います。先ほど述べた、「最小公倍数を求める方法」などは、そうした辞典に載っています)。ですから、何度も繰り返して書くことで、自然とそのイディオムが出てくるようになります。

そうすると、だんだんと自分の好きなようなプログラムが書けるようになり、とても楽しくなってくるはずです!

ぜひみなさん、挑戦してみてください。

これまでの記事はこちらから。

コメントを読む・書く

This article is a sponsored article by
''.