今年は個人的にはけっこう濃い年だったと思う。あまり長くならない程度に振り返っておきたい。
去年
仕事
ソフトウェア開発プロジェクトは持続可能であることが重要だということを以前よりかは意識するようになった。今関わっているプロジェクトが本番リリースから1年ほど経ち、保守や運用などの面でそれなりに課題も見えてきた。特にテストコードの書き方には課題があったと思う。お恥ずかしい話だが自分のテストコードの書き方は良くも悪くも現場仕込みで、けっこう我流で書いてしまっている面があったと思う。もっとちゃんと勉強したほうがいいなと思って「単体テストの考え方/使い方」という本を読んだ。
この本が本当に知見の塊で、もっと早く読むべきだった。学びが多すぎて消化しきれていないので、折に触れて読み返したほうがよさそう。それでも、得た知識をある程度は業務で書くテストコードにも反映してきた。ただ、その成否がわかるには実際にそのテストコードを保守していく必要がある。もし可能であれば、これからもこのプロジェクトに関わってその成果を見ていきたいし、さらに改善を加えていきたい。
テストコードの他にもドキュメントの整備方法を考えたり、ライブラリバージョンアップの管理方法の提案や実際のバージョンアップ実施までをしたり、あれこれやってきた。そんなタスクは別に振られていないけど、プロジェクトに関わっている間はプロジェクトを持続可能にするためのことは何でもやりたい。それが本来すべきことだと思うし、そういう経験を積むことは自分の市場価値にも良い影響があると思う。
ただ、テストコードの書き方は我流だったみたいなことを書いたが、我流の色が強いのは正直なところそれだけではなく、他にもいろいろある。経験があるといえば聞こえはいいが、現場で業務をこなすのに採用したプラクティスが、プロジェクトを持続可能にするのに適した方法であったとは必ずしも言い切れない。なにしろ、設計や実装をした後にプロジェクトを離任すると、それが後に火を吹いたとしても自分がそれを知ることがない。自分が採用した方法はただ目の前のことをこなすだけの方法で、長期にわたって通用するものではなかったという可能性は常にある。業務をこなせたのだからこの方法は良い方法だ、とは全然言い切れないのがこの仕事の恐ろしいところだと思う。なので、現場仕込みの我流の方法をずっと続けるのは良くないと思った。テストコードの書き方に限らず、もっと他の分野も勉強して、それを業務に反映して、さらにそれを長期的に観察していく経験を積んでいかなければと思った。
2024年の振り返りという意味だと、そのような認識になって、その最初の一歩を踏み出したと、その程度の話にとどまる。正直なところ勉強しなきゃいけない分野はあまりにも多岐にわたり、とても短期では勉強しきれない。長期的に継続していく必要がある。まあね、全ての分野においてばっちり勉強していて長期的に観察した経験もあるなんて超人は滅多にいない(たぶん…)ので、今の自分がそれに程遠いからといって絶望する必要もない。焦らず一歩ずつ。
具体的にはコンピュータサイエンスの分野を一つずつ履修していけばいいのかなあと。
それと、自分で勉強するのはいいけど、実際に仕事のプロジェクトで適用するにはチーム内での認識共有なども考えないとあまり意味がないなとも思った。こっちも継続課題として考える。
そうなんだよねぇ、コンピュータサイエンスも重要なんだけど、そういう対人スキルというか、そういうのもちゃんとやらなければね。他にもマネジメント手法とかもね。やるべきことが無限にある…
競プロ
今年の目標はAtCoderで入緑すること、としていた。一瞬だけ、達成することができた。しかしその翌週に灰パフォを出して爆死、レートはナイアガラのごとし…
それが4月のことだった。
年末までまだまだたっぷり時間があるんだからまた戻れるのではと虫歯になりそうなくらい甘いことを考えていたのだが、ついぞ戻れることはなかった。戻るどころかその後も何度か灰パフォを出し、最終的にはhighest - 105の695にて年越しを迎えることに。
見てみたら695って2024年が始まった時点のレートと同じなんですが… 1年でレート変動なし!もう終わりだよこの人
2024年
— hira (@dhirabayashi64) 2024年12月29日
695 -> 695 (±0)
なんということでしょう pic.twitter.com/ZcHZXKOzPW
灰パフォ爆死に再現性があることから、これはもう普通にそれくらいの実力という話ですね。素の実力がそんなに乱高下するとは考えづらいと思っていて、入緑したのは実力というよりは、なんかバフみたいなものがついていてそれよるものだったのかな、みたいなことを考えた。今まで私がやっていた練習は素の実力を上げることにはあまり繋がっておらず、単にバフの付与や維持に寄与していただけなのではないかと…
競技としての攻略法という意味だとバフの付与と維持は有効というかむしろ当然やるべきことなんだけど、私が優先してやるべきことではなかったなと。競プロのレートはもちろん上げたいけど、私のもともとの目的は素の実力のアップだったので。
じゃあ何をすべきなのかというと、たぶん競プロのレートを上げるための練習ではなく、単純に既成のアルゴリズムをいろいろ勉強するのがいいのかなと。アルゴリズムの使い方を知るだけでは意味がなくて、そのアルゴリズムがなぜ正しいのか、なぜその計算量になるのか、を理解したい。そして自分でも実装したい。素の実力を上げるにはそういうことをしたほうがいいのかなと。それで、直近だとソートアルゴリズムの勉強をしている。ソートアルゴリズムを勉強しても直接的には競プロの役には立たないので今まではあまりやってなかったけど、だからダメだったのでは?と感じた。
そうなると別に競プロやらなくていいのでは… という気もする。ただ、実装の練習をするにあたっては競プロはいろいろとちょうどいいんですよね。練習というか、バフをかけるというか。実装力のバフをかけるのはそのまま仕事の役に立つので、そっちのバフの付与と維持はしたい。開発するお仕事ではあってもコードを書かない日はたくさんあるので、業務外でコードを書いてバフを付与しておくのは重要と思っている。他に実装力のバフをかける手段があったら競プロをやめてもいいかもしれないけど、今のところ見つかっていないのでしばらくは競プロを活用していくことになりそう。レートを上げるとかはあまり目指さないことになりそうだけど。
それと、なんとなくHaskellで競プロをやってみたい気持ちがある。来年実現できたらいいなあ。
低レイヤー
OS作りたいと漠然と思っていて、2024年は「ゼロからのOS自作入門」という本をもとにいよいよ着手した。が、早々に挫折した。難しすぎる…
一応、記録を書いていた。
ポインタがわからなくて、ポインタ自体が何なのかはわかるけど、ゴリゴリにアドレス値を演算するのに慣れなくて挫折。そもそもC言語で実際にコードを書くということに慣れるべきなんだろうと思った。OS自作とかそれ以前の問題ですね…
それで、「低レベルプログラミング」という本を読み始めた。しかし、これも3ヶ月くらい粘ったのちに挫折。これはこれで難しすぎる。
こちらも記録を書いていた。アセンブリ言語でコードを書くのってこんなに大変なんだなと知れたのはよかったかもしれない…
まあこの辺りもコンピュータサイエンスの一分野で、やるべきことの一つだと思っているのでそのうち再挑戦したい。ただ、もうちょっと簡単な本から始めたほうがよさそう。あとは、Rustベースで勉強するとか?
交流
引きこもり気質で人との交流が非常に薄い人間だった。勤務形態の都合上、自社の中にすら知り合いが少ない。これはちょっともったいないなと思って、会社のイベントに積極的に参加するようになった。コミュ力低いので棒立ちしていたりもするけど、それでも参加を繰り返していくことで社内に知り合いをけっこう増やすことができた。人見知りが激しいので正直なところ知らない人がたくさんいる場所に行くことには恐怖すら覚えていたのだが、なんとか参加を繰り返すことで恐怖感というのはほとんどなくなってきた。こんな感じで知りたいを増やしていきたい
それと偶然なのだが、前の会社で一緒だった方と道でばったり会って、そこからその方が主催するイベントに参加するなどして交流が再開したということもあった。
幸福度を上げるには人と交流したほうがいいよなと考えたことがあって、まあ幸運にも恵まれたけど2024年は人との交流を増やせてよかった。もっと増やしたい。
JJUG CCCに登壇(2回)
JJUG CCCはJavaコミュニティの一大イベントで、年2回開催されている。これまでも聴講者としての参加はしていたが、登壇はしたことがなかった。してみたいとはずっと思っていたがネタが思いつかないでいた。今年はなんとなくネタがひらめいて、軽い気持ちでセッション募集に応募してみたところなんと通った!ということでカンファレンスで登壇する実績を解除できたのが2024年だった。
1回目の登壇についてはこちらに記録を書いた。
それが6月の話。準備はかなり大変だったけど、やっぱり登壇してみてよかった。それで調子に乗ったのか、2024年の2回目のJJUG CCCのほうも応募してみた。なんとこちらも通ったので、2024年中に2回登壇することに。
2回目のほうは最初の枠で登壇した後、そのまま懇親会まで含めてフル参加してしまった。2回目のほうの記録は以下に書いた。
2025年もチャンスがあれば登壇したいところだが、まあそれもいいけどそれ以上にコミュニティ内での知り合いを増やしたいなと思った。それも人との交流。今年は懇親会に出て数名とお話できたけど、その方々以外の知り合いはほぼいない。増やしたい。登壇もいいけど、知り合いを増やすならボランティアスタッフとして参加するのもいいかもしれない。
健康
今年も少し調子が悪くなることがあった。健康に良いとされていることでまだあまりやっていなかったこととして筋トレがある。厚生労働省も筋トレやれって言ってた。しょうがない、やってみるかと筋トレを始めた。今までも多少は自重でやっていたけど、もうちょっと負荷を上げようと思ってダンベルを買った。
これも幸運なんだけど、社内に筋トレに詳しい方がいらっしゃってあれこれ教えていただいたり、その方が主催するイベントに参加したりした。そうやって筋トレをしていったら、たぶんそのおかげだと思うのだが心身ともに調子が良くなったと思う。ダンベルが重いっていつも思っているけど、続けていけば軽くなるのかな…
2025年にやりたいこと
無限にやるべきことがあるけど、現実的には特定の期間内に何をどこまでやるのか計画を立てないといけない。2025年の計画はまだ立っていないので年明けに考える!(ええんか…)
それと、もっと趣味を増やしたいとも考えている。今のところ、旅行が有力。世界は広いというのに普段の狭い生活圏内に引きこもっているなんてもったいないなと感じて… 早速1月にどっか行きたい!どこに行くかは悩んでいるが、一人旅なんて初めてなのでハードル低いところから始めたほうがいいのかなあ。