交大観察と所感(6):修士3年・卒業

自分が修士に進むなんて、ましてや3年もかかるなんて、まったく想像していませんでした。しかもその3年の間に、学校名は交大(NCTU)から陽明交大(NYCU)へ変わりました。振り返ると、この3年の修士生活は甘さも苦さもありましたが、私にとって充実していて、とても貴重な時間でした。授業、TA、海外交換、課外活動、研究——交大での期間はどれも学ぶことが多く、楽しく過ごせました。
¶ 交換留学
修士3年の前期にイタリアへ交換留学に行きました。交換留学は私の価値観を根本から変えたと思っています。世界を見て初めて、自分の小ささや視野の狭さに気づきます。
イタリアでの経験については、以下の記事を参照してください:
- 2021 ミラノ工科大学交換ガイド
- 突如ミラノで日本人の彼女と始まった不可思議な恋愛物語
私は随筆家ではないので、旅の経験を他の作家のように生き生きと描写することはできません。ただ、言葉では伝えきれない感動や体験のほうが多いです。できることなら、誰でも一度は海外にしばらく滞在してみるべきだと思います。修士3年の前半は海外で過ごしましたが、旅行だけでなく、研究や論文執筆にも時間を使いました。
¶ 修士研究
ミラノに行ってからも、先生とは定期的に議論していました。時差の関係で、先生の都合に合わせると「早朝」か「深夜」になりがちです。ただ、現代はネットが発達していますし、資工はパソコンさえあればどこでも仕事ができます。ヨーロッパで研究していて面白かったのは、ヨーロッパの AWS で実験環境を作ったことです。最初は「ヨーロッパで取れた結果で論文投稿できる」と思っていたのですが、後で実験データに問題があると分かり、その案は捨てました。結局、修論のデータは台湾に戻ってから取り直しました。興味深いのは、ミラノには AWS のリージョンがあるので、ミラノの AWS を edge server のように扱えることです。一方、台湾では最寄りの AWS が香港なので、せいぜい普通の cloud server として使うくらいです。台湾の IT 産業は発達しているのに、AWS リージョンがないのは少し不思議だと感じることがあります。海外滞在中に修論もだいたい書き上げ、先生にも添削してもらいました。海外にいながら先生とやり取りするのは、ちょっと「国際共同研究」っぽくて面白かったです(実際はどちらも台湾人ですが)。
3月にヨーロッパから台湾へ戻ったときは、本当に不安でいっぱいでした。卒業には不確定要素が多く、修論の肝となる性能問題はまだ解決しておらず、さらに卒業要件としてプログラミング検定に合格しなければならない。加えて、日本の仕事を最速で見つける必要もありました。しかも帰国後はホテルで16日隔離されていて、私にとってこの一年でいちばん暗い時期でした。
ミラノにいる間は研究が順調で、修論も書き終えたので「台湾に戻って卒業手続きを進めればいい」と思っていました。ところが最終チェックで先生が実験に致命的なミスを見つけ、気分は一気にどん底へ。投稿予定だった会議論文も延期せざるを得ませんでした。ミスが見つかったのは1月末で、台湾は旧正月に入る時期でした。私も最後の1カ月を遊びたい気持ちがあり、「台湾に戻ってから続けよう」と一旦置くことにしました。研究が片付かないのは不安で、早く卒業したいのにこの問題に足止めされるのが嫌でした。結果的には2週間ちょっとで解決できたのですが(隔離ホテルに閉じ込められていたのが逆に効いたのかもしれません)、当時は不確定だらけで、「どう解決すればいいのか」「どれだけ時間がかかるのか」まったく分かりませんでした。
私が抱えていた性能問題は研究の鍵で、原因が分からないまま、海外に出てから半年も理由を探していました。ミラノでは「答えを見つけた」と思ったのですが、投稿前に先生がデータを確認したところ、それが誤りだったと判明し、また最初からやり直しになりました。原因探しはまさに「海で針を探す」ようなもので、性能劣化の原因候補は無数にあります。できることは、仮説を立てて検証し、潰していくことを繰り返すだけです。幸い最終的には原因を突き止め、しかも隔離が終わる前に見つけられました。原因は共有メモリに関係していました。以前から共有メモリを疑ったことはありましたが、私の研究では「メモリサイズが特定の条件のときだけ共有メモリのオーバーヘッドが大きくなる」現象があり、テスト時には想定していませんでした。そのせいで長い間、共有メモリが原因だと再現できなかったのです。ただ、この過程を経て、私はこのボトルネックがむしろ修士研究のハイライトになったと感じています。最初から最後まで順調に終えるよりも、途中で挫折して突破方法を理解するほうが、私にとって一番の学びになりました。
¶ プログラミング検定
交大資工を卒業するには、プログラミング検定に合格する必要があります。内容は情報オリンピック系の問題に近く、与えられた課題に対して input/output を処理し、データ構造・アルゴリズムで解く形式です。もっと率直に言えば、「卒業前に刷題(LeetCode のような問題演習)をしているか」を確認する試験です。正直、この試験は本当に意味がないと思っています。こんな要件があるのは、うちの「偉大な大学(陽明交大)」が学店だという証拠みたいなものです。世界一流の大学で「卒業要件にプログラミング検定」を課しているところってありますか?少なくとも台大はありません。東大、北大、MIT、CMU もきっとないでしょう。
3月には少し時間を作って練習しました。ちょうど就活もしていたので、LeetCode と一緒に手を動かして感覚を戻しました。もし検定に落ちたら、定時卒業できない可能性が高いです。試験は月に1〜2回しかなく、1回1回のプレッシャーも大きい。試験当日は最初、基本問題ですら詰まり、諦めそうになりました。でも気持ちを立て直して丁寧に確認し、結局は基本点を全部取れました。その回の成績は100人以上の中で8位で、合格者は全体の1/5未満だったと思います。合格率を見ると、大学は確かに「学生が本当に刷題しているか」を把関していると言えますね 🙃。留学前に2回はノー勉で受けて落ちましたが、3回目でようやく合格しました。合格した瞬間はかなり肩の荷が下りて、「卒業まであと少しだ」と感じました。
¶ 修士口試
プログラミング検定に合格して唯一の変数を潰したあとは、基本的には修論の修正と口試準備と就活だけでした。修論と口試自体は全然プレッシャーがありません。だいたい、先生が口試を許可した時点で「もう合格」みたいなものだからです(?)。通常、口試委員は先生が手配してくれて、だいたいは親しい教授や研究者が選ばれます。ただ私はちょっと変わっていて、口試委員を自分で指名したいと思い、游逸平先生に相談して許可をもらったうえで、自分でメールを書いて依頼しました。
台大資工の洪士灝先生(学部時代の指導教員)には、私の成長を見てもらいたくてお願いしました。もう一人は新しく着任した葉宗泰先生で、以前受講した AI ハードウェア設計の授業が好きだったので、自分の研究を見てもらいたいと思いました。残りの二人は研究室と親しい楊武先生と、私の指導教員です。
スライドはかなり準備したのですが、口試当日は結局うまく話せなかった気がします。委員の先生方も分かっていない部分が多そうでした。悲しかったのは、委員の先生方が修論を読んでいないと気づいたことです。先生方は忙しいので、口試は基本的に発表を聞くだけですが、私は本当はちゃんと論文を読んでフィードバックが欲しかった。もう一つ悲しかったのは、洪士灝先生から肯定的な言葉を期待していたのに、当日は研究の欠点や実用性の不足だけを指摘されたことです。その瞬間、本当に落ち込みました。私は「修士としてはかなり完成度が高い」と思っていたのですが、先生方の厳しい基準を前に改めて反省し、まだ改善すべき点が多いと感じました。
¶ 卒業
大学や学科によっては、口試後に1カ月かけて修論を直すところもあると聞きます。でも交大資工では、口試が通ればほぼ卒業です。理由としては、学生が就職先を見つけていて、先生が早く送り出したいケースが多いからだと思います。私の場合は、そもそも修論をかなり完成度高く書き上げていて、口試前に会議論文も投稿していたので、口試後すぐに卒業できました。口試に通ってから1週間ほどで卒業手続きを終え、正式に卒業しました。最初は実感がありませんでしたが、後になって悠遊カードでバスに乗ったとき、引き落としが学生料金ではなく一般料金になっていて、「もう学生じゃないんだな」としみじみ感じました。
卒業後は就活に集中です。3月中旬から始め、最初は卒業のプレッシャーもありましたが、最初のオファーをもらってからはかなり安心できました。詳細な過程は別記事にします。現時点で複数のオファーをもらっていて、最終的にどれを選ぶかはまだ検討中ですが、少なくとも日本で働けることは確定しました。
¶ 謝辞
游逸平先生の指導には、特に感謝しています。先生とのやり取りはとても気楽で、友達のように接することができました。この3年間、自分で好きな研究テーマを探し、継続的に先生と議論し、研究を進めて修正し続けました。ミラノにいる間も先生はオンラインで研究進捗の議論や修論の添削をしてくれ、最終的にこの完成した成果物にたどり着けました。
洪士灝先生、楊武先生、葉宗泰先生には口試委員を引き受けていただき、多角的な提案をいただき、最後には研究結果も評価していただきました。厳しい審査基準は時に挫折感もありましたが、自分にまだ伸びしろがあると気づかせてくれました。
CloudMosa 社にも感謝します。沈修平 CEO が Puffin のサーバーを研究のために快く貸してくださり、エンジニアの TJ と Patrick も仕事の合間に研究コードのデプロイを手伝ってくれました。CloudMosa の支援があったからこそ、修士研究をより完全な形にできました。
家族、彼女、友人たちの支えにも感謝します。両親はいつも私の選択を尊重してくれて、私はいつでも前に突き進む力をもらっています。悦悦は研究が一番辛い時期に寄り添ってくれて、卒業と就活のプレッシャーが重なる中でも心の支えになってくれました。友人たちも研究中に励まし合い、議論してくれました。永昱はいつも率直な言葉で私の不足や改善点を教えてくれました。弘昇も研究や課業で役立つ提案をたくさんくれて、お互いに刺激し合えました。研究室のみんなもとても優しく、特に奕安は面白い論文を勧めてくれて、この研究の最初のひらめきをくれました。意喬、博聖、冠程、益揚、宇勝からの意見やフィードバックにも感謝します。研究室のみんなと一緒に過ごせて楽しかったです。
学内外でさらに多くの人に助けられました。これまで支えてくれたすべての人に感謝します。修士課程を終えられて嬉しく、今後は学んだことを社会に還元できればと思います。
¶ 結び
私にとって修士課程は特別な意味があります。学位そのものが特別というより、修士でやったことが自分を大きく変えたからです。「修士に行くべきか」で悩む人は多いですが、私の答えは「意味のある形で学べるなら行けばいい」です。意味がある理由には、例えば転向のために学位が必要、基礎知識を補う、ある分野に強い興味があって学術に進みたい、学部時代にできなかったこと(交換留学など)をやりたい、などがあります。
一方で、「修士を取れば給料が上がるから」とか、「何をすればいいか分からないからとりあえず」みたいに、学ぶためではなく学位のために進むなら、修士はほとんど意味がありません。今は修士の価値も以前ほど高くないです。周りを見ると、学びたいわけではなく「もう一個学位を稼ぎたい」だけで直升(学部からそのまま院進)する後輩もいますが、それはかなり空虚だと思います。資工は結局、実力が一番です。FAANG のような会社も修士必須ではありませんし、修士が必ず役に立つわけでもない。学部学位で十分です。
本シリーズ<交大観察と所感>も、ついに最終章を迎えました。修士生活がどんなものか知りたい人、交大/陽明交大の資工が何をしているのか知りたい人に、少しでもヒントになれば嬉しいです。読者の方で何か質問があれば、気軽に連絡してください。次はいよいよ「社会人編」へ進みます!