2022年の振り返りと2023年の抱負
今年の振り返りと来年に向けた目標の整理をしていこうと思います。
2022年の振り返り
2022年の目標
2022年の目標を以下のエントリに書いていました。
この内容を振り返りつつ、達成度合いを評価していこうと思います。
TOEFL 100点
結局TOEFLは2022年の1月に受験したのが最後で、ベストスコアはこの最後の受験のときに出した98点でした。目標には届かずです。
とはいえ、100点を取りたいと思っていた最大の理由は、大学院の出願要件を満たすためでした。100点以上が推奨されると書いてあったものの、事実上の足切り点は90点ということが分かったため、98点で妥協をしたという形になります。大学院の出願については以下のエントリに軽くまとめてあります。
ということで、数値上は目標に達していないものの、根本的な目標(大学院に合格する)は達成できたので、良しとすることにします。ただ、やはりTOEFL 100点というのは、英語がある程度できることの分かりやすい指標であることには違いありません。たかが2点、されど2点。来年はまた100点を目指してTOEFLを受験しても良いかもしれないと思っています。
コンピュータサイエンスの勉強をする
漠然とした目標ですが、今年はジョージア工科大学のオンライン修士コースに通い始めたということもあり、体系的にコンピュータサイエンスを勉強していくための体制は万全になったと思っています。
今年の秋に入学し、最初の学期を終えたところですが、最初の授業として選択した
CS 6200: Introduction to Operating Systems
は、自分がこれまで職業ソフトウェアエンジニアとして培ってきた断片的な知識を補強し結びつけてくれる素晴らしい授業でした。課題(プロジェクト)ではCやC++を書き、C,
C++に対して抱いていた軽いトラウマのようなものを払拭してくれました。並行・分散処理がいかに複雑なのかを身をもって体感し、所定のテストケースをパスするまで数日間デバッグに費やすということもありましたが、間違いなく自分の力になったと感じています。また、SlackやPiazza(掲示板形式のコミュニティプラットフォーム)では常に活発な議論が行われており、TAの方々や他の履修者同士の議論を眺めたり、時には自分も議論に参加したりすることで、オンラインという形式でありつつも連帯感のようなものを感じていました。
次の学期は早速1月から始まります。ゆっくり休んでいる暇はないですが、また新たな学びを得ることができるのがとても楽しみで待ち遠しいです。今のところ以下の2つを履修登録しています。
前者は名前の通りネットワークについて、後者はソフトウェアの静的解析のテクニックなどを学ぶようです。1コマですら大変な思いをしていたので、2コマ一気にとるのはまずいかなと思っていて、どちらか1つに絞る可能性がかなり高いですが、うまいことやっていきたい。
人生をがんばる
健康診断の結果は多少良くなりました。キープしていきたい。
婚活は進捗ありません。悲しい。
2022年やったこと(その他)
転職
大学院の入学とほぼ同時期に転職し、Deno を開発している Deno Land Inc. で働き始めました。入学と同時期になったのは偶然なのですが、同時期に2つのチャレンジングなことを始めるというのは、自分にとって負担が大きくなってしまうのではないかという懸念がありました。実際、大学院の課題締め切り間近になると仕事のほうに集中(時間的にも、精神的にも)できなくなったり、逆に仕事のほうに時間を使いすぎてしまい、大学院の方の講義動画を数週間分溜めてしまう、ということもありました。しかし、大学院で学んだ内容を仕事の方で間接的に活きたり、逆に仕事のほうで触れた内容が講義内容の理解に役立ったりと、良い相乗効果を得られているという実感があります。
仕事では、普通のWebアプリのバックエンドのレイヤーから、JavaScript実行環境の監視、制御に至るところまで、複数のレイヤーにまたがってRustを書いているのですが、やはりRustは良い言語だなという思いが日々強まっています。仕事でRustを書くことができる環境はまだ比較的珍しいと思うので、今自分がそういった環境にいることに感謝しつつ、Rustが国内でももっと広まっていくよう何かしらの形で貢献できればなと思っています。
時雨堂さんのサマーコード2022に参加
2022 年の夏休みに Zig で QUIC を実装してオープンソースとして公開するお手伝い
時雨堂さんのサマーコード2022に参加しました。夏休みの学生向けということでしたが、前職の有給を消化する期間と奇跡的に被っていたこと、一応当時学生見込みだったことから、これはまたとない機会なのでは?と思い、勢いで選考課題の TLS 1.3 Client Hello in Zig を実装しました。
6週間でQUICのサーバーサイドをある程度動くところまでいけたらという目標でしたが、結果的にはまともに動くところまで作ることはできませんでした。その後は大学院が始まったり、新しい仕事が始まったりでなかなか時間を確保できず、中途半端な状態で放置してしまっているのがかなり心残りです。
Zig 言語 を初めて書くことになりましたが、開発者が "C but with the problems fixed" [1] と言っているだけあり、Cの問題点が分かりやすく解決されており、なおかつCの既存資産との相互運用も極めて容易に行えるのが大きな特長だと感じました。言語としてはRustのほうが好きではありますが、Zigが活きる場面や用途も間違いなくあると思います。自分の道具箱の中にZigを入れておくことが近い将来何かの役に立つだろうと感じます。
また、QUICの実装を通して、初めてしっかりとTLSのことを学んだり、RFCを読み込むという経験をしました。TLSについては、もっと早く学んでおくべきだったと強く後悔しました。Webに関わる開発者であれば、必修といって良いのではないかと思います。おすすめ書籍は プロフェッショナルSSL/TLS です。
2023年の抱負
大学院で良い成績をとりつづける
大学院の最初の学期で履修した CS 6200: Introduction to Operating Systems では、最高の成績である A をとることができました。最初の学期ということで、どれくらい試験勉強や課題などにリソースを割くべきかが分からず、ひとまず自分の中でかなり全力寄りで頑張りました。その結果、余裕をもって A をとることができたので、全力で取り組めば最高の成績を収めることができるということが分かりました。
A をとるというのは、自分のモチベーションにもつながるし、その授業から学べる内容を最大限学習したということを示す最も分かりやすい指標でもあります。2023年に履修する授業も A をとることができるよう全力を尽くしたいと思っています。
仕事で生き残る
Deno Land Inc. では、世界レベルの同僚と働くという極めて刺激的な機会に恵まれています。逆に言うと、このようなハイレベルな環境の中で、自分の価値というものを示し続ければならないということでもあります。大学院で学ぶ内容を活かすのはもちろん、それ以外にも無理のない程度に自己研鑽を重ねつつ、なんとか食らいついていければと思います。
人生をがんばる
健康に気をつかう。婚活で進捗を生む。ラーメンを食べすぎない。
Discussion