Course · written by Novus Learn

JavaScript, from zero to developer

By the end you can read, write, debug and test plain JavaScript on your own: model real data, write functions other people can use, handle failure deliberately, prove your code works with tests you wrote yourself, and explain every line of it. You will not need a framework, a tutorial video, or a copy-paste answer to build a small library end to end.

JavaScript has a full written course here because it is a language this site can actually run on your device. Your exercises are graded in a sandbox in this browser, with no account and no server. Every lesson is written in our own words and every claim in it cites the official documentation, so you can check the source yourself. Nothing on this page was generated when you loaded it: it is written, committed and reviewed like the rest of the site.

12 modules · 77 lessons · 71 hours of authored material · 94 graded exercises across 65 lessons. Last verified against the docs on 2026-07-31.

0 of 77 lessons done0 of 94 exercises solvedSaved on this device only, no account, nothing sent anywhere.

How long it takes

71 hours of material. That is the sum of the lesson estimates, not a marketing number . Pick a pace you can keep.

  • 1 h/day

    ~10 weeks

  • 2 h/day

    ~5 weeks

  • 3 h/day

    ~3 weeks

  • Full time, 6 h/day

    ~12 days

The 12 modules

  1. 1. Programs, values, and types0/8 lessons · 6h · 10 exercises

    Run a program, print a value, and name every kind of value JavaScript has.

    1. What a program actually is40 min · 1 exercise
    2. Numbers and arithmetic50 min · 2 exercises
    3. Text values, a first look45 min · 1 exercise
    4. Naming values: let and const45 min · 1 exercise
  2. 2. Making decisions0/6 lessons · 5h · 7 exercises

    Make a program take a different path depending on its input.

    Builds on Programs, values, and types, you can start here anyway, but that is the order it was written in.

    1. if, else, and blocks50 min · 2 exercises
    2. switch, and when to avoid it45 min · 1 exercise
    3. The conditional operator45 min · 1 exercise
  3. 3. Functions: naming and reusing behaviour0/7 lessons · 6h · 8 exercises

    Package behaviour behind a name someone else can call.

    Builds on Making decisions, you can start here anyway, but that is the order it was written in.

    1. Return values and early return55 min · 1 exercise
    2. Scope and shadowing55 min · 1 exercise
  4. 4. Structured data: arrays and objects0/7 lessons · 7h · 14 exercises

    Hold many related values and reach into them safely.

    Builds on Functions: naming and reusing behaviour, you can start here anyway, but that is the order it was written in.

    1. Shapes inside shapes60 min · 2 exercises
  5. 5. Iteration and array transformation0/7 lessons · 7h · 12 exercises

    Turn one collection into another without writing the same loop twice.

    Builds on Structured data: arrays and objects, you can start here anyway, but that is the order it was written in.

    1. reduce: many values into one70 min · 2 exercises
  6. 6. Strings and text processing0/6 lessons · 5h · 9 exercises

    Take apart, clean up and rebuild text you did not write.

    Builds on Iteration and array transformation, you can start here anyway, but that is the order it was written in.

    1. Building text out of values45 min · 1 exercise
  7. 7. Errors, validation, and defensive code0/6 lessons · 5h · 9 exercises

    Decide what your code does when the input is wrong.

    Builds on Functions: naming and reusing behaviour and Strings and text processing, you can start here anyway, but that is the order it was written in.

    1. What an error actually is45 min · 1 exercise
    2. try, catch, finally55 min · 2 exercises
    3. Failing loudly, not silently45 min · 2 exercises
  8. 8. Asynchronous JavaScript0/6 lessons · 6h · 2 exercises

    Explain why some results arrive later, and write code that waits correctly.

    Builds on Functions: naming and reusing behaviour and Errors, validation, and defensive code, you can start here anyway, but that is the order it was written in.

    1. Callbacks, and why they exist65 min · 2 exercises
    2. Taught but not graded: the sandbox has no promise job draining, timers yet, and the lesson says so where it matters.

    3. Taught but not graded: the sandbox has no promise job draining yet, and the lesson says so where it matters.

    4. Taught but not graded: the sandbox has no promise job draining, top level await yet, and the lesson says so where it matters.

    5. Taught but not graded: the sandbox has no promise job draining, timers yet, and the lesson says so where it matters.

    6. Taught but not graded: the sandbox has no promise job draining, timers yet, and the lesson says so where it matters.

  9. 9. Modelling real data without a browser0/6 lessons · 6h · 7 exercises

    Choose a shape for real data and change it without breaking it.

    Builds on Structured data: arrays and objects and Iteration and array transformation and Strings and text processing, you can start here anyway, but that is the order it was written in.

    1. Choosing a shape for your data60 min · 1 exercise
    2. Project: modelling an invoice65 min · 2 exercises
  10. 10. Modules, packages, and the toolchain0/6 lessons · 5h · 2 exercises

    Read a real project's layout and understand what the tools do.

    Builds on Functions: naming and reusing behaviour and Modelling real data without a browser, you can start here anyway, but that is the order it was written in.

    1. What a module is55 min · 1 exercise
    2. Named and default exports55 min · 1 exercise
    3. Taught but not graded: the sandbox has no modules and host apis yet, and the lesson says so where it matters.

    4. Taught but not graded: the sandbox has no modules and host apis yet, and the lesson says so where it matters.

    5. Taught but not graded: the sandbox has no modules and host apis yet, and the lesson says so where it matters.

    6. Taught but not graded: the sandbox has no modules and host apis yet, and the lesson says so where it matters.

  11. 11. Testing and debugging0/6 lessons · 5h · 8 exercises

    Prove your code works and find out why when it does not.

    Builds on Errors, validation, and defensive code and Modules, packages, and the toolchain, you can start here anyway, but that is the order it was written in.

    1. What a test actually is55 min · 2 exercises
    2. Arrange, act, assert50 min · 1 exercise
    3. Edge cases and boundaries55 min · 2 exercises
    4. Debugging by bisection50 min · 2 exercises
    5. Taught but not graded: the sandbox has no modules and host apis yet, and the lesson says so where it matters.

  12. 12. Capstone: build a small library end to end0/6 lessons · 8h · 6 exercises

    Build, test and review a small library end to end against a brief.

    Builds on Iteration and array transformation and Strings and text processing and Errors, validation, and defensive code and Modelling real data without a browser and Modules, packages, and the toolchain and Testing and debugging, you can start here anyway, but that is the order it was written in.

What this course is not. It does not certify anyone and it does not teach the browser, React or Node. The sandbox your code runs in has no page, no network and no files, and pretending otherwise would be the failure this course exists to avoid. The test harness is tamper-evident, not tamper-proof: the real boundary is the sandbox, and a learner who defeats the harness only fools themselves.

Consent version 2026-08-21.1

Cookie preferences