2019年の振り返りと2020年の目標

やってきたことを忘れないためにも2019年を振り返ってみて、2020年の目標を立てたいと思います。

やってきたことですが、個人的な取り組みとしていろいろな言語でパーサーの実装をしてきました。最初に実装をしたJavaでの方針をもとにほかの言語でも作ってみたのですが、特にジェネリクスが使えないgoではJavaの実装をそのまま持っていくことが出来なかったので苦労した覚えがあります。
それから、ScalaについてはJsonをパースした後に任意の型に変換する部分がまだ作っている最中なので、こちらも時間があるときに進めていきたいです。
GitHub - teruuuuuu/parsers
scalaでjsonをパース後のASTを扱いやすいように型変換する方法について調べてみた - teruuuのブログ

あと勉強を続けていたドメイン駆動設計と関数型言語で用いられるモナドについても抵抗が前よりもない気がしています。
ecサイトをモデリングしてscalaで実装してみる - teruuuのブログ
Scalaで作って理解するモナド - teruuuのブログ

関数型言語による簡潔な表現はドメイン駆動設計と相性がよさそうだと思いますし、"Functional and Reactive Domain Modeling "という本も出ているようなので2020年はドメイン駆動設計の中で関数型言語をうまく使う方法についても勉強していきたいところであります。
Manning | Functional and Reactive Domain Modeling

また、知識の幅を広げるためにPythonでの株取引シミュレーションやISUCOnの過去問を解いたり、verilogでCPUのシミュレーションをしたりと興味があったものは学ぶようにしていました。
株とPythonの本を読んで株取引のシミュレーションを実装してみた - teruuuのブログ
ISUCON9 Finalのベンチマークを動かして遊んでみた - teruuuのブログ
CPUの創り方をもとにverilog-hdlでシミュレーションをしてみた - teruuuのブログ
RSA暗号の仕組みを追ってみた - teruuuのブログ

2020年の目標について、自分自身の得意分野というものが特になく一つのことを集中して続けるということがあまりなかったので、自分の得意分野を持てるようになりたいと思います。 具体的には、パーサーの実装にも慣れてきた気がするのでそろそろ自作言語についても学んでいきたいです。それから去年は転職をした年でもあるので、業務にいかせる何かについても取り組んでいく予定です。