
【プログラマーに数学の知識は不要です】理由と背景を解説します
はじめに
プログラマーという職業について考えてみると、理系というイメージが強く、
数学のなどの知見が仕事でお多く用いられるのでは?という風に思われる方が多いです。
でも実際のところは、プログラマーとしての仕事で数学の知識をフル活用することは少ないです。
もちろん、プログラマーの中でも様々な種類があり、特殊な領域のプログラミングを行っている人にとっては、
所謂「数学」的な計算をしたり、図解をしたり、数式を用いたりする必要があるんだと思いますが、
普通にWEBとかスマホのアプリ作ってる人が、数学するっていうことは通常、業務では起こり得ないです。
この記事では、そこら辺の「プログラマーと数学」に関する深い考察をお届けしようと思っています。
- プログラマーは数学を学ぶべきなのか
- プログラマーという仕事は数学を使うのか
などなど、興味ある方は最後まで読んでみてください。
プログラミングに数学の知識が必要ない理由
プログラミングと数学の関係について
プログラマーと数学の関係性を導き出そうとすると、意外なほどに関係があまり無いことに気がつきます。
特に昨今、多くの人がイメージするwebプログラマーとか、スマホ開発のエンジニアとかに関して言えば、
多くの場合『メロン』と『メロンパン』くらい違うと捉えてもらって大丈夫です。
勿論、掛け算とか割り算とかが全く理解不能であるという人にとっては、プログラミングなんて出来ないわけですが、
普通に電卓を使って計算ができる程度の人であれば、数学が苦手であることが、プログラマーとしての仕事に直接影響を与えることは皆無です。
プログラミングは数学が苦手でも問題ない
プログラミングが超・苦手でも、プログラマーとして働くことは全然出来ます。
今の段階で、分数を使った割り算が出来ますか?とか聞かれて、チンプンカンプンでも問題ないです。
普通に、その程度の数学であれば、自分でネットで調べれば出来るようになる人が殆どだと思いますし、
そういう数学の知識が、あってもなくてもプログラミングとは関係ないからです。
数学はアルゴリズムの理解に役立つ
プログラミングには、「アルゴリズム」という言葉があります。
これは、所謂デザインパターンとか呼ばれているもので、ある特定の課題を解決するためには、
〇〇というアルゴリズムを使うとサクッと解決できる、みたいなヤツなのですが、
数学の数式とかを適応させて問題を解く感覚と、アルゴリズムの感覚は似てる部分も少しあって、
数学ができてると、こういうプログラミング的な感性を養う速度は、勿論早いと思います。
たまに数学の知識が必要な時もあるかもしれない
基本的に、WEBとかスマホのエンジニアになろうと思ったときに、数学の知見が求められることはないです。
でも、ある特定の領域のプログラミングをやろうとした時、時として数学の知見が求められることがあります。
それは、プログラミングというよりかは、現場の案件によって変わるものであると思ってください。
例えば、UI/UXで時計をクルクル回すようなインターフェースを、WEBとかスマホアプリで作らなきゃいけない場合があったとします、
こういう場合、ライブラリなどを使うことが出来なければ、時計の滑らかな動きなどを数式を使って計算して作る必要があったりします。
もしくは、極端ですがデータサイエンティストみたいな仕事は、プログラミングというよりも、むしろ統計学の知見が求められたりしますし、
時と場合によって、数学の知見が必要になる場合もあることは、一応覚えておきましょう。
数学の知識が必要な分野について
ゲームプログラミング
今少し例として出させてもらった、時計の動きを滑らかにUI/UXに落とし込むとか、
そういう実装が多発しそうなゲームプログラミングなどは、数式を使った計算をプログラムで組むことが多いかもしれません。
AI(人工知能)開発
また、データを分析するAIとかでも、
プログラミングよりも数学を駆使して統計学をしないといけないので、
数学の知見を持っている必要があります。
以ITエンジニアに求められる能力は『数学』ではない
論理的思考力
結論、ITエンジニアに数学の知見は求められません。
それよりも求められるのは、基礎的な学習能力だったり、論理的な思考能力です。
そもそも、数学なんて慣れみたいな所があるので、普通の一般的な大人なら、練習してれば誰でもある程度できるようになります。
数学ができること自体が優れているのではなくて、数学で体得できる論理的な思考能力だったり、
様々な側面から問題に取り組める視野の広さだったりが、プログラミングにも求められます。
ITの知識や興味
ITエンジニアに求められるのは、数学みたいな特定の知識ではなく、
プログラミングに対する旺盛な興味と関心です。
いくら数学ができたところで、コードに興味がない人物プログラミングをやったら、苦痛になるでしょう。
逆に、知識も経験も学力もなくても、コードを学ぶのが好きであるという気持ちさえあれば、
別に数学なんか出来なくても、どんどん賢くなっていくと思います。
なぜなら、数学の問題を解くのと、プログラミングで生じたバグを治していくのは、
ある種、同じ脳の場所を使っているからです。