プログラミングって難しいよなぁ
そもそもワケが分からない
なんか記号とか多いし………
このように漠然とした難しさを感じる点ではプログラミングは数学と同じものだといえます。そして、この2つほど得手不得手が分かれるものもないでしょう。
そこでこの記事では、どうしてプログラミングが難しいのかを数学との共通点を基に自分の言葉で説明してみます。
プログラミングには必ず数学がからんでくる
そもそも現代のコンピュータは数学から派生したものだといえます。なぜなら理論的な側面でいうとコンピュータは数学をもとに動いているからです。どのようなプログラムも突き詰めてしまえば「0」と「1」の電気信号に帰着します。
しばしば
プログラミングに数学の知識は必要ない
という言説を目にします。
これはある意味では正しいことです。プログラミングでシステムやアプリケーションを開発する際、数学の知識をフル活用することはあまり多くないからです。
そしてなぜ数学を使わなくてもいいのかというと、現代のコンピュータでは開発の生産性を高めるために数学的要素がうまく隠されているからです。プログラムを組むときに2進数を駆使してパンチカードに穴をあける人はもはや存在しないでしょう。
ただし、分野によっては高度な数学の知識がないとどうにもなりませんし、品質の高いプログラムをつくるためには分野に関係なく必要になってきます。
プログラミングも数学も人間がつくったもの
ここでは「記号が多い」という観点から説明していきます。
プログラミング言語も数学も、ともに人工言語です。日本語や英語などといった自然言語とは異なり、使い道も表現方法もごく限られます。使われる文字も英数字や記号のみですからまったく融通が利きません。
プログラミング言語で「あれ、取ってきてよ!」といった曖昧な命令はできませんし、数学で「この小説めちゃくちゃ面白かった!」と表現することはできません。
プログラミング言語はコンピュータに対して命令するだけ、数学は数そのものや図形の性質の証明をするだけなのです。
プログラミングも数学も抽象的過ぎる
最後に「ワケが分からない」という点から説明してみます。
プログラミングと数学には抽象的な考え方が多く、それを理解するまでには大抵多くの時間とエネルギーを費やすことになるでしょう。
私は数学についてそこまで詳しくないので、ここではプログラミングを例に説明させてください。
「オブジェクト」と「インスタンス」という用語があるとします。これらがどのようなものかを簡潔にまとめると、次のようになります。
オブジェクトを「モノ全般」とするなら、
インスタンスは「具体的なモノ」
とすることができます。
…………ご覧のとおり、抽象的過ぎて何のことかわかりづらいでしょう。
ここで解説することも一応できますが、そのためには少なくとも記事をこちらとは別に数本は書かなければいけません。記事の趣旨からも外れるので止めておきます。
ともあれ、この分かりにくさと説明のしづらさこそ、プログラミング理解するうえでの最大の障害だと考えています。もちろん数学についても同じことがいえるでしょう。
まとめ:めげずに理解すれば「最強」かも?
ほかにも両者を難しくしている要素はあると思いますが、ここまで説明したことが大方メインでしょう。
しかし、プログラミングにしろ数学にしろ、ある程度でも分かってしまえばさほど大したことはないように感じます。めげずに向き合いさえすれば、ちゃんと便利なツールとして活躍してくれるでしょう。
私はプログラマとして働いて金銭を得ていましたし、つたないながらも数学と格闘したことで論理的に物事を考えられるようにもなりました。
プログラミングスキルと数学でもがいた経験があれば、たいていの問題はなんとかなると私は信じています。
それでは今回は以上です。
最後までお付き合いいただきありがとうございます。