Stay Practiced.
Local toolsSite guideSettings
Curriculum

JavaScript: beginner to production

Build from values and control flow through data structures, asynchronous ownership, browser boundaries, testing and production incident repair.

20 units · Free, Web, Plus, Pro · 20 programming subjects + 2 security tracks

Branches show this unit’s authored theory, coding and assessment work.

Select a node. Drag the background to pan.100%

Unit 1 / 20

Read an input, return a result, and test one decision

Run a small function, distinguish its returned value from printed output, and choose between two numeric inputs.

0 prerequisite skills · Reading, guided completion and independent success remain separate evidence.

Open this unit

The course, in order

Open a unit in the map to inspect its activities. Reading, guided completion, independent work and review remain distinct evidence.

  1. Read an input, return a result, and test one decision

    Run a small function, distinguish its returned value from printed output, and choose between two numeric inputs.

    Open this unit
  2. Visit each value, then count only a match

    Accumulate values in one loop, then transfer that loop to a counter with one equality condition.

    Open this unit
  3. Validate complete text, then change the accepted range

    Build a complete decimal parser and transfer its validation pipeline to a bounded retry setting.

    Open this unit
  4. Classify records once and preserve encounter order

    Keep the first record for each key, then classify a sequence into stable accepted and rejected groups.

    Open this unit
  5. Traverse a tree and make recursive summaries

    Combine each node with its child summaries, reading observable properties once and preserving caller data.

    Open this unit
  6. Separate own properties from inherited authority

    Traverse literal own-property paths and store arbitrary names without allowing prototype behavior to change the result.

    Open this unit
  7. Validate saved state before publishing a restored view

    Validate a saved task envelope and an exact configuration schema, preserving deliberate zero and false values and each boundary’s declared failure policy.

    Open this unit
  8. Parse escaped fields with explicit state

    Distinguish a delimiter from escaped data and reject an unfinished escape without losing empty fields.

    Open this unit
  9. Pull only the values a consumer requests

    Construct lazy iterable transformations and stop without over-consuming their source.

    Open this unit
  10. Maintain a binary heap after each change

    Restore the parent-child ordering invariant locally rather than sorting the whole queue after every operation.

    Open this unit
  11. Index prefixes without confusing traversal and ordering

    Insert and traverse trie edges by Unicode code point, then produce the contract’s code-unit ordering.

    Open this unit
  12. Keep local sequence boundaries and route costs explicit

    Group consecutive equal readings, then choose minimum-cost routes using tentative distances and relaxation.

    Open this unit
  13. Discover a route and reconstruct its evidence

    Separate neighbor admission, predecessor ownership and path reconstruction before combining them in unweighted search.

    Open this unit
  14. Decode complete binary frames without losing text

    Interpret declared byte lengths, reject incomplete or malformed frames, and preserve valid UTF-8 content exactly.

    Open this unit
  15. Bound in-flight work and inject retry waiting

    Claim jobs before awaiting, cap active operations, and retry only within an explicit attempt and cancellation policy.

    Open this unit
  16. Adapt callbacks and retain asynchronous publication ownership

    Bridge callback completion into promises, then prevent an obsolete search from publishing after a newer request.

    Open this unit
  17. Publish validated project state under reentrant requests

    Keep loading, ready and error transitions observable while preserving ownership through abort callbacks and detached snapshots.

    Open this unit
  18. Own queue links, snapshots and transferred buffers

    Maintain queue endpoint invariants and distinguish copying a container from transferring its backing resource.

    Open this unit
  19. Choose failure semantics for concurrent jobs

    Separate fail-fast aggregation from complete per-job evidence while preserving input order and bounded starts.

    Open this unit
  20. Keep subscription and edit ownership current through reentry

    Honor current subscription eligibility during event dispatch, then protect asynchronous draft publication with an edit revision.

    Open this unit
TheoryHands-on codingEvidence / reviewTechnical wikiMembership access