2023年の目標

あけましておめでとうございます。目標をなんとなく設定しました。

目標

  • 論文を2週間に一本読む
  • エンジニアリングに関する本を月に一冊は読む
  • 英会話を始める
  • ジムに週2で通う

論文を2週間に一本読む

Computer Scienceの論文を2週に一本くらいのペースで読み続けたいなって思ってます。自分の仕事はWebアプリケーション開発なので仕事と直接は関係ないのですが、以下のような観点でやってみたいなって思ってます。

  • その分野のある程度深い知識を身につけないとそもそも読めないので、論文を読むために関連して色々な情報に触れることになる
  • 仕事の幅を広げるきっかけになる
  • 単純に楽しい

NetworkやDatabase、OS、Virtualization、etc…などの低レイヤー寄りのソフトウェアは仕事をする上で意識せずに当たり前のように使っていますが、裏側には当然アカデミックな取り組みがあります。

例えば近年だとDatabase関連のSoftwareはたくさんあって、古典的なRDBMSで言うとMySQLOracle、NoSQLだとCassandraやRedisなどがあります。また、MySQLと言っても構成の仕方にはバリエーションがあるはずで、設定によって挙動が変わってくる(と本で読みました。実際に設定したことはなし。)はずで、Replicaの戦略、リーダーは単一か、マルチリーダー構成か、トランザクションの扱いってどうなってるのか、read committedかスナップショット分離か、ダーティリードやダーティライトは起こるのか起こらないのか…とか、SQLのインターフェースだけ見てもわからないことというのはたくさんあります。

まあ業務でこの辺のチューニングをすると逆に痛い目に合うというか、結局デフォルトがええわってなる未来も見えるのですが、知った上でデフォルトを選ぶのと、知らずになんかDBをhostしてるのでは全く違います。あとたまにアプリケーション側でも知ってないとダメな知識というのはありますし…

業務を遂行する上で利用しているSoftwareを深く知っている、というのは重要なことで一流と二流の違いの一つはこういうところにあるのだと個人的には思ってます。こういう深いところに触れるきっかけとして論文を読んでみる、というのは良い試みだと個人的に思っています。大抵の場合すんなり読めないんですが、何でつまづいたのか、というのは重要なインサイトを与えてくれます。

例えば今ちょうど読んでる論文はGoogleのMegastoreと呼ばれるCloud Datastoreを支えるストレージシステムに関する論文です。

Megastore: Providing Scalable, Highly Available Storage for Interactive Services - Google Research

本当はGoogleのNewSQL、Spannerの論文を読もうとしたのですが、頻繁に利用されるMegastoreという単語が気になって、まずはそっち読むか…と横道にそれました。Megastoreを読んでいると分散合意に関する自分の知識が薄っぺらすぎて読めないことに気づきました。結果また横道にそれてPaxosについて今は勉強しています。

Paxos

とまあ基礎が疎かになってるので色んな知らないことが出てきて大変なんですが、知らないことがあることを知れた、というのは重要な気づきで、こういうのを丁寧に一つずつ潰していけば最終的には論文が読めるようになっているはずです。論文が読めるくらい知識がつけば、結果として当該分野の解像度が飛躍的に高まってるはず。

時間はかかりますが、別に趣味なので無限に時間かけていいし、勉強の一環として楽しみながら続けようと思ってます。

エンジニアリングに関する本を月に一冊は読む

こっちの目標は仕事で必要な知識のinputとして設定している方です。論文の方は比較的探索的な情報摂取ですが、こちらはOutput Drivenでの情報摂取です。最近はどちらかというと技術力で困ってるというより、仕事の進め方やチーム・組織として感じているペインにどう向き合うべきか、みたいなやや抽象度の高い課題に頭を悩ませている感じがしているので、DevOpsや組織論的な本をちょっと読んでみる年にしようかなと思っています。新規事業なので秒間10万requestを裁くプラットフォームの開発をしなければならない、みたいな技術的に難しい課題がポコポコ生えてくる感じではなく、できるだけ難しいやり方ではなくシンプルに、簡単に達成できる課題に仕事を落とし込む、というアプローチをとっている組織なだけに、抽象的なレイヤーで頭を使えないと正直微妙な評価を受けざるを得ないと感じているので。(自分が思ってるだけでテッキーな人も欲しいのかもしれませんが). 技術力も全然高いわけではないのでちょこちょこ読もうとは思っています。

英会話を始める

仕事の幅を広げる意味でやっぱ英語喋れないとなぁ…とは思ってます。未来永劫今の会社にいることはあり得ないことだと思うので、転職を考えた際、minimum requirementに「fluent English」みたいなのがあると「あ、お疲れっす。さいなら〜〜〜」ってなっちゃってアレなので…

いますぐ積極的に転職したいわけじゃないですが、やっぱその会社で働き続けることを前提としたスキルセットの組み方はロバストじゃないと思います。いつでも転職できる、が、今の環境で働くことを選んでいる状態というのが望ましいので。

ジムに週2で通う

ムキムキになるつもりはないですが健康は大事。

まとめ

「ぶっちゃけ論文が読みたい」というお気持ちが文章量に出ちゃってますが、全部ちゃんと達成できるように頑張りたいです。本年もよろしくお願いします。