MoTLab -GO Inc. Engineering Blog-MoTLab -GO Inc. Engineering Blog-

働きながら大学院を受験して合格しました!

働き方
November 24, 2022

バックオフィス基盤チームの棟朝です。普段はタクシーアプリ「GO」の決済集計に関わるバックエンドのバッチなどを開発しています。この度MoTで働きながら北陸先端科学技術大学(JAIST)の博士前期課程を受験し合格することができました!そのため今回はエンジニアとして働きながら大学院を受験をしたという話を書こうと思います。


北陸先端科学技術大学(JAIST)とは

石川県能美市に本部を置く日本の国立大学です。JAISTは学部を持たない大学院大学で、独自のキャンパスと教育研究組織を持っており、優秀な教授陣を迎え入れ、研究設備が充実していることが特徴です。また石川の大学ながら東京社会人コースというものが設けられており、品川の東京サテライトキャンパスで土日帯の授業を受講できるため、関東近郊でエンジニアとして勤務しつつ大学院の修了を目指せることも特徴です。個人的にはこちらがJAISTを志願した理由として大きいです。

大学院を受験するまで

コンピュータサイエンス(CS)知識の必要性

自分は経済学部卒の文系なので、CSやエンジニアリングに関する知識は全て業務を通して、もしくは独学で身につけてきました。新卒時代などエンジニア歴の浅い時期には、CSの知識を必要と感じたことはなかったですが、MoTに入る以前にRPSが高い(max1000)アプリのバックエンドAPIの開発を担当した際に負荷分散やパフォーマンスチューニングが必要になり、その際に計算量解析の知識の必要性を感じました。単純なGETであっても負荷がデータ量に比例する構造(O(n))、データ量に依存しない構造(O(1))があることを知り、自分のデータ構造や計算量の知識が大きく欠けていることを感じて、今後サーバーサイドエンジニアとしてレベルアップしていくにはCSの専門的な知識が必要と感じました。MoT入社後では自分が担当しているバックオフィス基盤グループでは、データ量が1億件を超えるバッチ処理を実装したので、計算効率の良いSQLやバッチ処理を書けるような計算量の知識は改めて重要と感じました。

JAISTとの出会い

最初は独学でCSを勉強していて、オライリーやアルゴリズム・イントロダクションを読んでCSの勉強を始めました。学校の理科や数学は得意でなかったですが、CSの教科書的な本は読むのが苦でないとことに気がつきました。ただ教科書を自分の狭い知見の中で読み漁っていても、読む順番が最適であるはずはなく、基礎知識や数学知識の不足により理解できない分野も発生し、学習が効率的ではない、学習ゴールが不明確であるという課題がありました。であれば体系的に学べる大学に再入学すれば良いのでは、といったことを考えていた際に以下のfushiroyamaさんブログに出会いJAISTの存在を知り「これだ!」と思いました。

JAISTの博士前期課程に進学します

筆者のfushiroyamaさんも自分と同じように、文系学部からエンジニアとして働かれいる方でCSを学ぶために大学院進学を決めた方で(勝手に)親近感を感じていました。

特にブログ内のこちらの文章が印象的でした。

たまに自分の無教養を恐怖に感じることがある。僕の「ある技術が多少わかる」とAさんのそれは、表面上同じでも、僕のそれはただ海面にボートが如く浮いており、氏のそれは氷山のように膨大な数学や物理学の層が重なって水面に出ている。これはまったく意味が違う。

これはまさしく当時の自分を状況をモロに言い表したような文章で、自分の専門性の少なさを改めて自覚する良いきっかけになりました。専門的にCSを勉強することで、同じ仕様のシステムを作っていても、システムに対する理解、入力データに対する負荷のかかり方、システムの背景にあるミドルウェアの仕組み、データ構造に対する良し悪しなど、理解できる幅・思考できる幅が全く変わってくるはずだと考え大きくモチベーションが上がりました。この時、大学院に進学してCSを体系的に学び、CSの学位まで取得していることは必ず自分にプラスに働くというビジョンを持つことができました。

MoTの仕事との両立

2022年4月から半年間準備をして2022年10月に受験をして合格しました。MoTでは受験について社内メンバーに相談に乗ってもらえたことが仕事と受験の両立することができた要因となりました。受験を初めた初期に1on1で上長やメンバーに大学院受験の話を報告しました。学生時代にCSの研究室にいたメンバーの人も多数存在していて受験に対して「面白そう!」「頑張ってほしい!」などと言ってもらえ、社内メンバーに受験を理解してもらえたことが受験勉強のやりやすさに繋がりました。また受験期に大学院の授業を数コマ受講してレベル感を事前確認できる科目等履修生を申し込んだのですが、会社がフルフレックス制度を採用していることもあり、上長に相談しつつ、授業期間は午前中授業→午後出勤という勤務時間を取らせてもらうこともでき、その中で大学の情報を収集することができたのが大きかったです。入試については「大学院で研究したいこと」を小論文で提出する必要があるのですが、これは入試レベルで研究計画書を提出するといった内容でかなり苦戦しました。自分は論文を全く読んでこなかったので、CSの研究論文を読むことにかなり苦戦しました。途中で研究内容が定まらず路頭に迷っていた時期にもCSに詳しい社内メンバーに1on1で毎週相談に乗ってもらうこともでき、それが励みになり入試を乗り切ることができました。

受験スケジュール

2021年

CSの勉強を始める。JAIST進学を考える。

2022年4月

科目等履修生で授業を履修する。履修した授業では線形代数とMIPSアーキテクチャの授業を受講した。授業内容が非常に面白く、MIPSの授業を受けることでプログラミング言語からコンパイルされた命令がCPUに渡って処理されていくまでの一連の流れを学ぶことができた。

2022年6月

データ構造・アルゴリズムの研究をしたいと思っていたので教授にメールで相談させてもらった。研究レベルの最先端の内容に関して全くの素人なので、教授に自分が勉強したい・興味のある分野を伝えて候補になりそうな論文を教えてもらうことができた。

2022年7-9月

就業後や土日に研究したいテーマの論文を読み漁ってまとめた。海外文献についてはDeepL翻訳を使うことで効率的に英語論文を読むことができた。あるテーマに対する関連論文を探す時はConnected Papersを使ってその分野の関連論文を簡単に探すことができた。

2022年9-10月

小論文提出、面接。自分は簡潔データ構造というデータ構造についての研究をまとめて小論文を提出した。面接では研究内容に関する質問、線形代数に関する質問があった。

2022年10月27日

JAISTのHP上で合格発表を確認しました。

最後に

MoTでは上記で挙げた1on1以外にもキャリアアップのために必要スキルを上司と相談する機会も定期的に存在し、自分が希望するキャリア、働き方が組みやすい環境があります。今回の記事がエンジニアとして大学院を受験する方の参考になれば幸いです。


We're Hiring!

📢
Mobility Technologies ではともに働くエンジニアを募集しています。

興味のある方は 採用ページ も見ていただけると嬉しいです。

Twitter @mot_techtalk のフォローもよろしくお願いします!