Free, open source, versioned
Learn a language as it is today, not as it was in 2014.
Every lesson names the release it was written against, marks the features that need a newer one, and is rechecked when a new version ships.
def describe(point): match point: case (0, 0): return "origin" case (x, 0): return f"on the x axis at {x}" case _: return "somewhere else"The path through a language
Every language follows the same four levels, so what you learn about reading one curriculum carries over to the next.
Beginner
Read and write small programs with confidence.
Intermediate
Structure larger programs and use the standard library well.
Advanced
Concurrency, performance, the type system and tooling.
Expert
Internals, design trade-offs and the corners of the spec.
Ideas that do not belong to one language, such as variables, control flow, recursion and what a type is, are taught once in the fundamentals track. Each language lesson links back to the ones it builds on and then teaches only what is specific to that language.
Pick a language
The most widely used languages get the full curriculum first.