seri::diary::graduate_school

大学院修士課程での研究生活について書いています

卒業後の進路について

2018年8月21日

最近はインターンで毎朝6時30分に起床して東京に行き、23時には寝る規則正しい生活をしている。勤務先が東京なので大体ドア2ドアで片道1.5時間はかかっている。新卒の頃の通勤時間に匹敵するが、幸いつくばエクスプレスの末端同士の駅を利用するため、座って通勤できるのでまだラクだ。新卒の頃は1時間近く立ったまま紙の本や新聞を読むとかしていたが、あれが平気だったのはまだ若かったからだろう。

電車の中ではpc開いて何か作業しようと思っていたのだが、とてもじゃないがpcを開いていられないほどの混雑ぶりのため1日目にして挫折した。変わりにkindleでずっと本を読んでいるのだが、久々に読んだこの本が面白かった。

70年代頃から2010年代頃までの仕事に対する価値観の推移や年齢構造の変化などを例に挙げた上で、2010年代以降の働き方を提案する内容となっている。作者の主張として面白いと思ったのが「40代を境に仕事人生を2分する」というもので、40代以降の生き方について改めて考えてみようというもの。「とにかく転職しろ!」「企業しろ!」みたいな極論一辺倒の論調の本も最近は増えているが、そうではなく「本当に自分がやりたいことは若いうちの方がやりやすい。だからできるうちに(精神的/体力的にキツくなる前に)やりたいことをやれる働き方を考えてみてはどうか。もちろん今の自分の働き方を続けるのがベストという結論ならそのままでもOKやで。」というもので、とにかく考えることを読者に求める。これはものすごく大事だと自分は思う。実際に経験しなくても想像するだけでも色々と気づきはあるもので、自分なんぞは「もし自分がgoogleに入ったら何ができるか」「エンジニアじゃなくなったらどうするか」みたいなことばかりをよく妄想しているが、それそれでいろいろと気づくことがある。

この本を読みながら卒業後の進路を考えるなどしている。卒業はたかだか1年と7.5か月後であり、実際に研究に使える時間のリミットはM2の12月が限界だろうから実際には1年と4.5である。そしたらまた働きに出なければならない。正直、今の時間は休暇期間だとは全く思っていないので、卒業後に1か月ぐらいフラっと出かけたいという気持ちもあるが、一方でお金がないという現実もあり、ガチ無職期間を経ずに働かなければならない状態である。

卒業直後の2020年4月では34歳になっている。どんなに無理しても決して若者に分類されることはない見事なオッサンである。そこから何をやるか。インターン先ではそれなりに年数を経て大規模になったコードをメンテしているが、年齢的には今のところは全く衰えを感じていない。それどころか、コードを読んで全体構造を理解するスピードや、どこから手をつけるべきか当たりを付けて、適度な粒度のタスクを積み上げて一個ずつ潰していく能力は働いていた頃と同じか、当時よりも上がっているような気すらする。とすると、コードをガリガリ書くおじさんとしてはちょうど今ぐらいの年齢が能力的にピークなのかもしれない。なので34歳になってももう少しの間は「コードガガリおじさん」でも食っていけるのかもしれない*1

しかし、個人的には卒業したら全くやったことがない仕事をしてみたいという思いもある。とはいってもソフトウェアの領域であるため1年もやれば「よく知ってる領域」になってしまう可能性もあるのだが、少なくとも、卒業後5年間は今は全くやったことがない領域をやりたい。で、40歳になった時に「webサービスのバックエンド系開発に関すること全部」と「それ以外の領域」で2本柱を持てるようになりたいと考えている。40歳以降もガリガリさんが必要ならガリガリさんをやるが、若者の育成や組織の開発体制の強化にまつわることなんかも並行してやれたらよいなと思っている。自分は若いころは指導してくれる先輩にあまり出会うことができず独学だったり怒られたりしながらヒーヒー言いながら育った身なので、若者にはもっと効率よく成長できるパスを用意したいなという気持ちがある。一方で、バックエンド系開発はサービスメッシュという概念が登場し、かつての分散並列処理システム(ちょうど前期にやってたやつだ)を支えた技術トレンドが復活しそうな気もしていることもあり、前職で触れたマイクロサービスを用いた設計からさらに洗練された考え方を学ぶ必要があると思っている。一度勉強したからといってアップデートを止めると一瞬で置いていかれるのがこの業界である。卒業してもこの心構えは忘れずにいたい所存。大学にいるとついつい新しい技術よりも研究や単位を取るのに必要な技術ばかり目が行ってしまうが業界の流れもチラ見しながらついていきたい。

で、話は戻るが具体的にもう一本の柱は何をやるか。。というのは未定なのだが、今薄っすら考えている候補は

  • ラズパイなどのデバイス上で動くソフトウェアや特定のCPUのためのコンパイラを書く
  • 深層学習のモデル実装を極める
  • 量子コンピュータのためのコンパイラを書いたりする(そんな仕事があるのかはさておき)
  • 学部時代に卒論でやった農業 + 機械学習でなんかやる
  • Halideみたいな実行環境に応じて最適化されたコードを吐くコンパイラを書いて特に組み込み分野で使える最適化されたコードを抽象表現から生成できるようにする

という感じか。結局、機械学習を用いたプロダクト開発か、用途特化のデバイス上で動作するソフトウェアの開発か、コンパイラみたいなコード最適化や低レイヤを触る、といった辺りが今まで全くやったことがなくてかつ興味がある分野という感じである。そんな仕事あるんかいなというのはさておき、何がやりたいかを知っておくことは重要だとちきりんも言っていたので、今後も情報を集めつつ自分でも手を動かしつつ考えていきたい所存。

*1:ガリガリさんって発売されてそうでされてない