go-dojo
learn go · earn mastery

Prereq graph

The curriculum is a DAG. Every task declares which earlier tasks it needs. You can't productively open a node until its parents are at learning mastery.

0.1-backend-mental-modelbackend mental model0.2-go-toolchaingo toolchain0.3-types-zero-valuestypes zero values0.4-errors-as-valueserrors as values0.5-first-http-hitfirst http hit1.1-hello-worldhello world1.2-types-structstypes structs1.3-error-testingerror testing1.4-pointers-slices-mapspointers slices maps1.5-goroutines-channelsgoroutines channels1.6-tdd-practicetdd practice2.1-http-protocolhttp protocol2.2-net-http-servernet http server2.3-concurrency-patternsconcurrency patterns2.4-networking-serializationnetworking serialization2.5-time-tickerstime tickers2.6-testing-at-scaletesting at scale3.1-sql-fundamentalssql fundamentals3.2-postgrespostgres3.3-caching-fundamentalscaching fundamentals3.4-redisredis3.5-queue-fundamentalsqueue fundamentals3.6-natsnats3.7-mini-systemmini system4.1-distsys-theorydistsys theory4.2-gossip-protocolgossip protocol4.3-logical-clockslogical clocks4.4-crdtcrdt4.5-maelstrom-setupmaelstrom setup5.1-echoecho5.2-unique-idunique id5.3a-broadcast-singlebroadcast single5.3b-broadcast-floodingbroadcast flooding5.3c-broadcast-fault-tolerantbroadcast fault tolerant5.3d-broadcast-efficientbroadcast efficient5.3e-broadcast-constrainedbroadcast constrained5.4-g-counterg counter5.5a-kafka-singlekafka single5.5b-kafka-lin-kvkafka lin kv5.5c-kafka-efficientkafka efficient5.6a-txn-singletxn single5.6b-txn-read-uncommittedtxn read uncommitted5.6c-txn-read-committedtxn read committedPHASE 0PHASE 1PHASE 2PHASE 3PHASE 4PHASE 5

click any node to open the kata · colors show mastery once you start tracking your repo