SE Can't Code

A Tokyo based Software Engineer. Not System Engineer :(

ソフトウェアエンジニアと数学.

仕事で機械学習の分野に足を突っ込むようになって以降、数学の再学習をちまちまとやっていたが、最近ようやく技術書の数式を見てもアレルギーなく読めるようになってきた。ある時はScikit-Learn(Python機械学習OSS)のコードを力技で頭から読んで、各機械学習のモデルを理解してやろうとした時があったが、辛過ぎて辞めた。結局、コードから理解しようとするのはなかなか厳しい分野なのかもしれない。

しかし慣れてきたとはいえ、まだ辛いなという場面も依然として多い。たとえばMCMCの本とか読んでても途中までいい感じに「ふんふん、それで?」とノリノリで読み進めていても、途中から「は?何言ってんのこいつ?」と急に相手の言葉が理解出来なくなるから、ここらへんに壁があるのだろう。(他の人にとってこの壁は低いのかもしれないが。。)

ただまぁやっぱり機械学習は数式が無いと頭に残らない気がする。UdacityでいくつかのMachineLearningの講義を受けたが、その一つに数式が一切出ずに、Scikit-Learnでモデルをゴリゴリ回して理解しよう、なんてものがあった。あれはモデルを理解せずに結果だけ見て「いい感じやんけ」という人間を生み出してしまうので良くない。まぁ雰囲気を掴んでもらう、という目的なら良い気がするが。

昨今、有名なソフトウェアエンジニアが口を揃えて、「数学と英語はやっておけ」と言っている。そして今まさに僕とかは泣きながらやってるので、こうなりたくなかったら若いうちに習得しておくとエンジニア人生は楽になるのだろう。

あとはまぁなんだかんだ、ソフトウェアエンジニアリングの世界でもアルゴリズムをちゃんとやろうとすると、どうしても高校レベルの数学は最低限必要になるので、アルゴリズム考えられる人になりたかったらやらざるを得ないのが割とこの世界でもあると思う。PaaSなどがすくすくと発展している現代で、本当にこれから求められる力はアルゴリズムじゃないかなと。アプリ側もインフラ側もそれだけでは辛いんじゃないか。未来の事なんてわからんけども。

というわけで、数学と英会話やってから早めに会社行くか。今日はなんか500人くらいを想定した大勢の前で登壇しないといけないので、発表の練習しないとヤバい。

Remove all ads