プログラマーに数学の知識は必要なのか? 個人的な経験から言うとあると便利だとは思うよ。ゲーム開発や暗号作る時によく使う。だからといって数学ができなくても、大丈夫と言えば大丈夫かも。。。
プログラマーに数学の知識が必要か?
もちろんあるに越したことはない。
ただ自分は数学はできない。高校から文系だし、数学なんて授業で勉強したことがなかった。それでもゲーム会社でプログラマーしていた時期もあったし、数学ができなくても何とかやっていけなくはない。
いい例かはわからないが、競技プログラミングで成績が良いのはプログラマーとして素晴らしい事だが、競技プログラミングができないからといって、悪いプログラマーというわけではない良いプログラマーもいる。
たとえば、ゲームで使用するプログラミングには三角関数を使った距離判定や、関数でバイオリズムをよく作ってた。足したり引いたり掛けたり割ったりしてダメージ式もプログラミングしていた。
どれも数学のできない私からしたら式を考えるのは無理なことだった。
難しい数式を使わないとプログラムを組めなそうだし、そもそも意味が理解できない。
そうなんだけどコードは書ける。
なぜコードを書けるか?
1つ目の理由は
だいたいWeb上に答えがある。
Github探していたらだいたい参考になる式があるし、式の説明もWebサイトを探しているとどこかにある。その際に英語が必要になることはあるが。
エンジニアとして失格だがコピペしてトライアンドエラーで調整すればわりとなんとかなる。
2つ目は式はゲームプランナーやディレクタが用意してくれる。。。。。
こんなことを言うのはあれだが、プログラマーが勝手に式を作ることはない。
プログラマーがダメージ式を用意することも調子のバイオリズムを作ることはない!!
ゲームプランナーやディレクタがExcelとかで何度も式を試行錯誤して作るからだ。
シミュレーションゲームのバイオリズムやRPGのダメージ計算式はゲームの楽しさを決めるファクターだ!!プランナーやディレクタが一番こだわるところ。
プログラマーはだまって提示された式を組み込むだけだ。
なのでプログラマーに必要なのは提示された式を利用している言語に落とし込む力、数式が正しいことを確かめるテストを書く力が必要だ。数学の知識としては()を使った式の順番や右辺と左辺の移動させた際の符号の逆転のような基本的な知識くらいだった。
あと、3Dグラフィック系の会社では数学博士が在住していた。数学的に難しいことはその数学博士に聞けば何とかなった、
自分の事例は大手2社のゲーム会社の話なので、スタートアップではまた別の話ではあると思う。ただ数学ができないからって、未来を諦める必要はないと思う。
今ある知識よりもこれからつけていく知識!
プログラマーに必要なのは数学の知識よりも学び続ける意思だ!と思う
暗号を作る話も書こうとしたが、長くなったので割愛させていただきます