ソフトウェアというのは
目的ではなく手段なので
IT エンジニアは
脇役としての要素が強い代わりに
さまざまな業種と相性が良いという
利点があります。

そういう意味では、
IT エンジニアが IT (情報技術) 以外の
知識を持っているというのは
それだけで武器になり得るのですが、
しかし、その中でも
ソフトウェア開発と
とりわけ、相性の良い学問があります。

・・・ それは、数学です。

たとえば、あなたが金融の知識がある場合
それは、金融のシステムを作る上では
立派な武器になります。

しかし、それでも
ユーザーである、それを専門としている人から
話を聞けば、何とかなるケースが多いのも事実です。

しかし、数学は使えれば
専門家のユーザーもフォローできない部分で
役に立つ事ができます。

例えば、私が作ってきた
Mass++ というソフトウェア・・・

mspp00

波形や、3次元画像、ヒートマップなんかが
表示されていますが、
これらの描画部分を支えているのは全て
座標計算です。

一応、最近は
手軽にグラフを描画できる
仕組みなんかも用意されていますが、
しかし、それらは表示形式が決まっており
自分たちが表示したい様に
カスタマイズしようとすると、
できないか、もしくは結局座標計算が
必要になってきたりします。

つまり、IT エンジニアが数学を知っていると
自由自在に表示機能を作れる様になるのです。

表示機能以外にも、例えば計算量・・・

例えば、扱うデータが増えた場合に
その計算の処理量や時間は
どの様に増えていくのか?

一次関数的に増えていくのか、
指数関数的に増えていくのか・・・

数学を知っていると、
その辺りの感覚が分かりやすくなります。

例えば、一次関数的に増える計算量であれば
倍の量のデータを渡しても
かかる時間は倍程度ですが、
指数関数的に増えるプログラムだと
ちょっとデータが増えただけで
あっという間にフリーズしてしまいます。

「プログラマーって理系だから
数学も得意なんじゃないの?」

と考えている方もいるかもしれません。

実際、私も業界に入る前までは
そう考えていましたが、
数学ができるエンジニアというのは
驚くほど少数派で、「レア」といっても
過言ではありません。

そういう意味では
数学は知らなくても
ソフトウェアを作れるというのは事実ですが、
しかし、ソフトウェア開発と数学が
かなり相性が良い事もまた事実ですので、
沢山のエンジニアに
身に着けて欲しいなぁと思っています。