Lessons
Nim · Medium
Nim · Medium. Ten lessons. Open-book quizzes. Lesson 1 free.
10 lessons · The Host · Lesson 1 free
Pass all ten lessons for the certificate. Sample · Claim

Lesson 1 · On the house
Templates
Code substitution with template, untyped parameters, hygiene, and when to use them.

Lesson 2
Macro basics
Inspect syntax with dumpTree, generate code with quote do, and macros that take untyped arguments.

Lesson 3
Object variants
Tagged unions with case objects, exhaustive handling, and field access checks.

Lesson 4
Closures and proc types
First-class procs, closure capture, proc type annotations, and the sugar => / -> syntax.

Lesson 5
Memory: ARC, ORC, and move semantics
Deterministic reference counting, cycle collection, sink and lent, and avoiding copies.

Lesson 6
Compile-time execution
const procs, static blocks, when, static parameters, and lookup tables built at compile time.

Lesson 7
Concepts
Structural type constraints with concept, and generic procs that accept any matching type.

Lesson 8
async and await
std/asyncdispatch: async procs, Future, await, all, sleepAsync, and waitFor.

Lesson 9
Threads and channels
std/typedthreads, createThread, joinThreads, Channel for messaging, and Lock for shared state.

Lesson 10
JSON
std/json: parseJson, field access, to/% for object conversion, and pretty printing.
Sample certificate
Certificate of completion
Sign in to claim your certificate of completion.
Certificate
Finish all ten lessons, then sign in
Pass every lesson on this device (quizzes and checks). Then sign in or create an account to type your name and download the JPG.