私の周りでもプログラマに数学の知識が必要になるかどうかということがちょくちょく議論になったりするんで私なりのポエムを書いてみます。

数学の素養はプログラミングに必要か?

私個人の考え方としては「ただコードを書く」だけであれば正直必要ないのではないかと思います。ただ、設計や最適化などを意図したプログラミングを行うのであれば、数学の知識があって損することはないのではないかと思ったりします。

例えば

\sum_{k=1}^{n} k

という式をPythonのコードで書いた場合、以下のような関数で表せます。

sigma.py
def sigma(n:int):
    ans = 0
    for k in range(n):
        ans = ans + k
    return ans

しかしながら、(ここでは細かい詳細を省きますが)、上記の式は以下のような公式が成り立ちます。

\sum_{k=1}^{n} k = n(n+1)/2

上の例ですと、計算時間はO(n)となりますが、上の公式を当てはめると、O(1)の計算量で済むことになります。

これは極端な例かもしれません、しかしながら、最適なアルゴリズムの設計を考えるのであれば、このような数学的な素養が必要になると私は考えています。

数学の知識は必要か

これに関しては正直分野によると思います。上で上げたのはあくまで数学的な素養であって、直接的に数学の知識が必要になるかどうかという点に関しては別問題であるともいえます。
しかしながら、数学の知識があれば、例えば物理演算を行うようなプログラムの設計に携わることができます。また、最近流行っている機械学習はまさに統計学や線形数学などの数学を応用したものの代表例と言えます。

結局のところ

今からプログラマになりたいんだったら数学学んでおいて損はしないんじゃないかなぁ…と私のポジショントークも交えて思った次第ですw

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.