Diary over Finite Fields

515ひかるの日記と雑文

数学科の学部卒でITエンジニアになった事例

下記の記事を読んだ。

数学科の就職事情infinitytopos.wordpress.com

記事の内容については同意している部分と、そもそも初めて知った部分があった。特にアクチュアリーだとかクオンツだとかを自分は全く知らない。自分はあんまりまじめに数学を専攻することと就職をすることについて考えたことなどなかったし、就職をするときに自分の専攻を活かしたいなどとほとんど考えていなかったので当然かもしれない。

さて、僕はそこそこに変な職歴を歩んでいて、正直なところひとの就職活動にはまったく参考にならないだろうと思っている。しかし、この事例がなんの参考にもならなくても、ひとりの数学科の学部を出た人間が、自分の就職のことを書き残すことで、たとえば中高生とかが「そんなアクロバティックな生き方でもなんとかなるなら、数学科に行くくらいなんのギャンブルでもないわ」と思ってくれたらいいな、と思ったので書くことにした。

就職のきっかけ

就職活動(らしきもの)

学部卒と言っているけど、あくまで書類上の最終学歴は学部なのでそう書いていて、実は博士前期課程(いわゆる修士課程)を中退している。その話はここではしない。

中退の前に休学をしていたのだが、その間はバイトもせず、映画館に足しげく通っていた。実家暮らしなので死にはしなかったし、たくさんではないが少々の小遣いならもらえた。本当に不思議なくらい将来への不安は全くなかった。根拠のない自信だけが自分の拠り所だった。

正直にいってこの時点で復学する気はほとんどなかった。唯一勉強らしい勉強をしていたのは、『すごいHaskellたのしく学ぼう!』というプログラミングの本を読んでいたくらいで、数学の勉強なんか全然していなかった。

それが2016年の9月から10月くらいにかけてのこと。とっくの間に新卒就活なんて終わっていて、僕は大学の就職相談カウンターみたいなところで話をしたりして、一応就活に関する情報収集なるもののまねごとをしていた。

なんとなくプログラマーになりたいとは思っていた。だからプログラミングができそうな求人票で、第二新卒可みたいなのをちらほらと読んでいた。全然覚えていないけれど、神奈川のシステム会社のC#がどうこう、みたいなのだけ覚えてる。後述の会社との出会いがなければそこを受けていたのかもしれない。

ちなみに自分のIT業界に関する知識はこの時点では皆無に等しかった。プログラマーとはなにか、SEとはなにか、SIerとはなにか、みたいなことは全然わかっておらず、SIerとSESを混同していることに気づいたのは就職してからだった。そのくせいっちょ前にはてな匿名ダイアリーでバズる人売りSESの愚痴とかレガシーな開発環境に対する不満みたいなのは読んでいて、SIerってところでは俺は働けなそうだな、などと偉そうに思っていた。今思い出すと勘違いもいいところですごく恥ずかしい。

ちなみに C# と書いてある時点で Windows プログラミングがメイン業務の会社なんだろう、と想像できるに決まっているのだけど、僕の当時のメインOSは Arch Linuxだった。それなのに応募しようとまじめに考えたのだから、我ながらため息が出てしまう。ある程度 PC を使うことには自信があったし、実際そうだったかもしれないけど、そもそも IT 業界で仕事をするための大前提となる知識が全く足りてなかった。

実際の就職のきっかけ

さて、大学にあった第二新卒の求人票に応募する前に僕はある人に相談をした。相談したところ、そこであるベンチャー企業の当時の役員とつなげてもらい、そこで契約社員として働くことになった。

うん、出来すぎているだろう? でもこれが事実なんだな。

10月の半ばくらいに面談という名のランチをして、なんか気に入られたらしく、そのあと1本メールだしたら「こういう雇用条件でどうでしょ」みたいな返事がきて、そのまま京都に赴いて仕事を始めるに至った(僕は愛知県に実家がある)。それが2016年10月末のこと。

大慌てで準備して京都にいって、11月1日から働き始めた。

そして1か月働いた結果、なんか評価されて正社員になることになった。それが 2016年12月、僕の最初の就職だ。

評価された理由の自己分析

プログラミングや技量?

さて、なぜ評価されたのか就職できたのかなんて分析をすることにそんなに意味はないと思うけど、まず前提として相当に運がよかったんだと思う。

就職の相談ができるような人と知り合えていたことも運がいいし、そもそもつなげてもらえたのも運が良いし、気に入られたのも運が良かった。

評価された理由は、自分の実力だと言われたけど正直よくわからなかった。

自分が2016年11月の業務でしていたことなんてもう全然思い出せないが、しいて言うなら

「なんかPATHを通したのにコマンドが実行できないんだけど」

source ~/.bashrc してください」

とか、

「なんかこの UI が動かないんだよね」

「……動かせましたよ?(HTMLのid名とjQueryで指定しているid名が違っただけ)」

とかはおぼろげに記憶に残っている*1

そんな中で評価されても......と(失礼ながら)思っていたのだけど、よくよく考えると決してプログラミングやPCを使いこなす技量を買われたわけではないような気が今はしている。

論理的思考と自発的行動

当時の会社の内情を説明するわけにはいかないので、ほんとーにざっくりと書くと、ロジカルシンキング(笑)ができる人が少なかったのかな、と思う。

数学科で鍛えられることのうちのひとつに、徹底的に論理的に考える、というのがあると思う。必要さえあれば、あるいはやる気にさえなれば、何から何まで論理的に考えることがまじめに数学を勉強した人ならできると思う。僕も与えられた命題や理屈(ビジネス上のものでも、Twitterを眺めていても、いつでも)があったときに逆や対偶をとって真偽を確認する、みたいなことを自然にやってる。

こう書いても伝わっている気はしないけど、意識せずとも論理的な「間違い」だとかに敏感になれるのが数学を学ぶことによって得られる(可能性のある)能力の一つだと思う。

僕は、目指すゴールが与えられた場合はあとは論理的に考えれば自分のすべき行動を逆算できると思ってる。論理的に考えれば情報が足りないとか、不確実性の存在とかも目に見えるはずで、情報を集めたり、この不確実性がリスクですよと上長と共有しておいたりといった動きをすればいい。

で、もしかしたら意外とこれができない人が居るのかもしれない(わからない)と思ってる。自分としてはそんなに難しいことを要求したつもりはないのに、スタートがすごい頓珍漢だったり、まったく手も頭も動かせない状況に陥ってたりする人を見たことがあるといえばあるので。

ちょっと脱線したので結論を書くと、僕が評価されたのを僕なりに分析すると、

  • 論理的に考えることによって、ある程度照準を外さないアウトプットをできたこと
  • そしてアウトプットをするための行動を自発的に起こせたこと

この2点が評価されたのかなと今は思ってる。

終わりに

本当は機械学習エンジニアっぽい仕事をしようと思って就職したけど、向いてねぇなと思ってやめた話とかはしません。面白くないし、だいたい最初に引用した記事に書いてあるので。

「どうしても数学に関わりたい!」と強い拘りを持っていると、なかなか実際の仕事で「おもてたんとちがーう!!」ってなってしまう可能性は否めないだろう。

僕はだいたいこれです。

ちなみに個人の意見ですが、純粋数学に興味がもてるかどうかと、機械学習に興味をもてるかどうかは全く関係がないと思います。微分幾何とかに興味がある人のほうが事前知識はあるかもしれないけれど、興味が促成されるのかということはわからない(自分が微分幾何を勉強したことがないので)。

自分は全く興味が持てなかった。最初から最後まで何一つ納得がいなかったし、なんかずるいなと思い続けてた(今も思ってる)。いまだに線形回帰さえ、どこか納得がいかない。不勉強と言われたらそれまでですが。

出自がそうなので未だに Python というプログラミング言語をよく書きますし、 Pandas とか NumPy などの機械学習でよく使われるライブラリも扱えるけど、今は Web エンジニア(バックエンドメイン)をやっています。なので、業務的にももうすっかり数学とか数式とかからは離れてしまいましたが、今は今で楽しいです。

今回書きませんでしたが、大学時代に打ち込んだものなんてほとんどなかった僕が、唯一、年単位で継続して取り組めたのは数学でした。年単位で数学を勉強していて、それが本分な環境は数学科しかありません。情報工学にも物理学にも、いろんなところに数学は顔を出しますが、数学だけをやっていてよい2年間*2は心地よいものでした。

感染症の絡みもあって大学という場所が僕がいたころとはまた違うものになるかもしれませんが、数学が大好きだというなら、一生の何年間かくらいはそういう環境に身を置いたほうが、後悔しない人生を歩めるのではないかと。自分のとてもまじめとは言えない大学時代を振り返っても、そんなふうに思うのです。

余談

今回書かなかった過去の話。

blog.515hikaru.net

*1:プログラミングとかよく知らない人のために書いておくと、上のコマンドが実行できないほうは初めて Linux という OS を使うとよくハマるやつで僕も大学3年生くらいのときにやった。2つめはどっかのサイトからコピーしてきて、そのサンプルコードをそのまま動かそうとしてたというなんの頭も使っていない仕事の仕方をしてた。

*2:学部の3年以降を指して2年間。1年生、2年生は教養の講義があるだろうから。