数学とプログラミング、求められることの違い

僕は高校時代数学が得意で、転職するときもプログラミングって数学と同じような思考能力が求められるんだろうなと思ったからSEになろうと思った。

数学が得意だったのは、公式の一つ一つがどう成り立っているか、突き詰めて理解しているからだと自己理解していた。教科書に出てくる公式は全部自分で証明できるようにしていた。細部まで突き詰めて理解していた。

同じ姿勢で実際にプログラミングをやってみてわかったのは、ITの分野は理解するべき範囲が多すぎるということ。しかも、数学の教科書みたいにこれさえ押さえれば大丈夫というものはない。必要な情報が体系的にまとまっているとは限らないので、調べる時間が膨大にかかって納期に間に合わなかった。上司に言われたのは、細部を理解し尽くそうとするんじゃなくて、全体的な流れを理解して細部はそういうものとして使う、ということ。要は公式はあくまで公式として使うということか。もちろん余裕があれば細部まで理解してそれを自分の強みとすることもできる。

調べるための前提知識がないのも時間がかかる原因。だからこそ、まずは大まかな役割から理解していって、抽象化して応用していくことが求められる。その後で、細部を突き詰めるという選択肢も出てくるだろう。大事なのは全体から細部という理解する順番。