GWは自作DBをやってた

年1くらいで低レイヤーとか自作XXにチャレンジすることをやっており、今年のGWは自作DBにチャレンジしていたのでそれについての日記です。(まだ全然終わってないです)

WEB+DB PRESS

最初は WEB+DB PRESS の「作って学ぶ RDBMS のしくみ」をやりました。
WEB+DB PRESS Vol.122 | WEB+DB PRESS編集部 | コンピュータ・IT | Kindleストア | Amazon

この本はわずか100ページ程度で、情報が適切に取捨選択され、全体像が把握しやすくなっています。文章も読みやすく、約2~3時間でざっと読むことができました。
これを実装しても良いんですけど、GWの時間余りそうだな!と思ったので、別途本格的な本を買ってやることにしました。

Database Design and Implementation

続いて取り組んだのは Database Design and Implementation という洋書を購入して、今も読み進めています。 link.springer.com

まずは実装する前にざっくりでも良いので最後まで読んでみようをやっています。 現在はChapter 5のTransaction Managementまで読み終わって、WALとかロックとかの実装がなんとなく理解できたという状態になりました。

で、本の内容については読み終わったら書くとして、今回は進捗が良かったなと思っておりそれについて書いてみます。

今回の進め方で良かったこと

ChatGPT に翻訳してもらって洋書を読む体験が良い

私は英語が得意ではないので機械翻訳に頼って読み進めるしかないのですが、今回 ChatGPT に翻訳してもらいながら洋書を読んだところ、一週間で160ページくらいと私にしてはかなりハイペースに進められました。 最初はDeepLの pdf まるごと翻訳を使って読んでました。 これは言っていることは理解できるが日本語として不自然な部分があり、それが学習のノイズになっていたため途中からChatGPT(GPT-4)で翻訳してもらったところスピードアップできました。

やり方としては1,2センテンスごとコピペして「以下を日本語に翻訳してほしい。${text}」-> 内容を理解するを繰り返してました。 多少面倒ではあるのですが、ChatGPT に翻訳を頼むと本文にないことも付け足してくることが多々あり、一度に翻訳する分量がある程度少ないほうが異常に察知できるので、むしろこっちのほうが楽でした。

また、この本とChatGPTの相性という面でいうと、翻訳が怪しかったとしても最終的には実装を見れば良いので安心感はありました。

長期休暇前に長期休暇中にやりたいことを着手しておく

これまでの経験から、私の長期休暇で進捗が上がらないパターンが2つありました。 一つは「いざ長期休暇になってやってみたらそんなに興味がある内容じゃなかった。そこから他のテーマを探すが見つからない or 見つけるころには長期休暇が終わる」もう一つは「効率良く進める方法を追い求めて色々やった結果、着手する前に燃え尽きる(飽きる)」です。
特に後者に関しては今回も例にもれず Obsidian を使おうとしてみたり、pdf から文章を抽出して ChatGPT に投げるスクリプト書いてみたりしてました。いつもだったらそこで燃え尽きることも多かったです。
しかし、今回はGWの2週間前から取り組んでいたため、一旦ちゃんと燃え尽きた後に再度やる気が出てきて、GWに入るころには「素直に本を読む方が良い!」と軌道修正できたのでGW中は進捗を出すことができました。(最初からそうすればいいじゃんっていうのはそう)

おわりに

あと2ヶ月くらいあれば読み終えそう & 実装もできそうなんですけど、それまでモチベーションが持つかなーどうかなーという感じ。