Learn databases from the bottom up by coding your own, in small steps, and with simple Go code (language agnostic).
Atomicity & durability. A DB is more than files!
Persist data with fsync.
Crash recovery.
KV store based on B-tree.
Disk-based data structures.
Space management with a free list.
Relational DB on top of KV.
Learn how tables and indexes are related to B-trees.
SQL-like query language; parser & interpreter.
Concurrent transactions with copy-on-write data structures.