webエンジニアに数学は必要ない。必要なのは〇〇だ。
Webエンジニアに数学が必要だと言われているらしい。果たしてそうだろうか?
弊社では週に一度数学の勉強会をしていて、今は線形代数の学習を進めているところだ。これは機械学習のプログラミングに活かすためである。その帰り道、同僚のエンジニアと話していて、Web開発をするエンジニアにも数学は必要なのだろうか?という話題になった。
僕自身Webエンジニアを職業にして1年半以上経つが、特別数学の知識が役に立ったという経験はない。例えば三角関数を知っていて助かったとか、あそこは微分積分を利用してシステムを組んだということはなかった。しかし、世間ではエンジニアには数学は必要だとされている。果たしてそうだろうか?
私が思うにWebエンジニアに必要なのは先に紹介した三角関数や微分積分の数学法則よりも数学的思考、言い換えれば論理的思考が必要となる。
例えば、論理的思考の1つとしてMECEという言葉がある。これはMutually Exclusive and Collectively Exhaustive の略で、日本語だと「もれなくダブりなく」と訳される。この点についてはWeb開発でよく出てくる。noteの場合では、そのnoteが有料か無料か?マガジンに含まれているかいないか?など場合分けする場合がとても多い。どの場合分けにも対応しないと、不具合を被るユーザがでてきてしまう。こういったときに数学的思考(論理的思考)が必要だ。
他にも、『頭の体操』に載っているような問題を解く力もあると、とてもエンジニア向きだと思う。この本には多くのパズル・クイズがある。それらは中学生以上の数学を使って、xやyを定義して解くこともできるが、数学を使わなくても解くことができるものも多い。優秀なエンジニアのきれいなコードはどちらかというと後者の発想で書かれている。この『頭の体操』に載っているようなパズル・クイズを楽しめるかどうかもエンジニアへの適正をみる上で一つ参考になるだろう。
ps. 本文ではWebエンジニアの適性についてみてきたが、他方で機械学習のエンジニアなどは直接的な数学の素養が必要だ。例えば最近話題のディープラーニング(深層学習)は線形代数の知識がないと何をやっているのかさっぱりだろう。確かに最近はライブラリが充実していて、線形代数の知識がなくてもディープラーニングのようなことはできるが、ライブラリが用意している以上のことはできない。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
僕のtwitterアカウントは @justin999_ です。記事の更新情報はここからチェックできます。
テック会議は毎週月曜日に「コンテンツ業界をテクノロジー視点で語る会議」です。誰でも参加できるのでハッシュタグ #テック会議 でどんどん投稿してください。