YOUR DART LEARNING PATH

A little more Dart.
A little more confidence.

One idea at a time, with examples you can follow and checkpoints to see what’s clicking. New here? Begin with chapter one. Know a little already? Jump right in.

Before you start

Basic variables and functions are helpful. The early chapters introduce Dart types and control flow before records, collections, classes, and asynchronous results.

Review a foundation whenever you need it: First Python program · Decisions and loops · Small functions

13 open chapters. Your progress is saved as you go.

Your chapters

Choose any starting point
  1. 01

    Represent values and absence explicitly in Dart.

    Start here, or skip ahead
    Open chapter: Types, bindings, and null safety
  2. 02

    Build reusable calculations with explicit branches and parameters.

    Open whenever you’re ready
    Open chapter: Functions and control flow
  3. 03

    Represent small results with precise, destructurable shapes.

    Open whenever you’re ready
    Open chapter: Records and structural patterns
  4. 04

    Control aliasing and evaluate lazy iterable results when needed.

    Open whenever you’re ready
    Open chapter: Lists, maps, and transformations
  5. 05

    Preserve type relationships while respecting collection variance.

    Open whenever you’re ready
    Open chapter: Generic contracts and runtime element checks
  6. 06

    Know when transformations execute and when to materialize them.

    Open whenever you’re ready
    Open chapter: Lazy iterables and generator demand
  7. 07

    Use constructors and library privacy to control a model.

    Open whenever you’re ready
    Open chapter: Classes and validated state
  8. 08

    Keep equality, hashing, and mutation consistent.

    Open whenever you’re ready
    Open chapter: Value equality and stable hash keys
  9. 09

    Implement a contract without inheriting implementation accidentally.

    Open whenever you’re ready
    Open chapter: Interfaces and substitution
  10. 10

    Model alternatives so every result state is handled.

    Open whenever you’re ready
    Open chapter: Sealed results and exhaustive branching
  11. 11

    Await asynchronous work and handle its errors deliberately.

    Open whenever you’re ready
    Open chapter: Futures and failure boundaries
  12. 12

    Treat asynchronous sequences as a separate contract from one result.

    Open whenever you’re ready
    Open chapter: Streams, ordering, and cancellation
  13. 13

    Move expensive work without assuming shared mutable state.

    Open whenever you’re ready
    Open chapter: Isolates and message-owned work

PUT IT TOGETHER

Final assessment & certificate

30 multiple-choice questions and 2 written coding problems. Pass the knowledge section at 80% overall and at least 50% in every chapter area, complete and review the written practice, and meet the attempt-integrity checks to unlock your certificate.

The certificate records a CodeQuest foundations assessment. Written work is self-reviewed; identity and independent proficiency are not verified.

Open final assessment

Take an issuer-recorded assessment with a verifiable certificate

Continue the original guided missions