大学を卒業したので四年間を振り返る
東京大学理学部情報科学科(通称: 理情)を卒業した。 最終学歴が自動車学校にならなくてよかった。 せっかくなので入学から卒業までの四年間を大雑把に振り返って残しておく。
入学
運良く合格したので1、北海道から東京に引っ越してきた。 入学式の思い出はあまりないのだけれど、入学式後同級生と渋谷の EST で遊んだことと、当時の東大総長である五神真さんのお名前に威厳を感じまくっていたことの 2 つは覚えている。
1 年前期(1S)
弊学にはオリ合宿という「入学生と、その直属の先輩で、4 月頭に旅行に行く」という伝統イベントがある。 このイベントは大学時代の大事な思い出の 1 つだ。入学前はこのオリ合宿にビビリ散らかしていたのだけれど、本当に参加してよかった。
あと、このころは(東大生にはおなじみの)大学寮である三鷹寮に住んでいた。 独房などと揶揄されることも多いこの寮だけれど、住めば都だと思う。いいところだった。案外住めるから新入生諸氏は躊躇しなくていいと思う。 以下は三鷹寮の外観。
学業に関して書くと、1S は以下の計 29 単位を取った。 合否のみ出る科目 4 単位分を除くと、優が 8 単位、優上が 17 単位だった。 全部優以上だったので当時はイキっていた。
- 英語一列 ①
- 英語二列 W (ALESS)
- 英語中級(クラス指定ターム型)
- スペイン語一列 ①
- スペイン語二列
- 微分積分学 ①
- 線型代数学 ①
- 数学基礎理論演習
- 数理科学基礎
- 数理科学基礎演習
- 身体運動・健康科学実習 I
- 熱力学
- 力学 A
- 情報
- 初年次ゼミナール理科
- 全学体験ゼミナール (じっくり学ぶ数学 I)
- 記号論理学 Ⅰ(理科生)
- 宇宙科学 Ⅰ(理科生)
進振りに向けて成績を最適化したいのであれば、この時期は語学系の科目をちゃんとやるべきだと思う。 語学系科目は総合科目と違って「再履修して点数を上げる」というムーブができない。 その分、一度語学系で悪い成績を取ると、それが進振り点に着実に響いてきてしまう。
夏休みは色々複雑な気持ちになったので(当時は若くメンタルが今より弱かった)、リュックと自分の体1つだけで、東京から釧路まで移動する旅などをした。 普通に新幹線に乗るお金は無かったので、交通手段は青春 18 きっぷ + ヒッチハイク + 青森函館間のフェリーのみとしたのだが、これのおかげで少し乗り鉄的な趣味が芽生えた。 写真は福島駅を指差す僕。
その他にもテント列、五月祭、サークルの新歓など、色々あったなあ。
1 年後期(1A)
1A は合否のみ出る科目 2 単位、優 11 単位と 優上 14 単位の計 27 単位を取った。 ここでも全て優以上だったのでイキり散らかしていた。今思うとこれらで優以上を取るのは難しくない。
- 英語一列 ②
- 英語二列S(FLOW)
- 英語中級(クラス指定セメスター型)
- 記号論理学 Ⅱ
- 教育臨床心理学
- スペイン語一列 ②
- 線型代数学 ②
- 微分積分学 ②
- 微分積分学演習
- 線型代数学演習
- 基礎実験 Ⅰ(物理学)
- 基礎実験 Ⅱ(物理学)
- 構造化学
- 身体運動・健康科学実習 Ⅱ
- 電磁気学A
- 全学体験ゼミナール (じっくり学ぶ数学 II)
- 現代工学基礎 Ⅰ
1A は 1S での「慣れない感」が抜けて、一人ひとりが自分の大学生活を歩み始める時期だと思う。 ある人はサークルに打ち込み、ある人は学業に専念し、ある人はインターンを始めたりと、十人十色感が増してくる。 この頃のクラスの同級生たちを見ているのは楽しかったな。 1S や夏休みの間に「自分はこれからどうなりたいのか」みたいな思索に耽っておくといいのかもしれない。
僕自身も 1A はイエラエセキュリティさんにお世話になり始めたり(Web アプリケーションのセキュリティについて色々と学ばせて頂いた)、IBM 東京基礎研究所さんにお世話になり始めたり(こういう特許を出したり論文を出して reject されるなどした)、SECCON Beginners という勉強会を開催しに色んな地域を巡ったり(大体 6~7 箇所くらいまわったと思う)、三鷹寮から引っ越したり(エモかった)、駒場祭あたりで色恋沙汰があったりした2。 階段を登り始めた時期でもあり、心が大きく揺れた3時期でもあった。
それと、この時期は Amazon のほしい物リスト経由でキレートレモンが大量に届いたりして、一日 2, 3 本程度キレートレモンを飲んでいた。 以下は三鷹寮から持ってきたの冷蔵庫の様子なのだが、新居には備え付けの冷蔵庫もあって、その二つともがキレートレモンで埋まっている状況だった。 今でも僕の誕生月の 9 月は家がキレートレモンまみれになる。
MICO さんがやっている SHE IS SUMMER というソロプロジェクトの楽曲にドハマりしたのもこの頃だった。 何がどう好きかを この記事に書いたことがある ので、興味があったらこの記事に貼ってある楽曲を聴いてみてほしい4。
2 年前期(2S)
2S は以下の講義をとった。良 3 単位、優 4 単位、優上 6 単位の計 13 単位を得た。教養学部全優チャレンジをしていたところだったので、成績に良の文字が見えた瞬間から 15 分くらい、心のそこから凹んだ覚えがある。しかし良をとったくらいで人生は終わらないので OK。
- 生命科学
- 計算機システム概論
- 物性化学
- 基礎実験 Ⅲ(化学)
- スポーツ・身体運動実習
- 認知脳科学
- 基礎統計
- 計算の理論
2S を終えると進振り点が確定する。僕は多少進振り点の最適化を意識して生活したので、基本平均点が 90.90 点だった。 この点は学内では高いほうだったので、3S(実体は 2A)からどの学部に進むかをほぼ好き5に選ぶ権利を得ることができたわけだ。 これはよかった。 しかし、今考えてみると、もうちょっと好きに講義をとって好きに学問を楽しんだらよかったなあという後悔もある。 進振りを意識しすぎるのも良くない。後輩諸氏にはどうか進振りに囚われすぎないでほしい。
また、このころは、僕単体で人前で講演をする機会をもらったりもした(参考)。自分なんかに役が務まるとは全く思えなかったし、今でも思えないけれど、この経験は自分に多くのものをもたらした。例えばこの頃から物事を整理して伝えられるような学び方を意識してするようになった。これは「今自分が学んでいるものは誰が、何のために、どういう背景で考えたのか、という話の流れを意識するようになった」とも言い換えられる。DOM Clobbering に関するこの記事 や Subdomain Takeover 概観というこの記事 はその発露だ。 CSP に関するこのブログ記事 にも垣間見える通り、Web 標準周りのメーリングリストを購読して、今この世界の流れを知る努力も始めた。もっともこの辺の記事たちは、どれも読むに耐えないほどのクオリティだから、近いうちに消そうと思っているけれども。
ついでに書いておくと、このへんで千里眼という二郎系ラーメン屋にハマった。 二郎系への愛情は今でも続いていて、おかげで今では健康診断で明らかになった悲惨な数値に涙している。
2 年後期(2A)
この頃は毎週学科の同期と千里眼でラーメンを食べていた。この頃とっていた科目は以下。
- 情報数学
- 形式言語理論
- 計算機システム
- ハードウェア構成法
- アルゴリズムとデータ構造
- 情報科学基礎実験
- 認知心理学
- 認知脳科学概論
- 代数と幾何
- 集合と位相
末尾の「代数と幾何」と「集合と位相」は数学科の科目なのだが、前者は単位を落としたと思ったのに可、後者は良は固いと思っていたのに可だった。理学部情報科学科を志す人にとって、これらの科目は非常に大切だと思うのだけれど、これらの数学科科目だけで卒業要件を満たそうとすると 3A で困る場合があるので、うまくリスクヘッジをするとよいと思う。 それ以外の科目では良 2 単位分、優 6 単位分、優上 4 単位分をとった。合計取得単位は計 20 単位。
2S から物を整理して考える癖ができたり、新し目の情報を仕入れる癖をつけたせいか、これ や これ など、CTF 的な小ネタを思いつくことが増えた。また学術系の論文を積極的に読むようになって、そういう記事 を書いたりもした。
また、この頃誘っていただいたお話や、この頃自分から始めたことは、結構今でも続いている。例えばもう 3 年くらい 電気通信大学の WEBSYS(社会人向け履修証明プログラム) というところで Web セキュリティの講義をやらせていただいているのだが、これは丁度 2A から混ぜてもらったものだ。また健康維持のための筋トレもこの頃からあまりメニューを変えずに運用している。2A ぐらいに今の自分の骨格みたいなものが形成されたんだと思う。
余談だが、この頃はほぼ毎日納豆パスタを食べていた。安くて直ちに作れるから。
3 年前期(3S)
以下の講義をとった。ほぼ必修のもの。優 8 単位、優上 8 単位、合否のみ出る科目で 0.5 単位を獲得した(計 16.5 単位)。
- 研究倫理
- オペレーティングシステム
- 離散数学
- 情報論理
- 言語処理系論
- 情報科学演習 I
- 計算機構成論
- システムプログラミング実験
- 関数・論理型プログラミング実験
- ハードウエア実験
駒場で開講されていた 2A の授業と違って、3S の授業は本郷で開講されている。 この問題は千里眼に行きにくくなることだ。 駒場と本郷は案外離れている。 そこでこの頃からは用心棒というラーメン屋に通うようになった。 これは千里眼の仲間的なラーメン屋で味のテイストが近い。 かつ、まぜそばが美味しい。 最高。 優勝。
あと 3S からは一般社団法人セキュリティ・キャンプ協議会の企画グループの一員として、セキュリティ・キャンプ関連のお手伝いを盛んにするようになったり、CTF の運営をちょくちょくするようになった。 特に CTF の方に関しては 2019 年内だと SECCON Beginners CTF 2019, TSG CTF 2019, CODEBLUE CTF 2019 Finals, SECCON CTF 2019 Online Quals に運営として参加した。 当時は「自分が面白いと思った攻撃手法やコンセプトを他の人に伝えたい」という思想が強かったのを覚えている。TSG CTF 2019 の RECON や BADNONCE、SECCON CTF 2019 Online Quals の Option-Command-U、CODEBLUE CTF Finals 2019 の Snippet(参考)はこのような思想のもと作った。
この歳は色んな初体験があった。例えば BlackHat USA という産業系の会議に参加するために、初めて海外(アメリカ)に行った。当時の記録は 今いる会社のブログ記事 や JNSA さんのメルマガへに寄稿した文章 などに残っている。初海外は怖く、かつ英語も今よりたどたどしかったので、アメリカ生活では殆ど毎日マクドナルドでご飯を食べていた記憶がある。自分の無力さ、愚かさ、矮小さを改めて理解した。自分の想像より自分はちっぽけだった。
株式会社 Flatt Security という会社に Join したのもこの頃。新鮮な経験を色々した。それと Blind Regex Injection という攻撃手法について書いたブログが(思っていたよりも)セキュリティオタクに受けて、色んな海外のリサーチャーと会話したりもした。この辺で「英語で物を書くとリーチする範囲が段違いだなあ」と思い、英語学習を少しだけするようになったりもした。
3 年後期(3A)
以下の科目を履修して、良 6 単位、優 7 単位、優上 5 単位の計 18 単位を得た。
- 情報セキュリティ
- 知能システム論
- 言語モデル論
- 計算量理論
- 連続系アルゴリズム
- 情報科学演習 II
- プロセッサ・コンパイラ実験
- 情報社会及び情報倫理
- コンピュータネットワーク論
この頃は用心棒に通いながら、大学の学生控室(地下階にあるので地下と呼ばれている)に寝泊まりし、大学の演習とスマブラに頭を奪われながら、Linux の動く RISC-V CPU を作っていた。当時のことは Linux が動作する RISC-V CPU を自作した (2019 年度 CPU 実験 余興) にまとめてある。
今思うとこれは何も難しくないのだけれど、当時は色々手一杯になったっけなあ。いずれにせよ、こういう 1 つのことに没入できる環境があって、それを是としてくれる同級生が多いという点で、理学部情報科学科は非常に魅力的だと思う。
ただ、この頃はひどい生活のおかげで死ぬかと思った。あと、2019 年末の振り返り記事 にも書いているのだが、この頃から「休む」というのが(精神的に、かつ予定の詰まり具合的に)難しくなってきて、色々人生について悩むようになった。
4 年前期(4S)
以下の科目を履修して、良 2 単位、優 11 単位、 優上 3 単位の計 16 単位を取得した。
- コンピューティングアーキテクチャ
- 情報科学演習 III
- コンピュータグラフィクス論
- 情報科学とバイオインフォマティクス
- 生体情報論
- 計算機言語論
- 自然計算
- 自然言語処理
4S は新型コロナウイルス感染症の影響でフルリモートの授業だった。 どんなことをしていたかは この記事 に書いている。 結局演習 3(情報科学演習 III)では無みたいな成果しか出せなかったのが悔しい。もうちょっと頑張れたらよかった。
学業以外の時間は、主に会社での労働に費やした。 具体的には Flatt Security Learning Platform というプロダクトを生やした。 中身の話は この記事 なんかでも確認できる。
また、この時期はとにかく自省的だった。このポエム や 技術選定に関するこの記事 などがその思考を反映している。このへんで文章を書いて思考を整理する習慣が強化された気がする。
4 年後期(4A)
4A は卒業研究(情報科学特別演習)に取り組みながら、論文構成法というアカデミックライティングの講義 1 つのみを受講した。 授業は新型コロナウイルス感染症の影響でリモートのままだった。卒論の中身は恥ずかしいので書かない。
卒論提出パンチ(物理)👊 pic.twitter.com/33FmStVReI
— YONEUCHI, Takashi (@lmt_swallow) January 28, 2021
4A はあまり遊べなかった。強いていうならこの記事に書いてあるように、RISC-V の H Extension で遊んだりしたくらい。それ以外の時間は仕事と卒論とその他の諸技術コミュニティでの活動に費やした。仕事に関して言えば、外に出てるのは 会社のブログで書いた Proxy-Wasm についての記事くらいかな。
しかし、嬉しいこともあって、この頃ずっと書いていた本がリリースされた。 題は『Web ブラウザセキュリティ - Web アプリケーションの安全性を支える仕組みを整理する』。
書籍製作の振り返りは この記事 で書いた。 この本を出せたことで、元々恩送りとしてやりたいと思っていた プレゼント企画 を実現することもできた。 大学生活の締めとしてはきまりがいい感じになったと思う。
卒業、そしてこれから
……という流れで卒業することになった。めでたし、めでたし。
こう振り返ってみることで改めて実感したことだが、結局僕は 4 年間で特に何かは成せなかったなと思う。 やっぱり学部の四年間というのは思っていたよりも短いものだ。四年間のうちに一本も論文を通せなかったし、GSoC などに取り組めたわけでもないし、その他沢山のことをやりきれないままに四年間を終えてしまった。
まあ、でも、最近は「それでいいや」とも思う。 昔から憧れていた方たちや、優秀な同級生たちのようにはなれなかったけど、別に誰かと競う必要はないのだよな。 これからは少しだけ気楽に生きてみようと思う。しばらくは自分のネガティブは治らないと思うけれど、辛抱強く、楽に生きるための努力をする所存。
それで、これからに関しては、まず短期的には今いる Flatt Security でそのままフルタイム労働をすることになっている。 長期的には、自分の興味は計算機に関わるもの全般にあるので(情報セキュリティ領域に閉じているわけではない)、別のこともしたいとは思っている。
というわけで、米内の次回作にご期待ください。