SSブログ

論理思考と数学とプログラミングと私 [自然科学]

はっきり言って数学が嫌いです。算数は好きだったけど数学で嫌いになったという人は多いと思うけど、算数の頃から嫌いです。はっきり言って九九の頃から落ちこぼれ気味です。とはいえ、中学では中の上の高校に受かれるくらいの学力を身に着けることができたし、塾でそこそこ鍛えられた結果と言えるでしょう。

でも、高校ではほとんど勉強しませんでした。難しい事はあったのかもしれませんが、頭から覚えることが多かったのがしんどかったのと、それを土台にして計算をするというのがしんどかったのでした。なので大学受験をするときも数学を使わないで、ろくすっぽ勉強していない国語を選んでかろうじて大学に受かったのでした。

そもそも計算が得意じゃなかったんですよね。九九が苦手だったので筆算していても良く間違っていました。正直、集中してたくさんの計算を積み重ねるという単純作業が苦手なのです。だから仕事に入ってExcelがあって良かったと胸をなでおろした記憶があります。単純作業の積み重ねという点において、電卓を使っての計算も同様に間違えることが多かったので、一連の作業をいっぺんに視認できる上で即時に結果が出てくるというのは大変便利なことであった。


それと数学ができなくてもプログラマにはなれたというのは大きかった。基本的な論理思考があれば、あとはプログラミング言語の文法とライブラリの使用方法がわかっていれば大体のことはできたから。本当に芯の方からプログラミングを理解するのであれば数学はマストな知識となるのだろうが、使うにおいて理系でも文系でも備えていないといけない論理的思考は、高校を出ていれば大体大丈夫なレベルだろう。

なので数学に必要な知識とプログラミングに必要な論理思考はイコールではない。数学にプログラミングに必要な知識は含まれるが、どこまで深くやるかによると思う。結局、車に乗るのにエンジンなどの内部構造を知る必要がなく、運転技術があればとりあえずは乗れるのと同じように、本当に必要な技術というのは限られているものだ。だからTrue/Falseと二進数ぐらい覚えておけば大した問題はない。実際その程度なのだ。


ただプログラミングをやっているとどうしても数学の理解なしには進めないところが出てくるので、そこのところは迂回してやるしかない。MP3の時もフーリエ変換が出てきたと思うし、きっちり高校の数学は抑えてないと話にならないだろう。

http://www.yukisako.xyz/entry/fourier-transform

順を追って説明されているけれど、原理が分かるだけでどう使っていいかわからないレベルかもな。今ならソースを照らし合わせながら見てみればわかるのかもしれないが、もはや音楽の圧縮なんてiTunesか誰かが作ったものを使うだけなので、今エンコーディングの詳細を知っても大して特はない。MP3のエンコーダーが有料だった黎明期だったら意味があったのかもしれないけど。

それと同じことが、暗号の理解の時に起こり、ディープラーニングの時でも起こった。これを鑑みるとやっぱりコンピューティングというものは計算で成り立っているのだなと感じざるを得ない。使うにおいて基礎理論まで理解する必要はないのだが、知っておいた方が良いに越したことはない。というか、本当に使うだけの状態になってしまう。まぁ使えればそれでいいだろうし大したもんだろうけど、どこまで使えるのかというのは仕事で使わない限りはやっぱり自己満足の世界ではあるのだろうな。

ともあれ、何かを知りたいという欲はわりと社会人になってから出てくるものもある。大学に舞い戻る人もいるのだろうけど、僕の場合そこまでするほど広い知識を必要とするものでもないし、正直大学で勉強するんだったら自分で本とか買って勉強するわ、という事になる。というか、大学ってところの意味のなさは低学歴な大学ほど意味が少なくなると思うので、自分に合ったものを自分で見つけるというのも大人としてのたしなみの一つなんじゃなかろうかと。

まぁ勉強すべき場所がピンポイントでわかるというレベルだからそういうことができそうなんだけど、高校レベルとはいえ学び直すというのは結構しんどいかもしれない。というか、しんどいとわかるところまでやってくれって話なんだろうけど今まで時間が取れなかったしやる気も起きなかった。


老婆心から言うのだが、プログラマになるのは高校数学はほとんど必要としないが、英語ができないと情報を取れなくなるのと同じように、根本的に理解できなくなる時がきっと来る。だから高校での数学は一通り三年の教科まで習得しておいた方が良いよ。まぁそこまでプログラマに進路が固まっている人は少ないとは思うけど…。

コメント(0) 
共通テーマ:学問

コメント 0