今年一年の振り返りと来年の目標
はじめに
今年一年は特に職が変わった訳でもありませんし、業務内容に変化があった年でもありませんでしたが、
せっかくなので、ブログで今年一年の振り返りをしてみることにしました。
この記事は誰得なんだという感はありますが、私の成長のためだと思って許してください。(ただの私の備忘録?)
今年一年の振り返り
エンジニアリング面で色々なことをやり始めた
ソフトウェア工学周辺を学ぶようになった
通常のシステム開発とは違うとはいえ、システム開発をする機会が増えてくるだろうし、きちんと運用できて保守性の高いシステムを作れるようになりたいと思い、
リーダブルコードやClean ArchitectureやUNIXという考え方を読みました。
Clean Architectureに関しては私にはまだ早いという感しかなかったですが、何度も読み返してものにしていきたい。
テストコードを書くようになった
かなり非効率だけど今まで手動でテストをしていて、分析のコードに対してテストコード書くのめんどくさいなと思っていました。
しかし、何度も発生するバグに何度も苦しめられたり、4~5人程度のチームで開発することが増えてきたので、良い加減手動でテストしているのもな…と思い、テストコードを書くようになりました。
その結果、テスタブルなコードを書くように意識するようになったので、今のところ効率化された感はないが、良かったんじゃないかなという気持ちになりました。
ただ、テストコードの書き始めはかなり手間取って逆に非効率じゃね感があったりして、結構大変でした。
継続的インテグレーションツールを使うようになった
エンジニアの方に勧められたのと、テストコード書くようになったのと、ずっと導入してみたかったという理由でJenkinsをプロジェクトに導入することにしました。
最初はGitHubとの連携を調べるとMultibranch Pipelineを使う方法やらGitHub Pluginを使う方法やらGitHub webhookを使う方法やら色々な方法が出てきて、どれが良いのかを迷って手間取ってしました。
最終的にはMultibranch Pipelineにしましたが、ググり力不足なのかそもそもないのかは知りませんが、どう違うのかが分かるようなドキュメントがあまり見当たらなかったので、そういうのがまとまっているサイトがあれば教えていただきたい。
Goを勉強し始める
これは必要に迫られてというほどの動機ではないですが、ウォシュレットでうがいした経験のあるすごい前職の先輩と脆弱性を見つけてプギャーしてる姿をよくみる前職の先輩との共同開発プロジェクト的なもので使う言語がGoになったので、ちょこちょこ勉強し始めている感じです。リリースできると良いなあ。
Rustを勉強し始める
純粋にRustには興味があったので、チュートリアルをやってみたというところで最近は手をつけていないですね。来年には何か書きたい。
JavaScript(というかreact)を勉強し始める
Reactはフロントエンドさわさわしてみたいという理由で手を動かしつつ勉強してましたが、1週間くらいで放置しちゃっています。
共同開発プロジェクト的なものでフロントエンド書くときにまた勉強しようかなと思っています。
データ分析面でも色々やってみた
Kaggleをちょこちょこやり始める
まだ上位に行けてはいませんが、ちょこちょこkaggleをやり始めました。malwareコンペだけは勝ちたいという気持ちで毎日過ごしています。
HRED
ブログ記事にしていませんが、対話タスクのアーキテクチャでSeq2Seqの枠組みに過去のやり取りの情報を含む隠れ層を参照する仕組みを追加しただけの以下の論文の実装して手持ちのデータセットで検証してみましたが、結果はデータが悪いのもあり微妙で、VHREDの論文で指摘されているような相槌のような表現しか使わなくなる問題が起きたのも良い思い出です。
[1507.02221] A Hierarchical Recurrent Encoder-Decoder For Generative Context-Aware Query Suggestion
DeepCluster
先日記事を書いたばかりのDeepClusterです。強いGPUと膨大なメモリを得るだけの課金する覚悟ができたらImageNetで追試チャレンジしたいです。
GitHub - pesuchin/deepcluster-chainer
Deep3D
こちらはこの正月中にバグ取りをして、うまく動けば記事にしようかなと企んでいる深度推定(論文の主目的は深度推定ではなくて、左画像から右画像を生成してGIFにすれば3Dっぽく見えるよねというタスクですが、私がやりたいのは深度推定なので…)の論文です。
結構古い論文ではありますが、このアーキテクチャを使ったやや新しい深度推定の論文(Single View Stereo Matching)を実装したいので、実装を成功させていきたい。
来年の目標
エンジニアリングについての来年の目標
- テスト駆動開発をわかりたい
興味があるので実際の開発に適用してみたい。
- オブジェクト指向をわかりたい
ぼんやりとしか理解できていない気がするので、実際の開発で使えるレベルにはなりたい
- ドメイン駆動開発をわかりたい
おすすめされたので理解したい。
- Clean Architectureをわかりたい
再チャレンジしたい
- セキュアコーディングをできたい
前職はセキュリティ業界だったので、恥さらしめと言われないようなセキュアなコードが書けておきたい(油断すると思いっきり脆弱なコード書いてる時がある)
- FPGA買って遊ぶ
一応コンピュータサイエンスの学部を卒業しているのでCPUくらいは作っておきたい。
- バックエンドもフロントエンドも多少は書けるくらいまでは実装力をつけたい。
- 並列処理とか高速化にも興味ある
データ分析についての来年の目標
- 学習理論を理解したい
理論がすっぽり抜けてしまっているので、学習理論をやりたい。
- 数学力をあげたい
ちょっときつめの数学が出てきた瞬間に即死させられてしまうのをなんとかしたい。算数しかできない小学生状態を卒業したい。
- kaggleで勝ちたい
最強になりたい
- LightGBMをちゃんと理解して使えるようになる
木系のモデルはちゃんと理解するためにも感謝の再実装していきたい気持ちがあります。
- Transformerの感謝の再実装
Transformerで対話タスク解いてみたい。
- 物体検出やってみる
色々大変そうだけどできると楽しそう。
- 東ロボくんデータセットで遊ぶ
何か面白そうなデータセットなので、前処理大変じゃなければ触っていきたい
おわりに
やりたいことが本当に多すぎてまた大学生になりたい。というか、いつか修士は取りたい。
まだまだ若輩者ですが、来年もみなさんよろしくお願いいたします。