dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

2021年1〜3月のふりかえり

完全に出遅れたが今年も3ヶ月おきにふりかえりをしていこうと思う。

やったこと

1月:「Go 言語でつくるインタプリタ入門」を途中まで Rust で頑張るものの挫折した

Go言語でつくるインタプリタ

Go言語でつくるインタプリタ

  • 作者:Thorsten Ball
  • 発売日: 2018/06/16
  • メディア: 単行本(ソフトカバー)

Rust の勉強のため & インタプリタについて知りたいというモチベーションで昨年12月ぐらいから取り組んでたものの、途中で飽きてしまい、こんなモチベーションで続けるぐらいなら気になってる Let's build a browser engine やった方がいいなーと思ってやめた。

たぶん、本格的に面白くなる前にやめてしまったというか、書かれたプログラムを字句解析器(レキサー)→構文解析器(パーサー)という手順でもって抽象構文木(AST)にするというあたりはなんとなく知っており、新しい知識が得られるとしたらこのあとそれを評価する部分のしくみだと思うので、そこまでたどり着けなかったのはもったいない気もする。

あとは、年始にこれの特集記事「Web ページが表示されるまで」を読んだ。
感想をブログにアウトプットするところまでできてなかった。


2月:「Let's build a browser engine!」をやった

というわけで自分の欲求に忠実に生きようと2月からやったのがこの連載記事。

内容・感想はここに書いたが、ブラウザのレンダリングエンジン(の超簡易的なやつ)を Rust で書いてみよう、というもの。
「Let's build a browser engine!」を読んでRustで簡易レンダリングエンジンを作った - dackdive's blog

これはなかなか面白かった。
レンダリングエンジンのおおざっぱな仕組みは理解していたが、実際書くとここまでシンプルでもレイアウトツリーの構築とかはこんなにめんどいのかー、みたいな感想を持った。


3月:なんか色々手を出した & 「ゼロからのOS自作入門」を始めた

3月の上旬は Software Design 3月号の WebAssembly の特集記事を読んだ。

メモはこちら:Software Design 2021年3月号の「WebAssembly入門」を読んだ - dackdive's blog

そして下旬にこちらの本が発売されたので、今はこれを読んでいる(通称「みかん本」)。

ゼロからのOS自作入門

ゼロからのOS自作入門

OS を作ることを通じて低レイヤのこともっと理解したい〜と思ってたのでとても良いタイミングだった。

また、みかん本を読みつつスキマ時間に Rust の勉強を続けたくて Exercism をやっている。

よくあるプログラミング学習サービスなんだけど、メンターがいてこちらが提出したコードに対してアドバイスとか Tips を教えてくれるのが良い。


1月〜現在:副業で Salesforce 開発をはじめた

Scalebase というサブスクリプションの契約管理 SaaS を開発しているアルプ株式会社で1月からお世話になっている。
Scalebase には Salesforce と連携する Scalebase Connect というサービスも展開しており、そこの機能追加や改善タスクを業務委託で行っている。

Salesforce 開発にがっつり関わるのは久しぶりなのでまた勉強し直してる。Lightning Web Component という Salesforce 独自のフレームワーク(※)とか。
フレームワークというと語弊があるかもしれない(参考)。でも React とか Vue みたいなものだと個人的には思ってる

副業先は(オンラインだけど)いつもワイワイやっていてとても雰囲気がよく、自分も気持ちよく仕事させてもらっている。

所感

集中力・モチベーションが上がらないと感じる時期があった

これは自分でも原因がよくわからない、かつ今も復活したかと言われると怪しいんだけど
2月頃からなんとなくしんどいと感じることが多かった。
具体的には、なんとなく朝働くぞという気持ちに切り替えられなかったり、あんまり大した成果出せてないなと感じたり、その割に仕事終わりに謎の疲れがあったり、などなど。

色々考えたけど結局なんでなのかはよくわからず。ただ自分が今こういう状況であることが自覚できたことはよかった。
在宅勤務にも慣れて、なんなら家の環境整えたし通勤なくなったしリモート快適じゃん!ぐらいに思ってたけど、そうでもないんだなと。

それから、こういった状況にあることを社内で何人かと話す機会があって、それでずいぶん楽になったこともあったので、当たり前だけど人と話すのって大事だなあと。
自分はうまくいってないときとか気分が乗らないときに人とのコミュニケーションを避ける傾向にある気がするので、このへんは気をつけたい。

大学進学について

コンピューターサイエンスの学位を取るために大学に行きたいという欲は依然としてある。
今までは University Of People(UoPeople)しか可能性がないと思っていたが、放送大学という選択肢もあることがわかった。

2月にこちらの記事を読んで、大変参考になった。

今の気持ちとしては

  • 「いつか金銭的・時間的に余裕ができたら行きたい」だとそんなタイミングは一生来ないので、動き出したほうがいいと思う
  • 一方で、大学に行く目的はもう少し整理したい
    • 体系だったカリキュラムで学べること、学んだことの証明が得られることが主な理由だが、具体的に何を学びたいのか?
  • 英語学習の必要性も感じているので、自分には UoPeople が良いと思ってる

という感じ。それもあって先月末に TOEFL を受験したりしてた。
TOEFL iBT Home Editionを受験した - dackdive's blog

UoPeople のカリキュラムや単位移行、入学手続きの方法などをきちんと調べるのが次のアクションになりそう。

次の四半期(2021年4〜6月)のテーマ

  • 「ゼロからのOS自作入門」を読む!
    • 当面はこれかなー。1,2ヶ月かもっとかかる気がしている...
  • Exercism 継続する
  • UoPeople への入学について必要なこと調べ終える
  • みかん本が終わったら「Rustで始めるTCP自作入門:ひつじ技研」とか読みたいな