Bits, bytes & integers
Everything is a pattern of bits. The type decides what the pattern means.
Open lessonReview log
last 32 days · reviews per day in hexRead it like xxd output: each byte is one day, oldest at the top left, today outlined.
The right column marks days you showed up.
How this works
Read a lesson, then press Add cards to my reviews at the bottom. Its flashcards join your deck and come back on a spaced schedule: a card you know well returns after days, then weeks, then months; one you miss comes back in a minute.
- Before you reveal an answer, actually say or write it. Recall, not recognition, is what builds memory.
- Grade honestly. Again if you got it wrong, Hard if it was a struggle, Good if it came normally, Easy if it was instant.
- Shortcuts in review: Space shows the answer, 1–4 grade it.
- When something clicks while you're coding, write it down as your own card in Cards.
Build these
projects that use the lessonsA hexdump clone
Read a file and print offsets, hex bytes and an ASCII column, like xxd.
A CHIP-8 emulator
16 registers, 4 KiB of memory, a fetch-decode-execute loop. The best first emulator.
Your own allocator
A bump or free-list allocator that implements std.mem.Allocator and passes std.testing leak checks.
Life without libc
Hello world, then cat, using only raw syscalls through std.os.linux.
Measure your caches
Time random vs sequential reads across array sizes and find your L1, L2 and L3 sizes in the curve.
A tiny shell
Read a line, fork, exec, wait. Add pipes and you've touched half of an OS course.