MJHD

エモさ駆動開発

2021年 振り返りと抱負

去年の振り返り
mjhd.hatenablog.com

早いものでもう2021年も終わり、体感的にはまだ6月ぐらいなんですが、カレンダーはバグらないので僕がバグってるのでしょう。
振り返りたいと思います。

どんな年だったか

エモさ溢れる年でした。今年も仕事でチームを移動しました。
同じプロジェクト内でチーム移動をするのが今回で二回目なのですが、やはり立ち位置を大きく変えるのではなく少しだけズラすことで差分が分かりやすく、組織的にも技術的にも人生的にも気づきが多いです。
2Dの映像も、ちょっとだけ視点をずらした映像を用意すれば立体的に見えると思います。あのイメージです。

仕事方針的な変化

チームを率いるというよりは、個人としての技術力を磨く方針に転換しました。
理由としては今の自分の技術力に自信がなく、確固たる芯を築きたい(そこまでは行かなくてももうちょい自信つけたい)というのが根本的な理由です。
あくまで技術に軸足を置きたい、でもまだ片足も地面についてない、という焦燥感がありました。

方針転換後、当然悩むのが、今までと同じだけの価値をどうやって個人で達成するのかという点。団体戦vs個人戦なわけです。
ここについては引き続き悩んでいきつつ、なんとなく対策は見えてきた気がするので来年実践していけたらと思います。(ユニークスキルを伸ばしつつ、影響範囲を広げてけば良いと思うのです)

内面的な変化

20歳も7年が過ぎ、いよいよ自分をだんだんと客観的に見れる余裕が出てきました。
これは人生を送るサブルーチンが刈り込まれ圧縮され、脳内メモリに余裕ができたので、自分をマネジメントするためのインスタンスを新たに立ち上げることができるようになったのが要因だと思ってます。
これがもっと脳内メモリに空きが出たら他人を気にかけるほどの余裕が生まれるのではないかな。(自分はこの段階に到達するのが遅い部類の人だと思います) 逆に一時的にでも脳内メモリが減り余裕がなくなるとマネジメントインスタンスがOOMKillされ、あっぷあっぷし始めます。リソースが足りてない中人生を送るために大切な非常措置だと思いますが、この状態を抜け出すのは大変です。
そして、そもそもこれは非常措置なので、発火させない予防が大事です。

均し

来年のキーワードは「均し」です。

地均し
1 地面の高低やでこぼこをなくし、平らにすること。また、そのために使う道具類。
2 あることをうまく進めるために、あらかじめ準備をしておくこと。「意見調整の地均しをする」
地均しとは - コトバンク

自分の今までの生き方は、端的に言ってこんな感じでした。
ノコギリ波

モチベやパフォーマンスが一時的に上昇します。ですが、上昇しきった後、意図的な代休や有休・虚空を見つめるだけの時間を作ることでクールダウンし、マイナスからまた徐々に上昇し始めます。意図的じゃなく燃え尽きることも度々ありました。
この生き方の問題点は、
1. 平均すると0付近にいるにも関わらず、自己評価や他人からの評価はプラス面を見がち。なので過大評価につながる
2. マイナス領域にいるときの上昇要因が、過大評価への焦りになりがち。なので振幅が徐々に増えていき負のサイクルに

誰も現状を正しく把握できなくなり、さらに負のサイクルも引き起こしてしまいます。
また、この生き方で成功体験を積んでしまうのも今後の自分や他人にとって悪影響があると思いました。

今年は、この波を均すことを目標にしたいと思っています。均すといっても傾き0というわけではなく、ゆっくり着実に右肩上がりを目指します。
コンスタントに学び、成果を出し、現状を正しく把握し、正しく振り返れる年。 それが理想です。

強みと弱み

マネジメントインスタンスを立ち上げたことで、徐々に自分の強みと弱みも具体的にわかってきました。

強み:
- 遅効的な思考が得意(じっくり考える, 執着する..)
- 深掘り好き(自分で考え理解する, 疑問点を残さない, ....)
- のめり込める
- 飲み込みが早い

弱み:
- 瞬発力のある思考が苦手(口頭で迫られる決断, 会話の切り返し, 臨機応変, 無茶ぶり...)
- ノイズのある環境に弱い(騒音, 集中力の乱れる情報, ...)
- 生き急ぎがち(パフォーマンスに波がある)

思考の早さやノイズについては立ち回り方でどうとでもなりそうです。

今まで自分は「熱しやすくて冷めやすい」や「一念発起が得意」な人間だと自覚していたのですが、改めて振り返ってみると、集中すると成果が出せるけど、セルフマネジメントが下手なので純粋に燃え尽きているだけだと感じます。
ここにも、来年のキーワードである「均し」が活きてくると良いです。

学んだこと

今年は三つの軸で学びました:
1. 低レイヤー(GB, NES, GBAエミュレータづくり)
2. CS・数学(暗号理論, 符号理論)
3. 哲学・思想(放送大学の授業)

低レイヤー

去年の抱負にこう書きました。

今年は、新しい技術や言語の習得ができていない年だった。(マズイ)

Rust を少し齧ったが、まだまだ「Rust らしいコード」を書けていない。

抱負としては「低レイヤーに関する知識を深める」。CPU/GPU、ドライバ、カーネル、OS、コンテナ…などなど。

この対策として、今年はゲームボーイファミコンゲームボーイアドバンスなどのレトロゲームエミュレータを複数書きました。

mjhd.hatenablog.com

mjhd.hatenablog.com

github.com

結果として、Rust力もはじめと比べたら多少は上がった…かな?(正直言語に関してはPRDで書かなければ上達しなさそう)
低レイヤーに関する知識は、正直そんなに上がっていません。命令パイプラインの実物を初めてちゃんと知れた…ぐらいでしょうか。
来年もGBAの開発を続けつつ、少し裾野を広げて「30日で作るOS本」でもやろうかな。

CS・数学

今年いっぱい、数学の得意な友人と一緒にCS・数学の輪読会を月2~3回ぐらいのペースで行いました。

XORSHIFT: Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート

楕円曲線暗号: 楕円曲線暗号アルゴリズムを理解する|TechRacho by BPS株式会社

暗号理論: 暗号理論と代数, 松本 眞, 広島大学: http://www.math.sci.hiroshima-u.ac.jp/m-mat/TEACH/network-algebra.pdf

暗号理論は、シーザー暗号に始まり、数学的難問を使った鍵交換、暗号化など現代でも使われている暗号化まで一通り網羅できる分野です。
CS・数学の分野的には、離散数学で扱うような剰余類の話であったりとか、そこから発展して群論の話など、幅広く扱います。

符号理論: 例題で学ぶ符号理論入門 | 先名 健一 |本 | 通販 | Amazon

符号理論は、ガロア理論に基づいた多項式表現により二進数を表現することで、多項式を用いた様々な性質を情報科学の分野に持ち込みます。
必要な数学的分野としては、離散数学線形代数です。
これにより、現代のQRコードや通信で使われるような誤り訂正のロジックを説明できます。

以上を学びました。個人的に、輪読会は続かないものだと思っていたので、今回一年を通して数学を学べたことはかなり良い成功体験になりました。

哲学・思想

哲学、思想については放送大学で、概論的な授業と、言語哲学の授業をとりました…が、正直言語哲学の方は時間がなく、単位を取ることができませんでした。
教科書自体はあるので、来年隙を見つけて取り組みたいと思います。

まとめ

来年は「均し」をキーワードにエンジニア人生を歩んでいく。
個人的な学習としては引き続き、低レイヤーとCS・数学をメインに行っていく。

今年もありがとうございました、来年もどうぞよろしくお願いいたします。