Novus Stream Solutions
All tutorials

Novus Learn

X-ray a codebase and learn to code in Novus Learn

The /code surface analyses a JavaScript codebase and the /languages paths cite official documentation — with a scratchpad at /playground for running what you are reading.

Learning a codebase and learning a language are different problems that get solved with the same tab. You need the shape of the project — what calls what, where the boundaries are — and you need the language semantics underneath it, and neither is much use without the other.

Novus Learn covers both with the same sourcing rule it applies everywhere else. The /code surface x-rays a JavaScript codebase, the /languages paths teach from official documentation rather than improvised explanation, and /playground lets you run the thing you just read.

Contents
  1. 1.1. X-ray the project structure
  2. 2.2. Find the entry points and the boundaries
  3. 3.3. Follow the language questions to /languages
  4. 4.4. Run it in the scratchpad
  5. 5.5. Turn what you learned into revision
  6. 6.6. Know what it does not do

Two ways to finish

Understand a project

Map an unfamiliar JavaScript codebase before you change it.

Learn the language

Follow coding paths that cite the official documentation.

  1. 1

    1. X-ray the project structure

    Open /code and point it at a JavaScript codebase. What you get back is structural: how the project is organised, what depends on what, and where the meaningful boundaries sit. This is the map you would otherwise build by reading entry points and following imports for an afternoon.

    Read it as orientation rather than as ground truth about behaviour. Structure tells you where to look; it does not tell you what a function does under load, and no static view of a codebase ever will.

  2. 2

    2. Find the entry points and the boundaries

    The two most useful things in any unfamiliar project are where execution starts and where the project stops being itself. Entry points tell you the order things happen in; boundaries — the module edges, the interfaces to external systems — tell you where a change is safe and where it is going to ripple.

    Prioritise those over reading files top to bottom. A codebase is a graph, and reading it alphabetically is a choice that makes the graph invisible.

    • Entry points give you execution order.
    • Module boundaries tell you where a change stays contained.
    • Reading files alphabetically hides the structure you came for.
  3. 3

    3. Follow the language questions to /languages

    When the code uses something you do not know, the coding paths at /languages are where to go. They cite official language documentation, which matters more here than in most subjects: JavaScript accumulates confidently-wrong folklore faster than almost any other language, and a lot of what circulates as explanation is years out of date.

    The same extractive rule applies. A path shows you what the documentation says, not a rewritten version of it, so the semantics you learn are the specified ones rather than someone's recollection of them.

  4. 4

    4. Run it in the scratchpad

    Reading about a language feature and using it are different kinds of knowing. The JavaScript scratchpad at /playground closes that gap — write the snippet, run it, and find out whether your mental model survives contact with the interpreter.

    This is especially worth doing for the parts of JavaScript that behave counter-intuitively: coercion, scoping, asynchronous ordering, and anything involving `this`. Five minutes in a scratchpad settles arguments that documentation alone tends to leave open.

  5. 5

    5. Turn what you learned into revision

    A code project produces the same study artifacts as any other source: notes, flashcards, a quiz, a concept map. For a codebase the concept map is usually the keeper — it is the structural view in a form you can come back to when you have forgotten which module owns what.

    For the language material, flashcards genuinely help. API surfaces and semantics are recall problems, and recall problems are what cards are for.

  6. 6

    6. Know what it does not do

    The /code surface analyses JavaScript. It is not a general-purpose static analyser, not a linter, and not a security scanner, and it will not tell you whether the code is correct — only how it is arranged and what the language underneath it specifies.

    That boundary is worth respecting. Use it for orientation and for learning, then use the actual tooling — tests, types, profilers, review — for the questions those tools exist to answer.

Structure first, semantics second, scratchpad third

X-ray the project for entry points and boundaries before reading files. Send language questions to /languages, where the answers cite official documentation instead of folklore. Settle anything counter-intuitive in the /playground scratchpad. Keep the concept map — it is the part you will want again in three months.

Frequently asked questions

Quick answers to common questions about this topic.

Which languages can Novus Learn x-ray?

The /code surface analyses JavaScript codebases. The /languages coding paths cover language learning more broadly, citing official documentation rather than paraphrasing it.

Is this a linter or a security scanner?

No. It is an orientation and learning tool. It shows how a project is arranged and what the language specifies; it does not judge whether the code is correct or safe. Use tests, types, and review for that.

What is the scratchpad for?

The JavaScript scratchpad at /playground runs code in the browser so you can test a mental model immediately — particularly useful for coercion, scoping, asynchronous ordering, and anything involving `this`.

Does my code get uploaded?

No. Novus Learn is local-first and accountless — analysis happens in your browser and the resulting project is stored in versioned IndexedDB snapshots on your device.