Dinesh’sLearning Lab
← All learning paths

Learning path / 10 published lessons

The 6-Month Learning Plan · 130 Sessions and a Foundations Lab

A coherent 130-session, 16-module engineering curriculum with 26 revisions, a protected ten-lesson Foundations Lab and honest pacing and prerequisite boundaries.

What you’ll work toward

  • Choose an appropriate starting lesson
  • Distinguish checked behavior from unsupported guarantees
  • Produce a tested local-system capstone
Loading this browser’s progress…

Completion is stored on this device only. Nothing is locked; start where it makes sense.

Start this path

Before the first lesson

No prior subject knowledge is listed for the first lesson. Later lessons name their own prerequisites.

These are the starting lesson’s prerequisites, not requirements for every advanced topic below.

How to practise this subject

Attempt each lesson’s exercises before opening the explanation. Reconstruct its main example, change an assumption, and use the stated test boundaries to judge what you have actually checked.

  1. 01beginner · 14 min

    01 · Programs as contracts: values, state and tests

    Build a small event normalizer, expose aliasing, and distinguish a test from a proof. Python foundations without a catalogue of syntax.

  2. 02beginner · 13 min

    02 · Count work, then remember what matters

    Derive hash counting and prefix sums from repeated work, with brute-force oracles and honest complexity assumptions.

  3. 03intermediate · 14 min

    03 · Discarding possibilities: search and windows

    Prove which candidates can be discarded, derive lower bound, and see exactly why negative numbers break a common window.

  4. 04intermediate · 13 min

    04 · Unfinished work: stacks, queues and heaps

    Choose a removal policy, prove a next-greater stack, and maintain a bounded top-k heap without confusing partial order with sorting.

  5. 05intermediate · 16 min

    05 · Graphs: reachable is not ready

    Derive unweighted shortest paths and dependency ordering, with explicit edge direction, cycle rejection and bounded exhaustive tests.

  6. 06intermediate · 16 min

    06 · Dynamic programming: choose a sufficient state

    Derive take-or-skip recurrence, explain backward capacity updates, and distinguish exact amounts, capacity bounds and counting order.

  7. 07intermediate · 15 min

    07 · Relations, joins and all-or-nothing changes

    Build an in-memory SQLite notebook, preserve zero-event jobs in a join, and test rollback without confusing it with crash durability.

  8. 08intermediate · 13 min

    08 · Retries: a timeout is not a verdict

    Model a lost acknowledgement, define idempotent effects, and separate delivery, durable processing and response replay.

  9. 09intermediate · 12 min

    09 · Bounded work: queues, deadlines and ownership

    Reason about backlog growth, choose an overload policy and distinguish admission, completion and cancellation without running a server.

  10. 10intermediate · 19 min

    10 · Capstone: a trustworthy local job notebook

    Integrate validation, dependency checks, atomic event ingestion and retry tests. A runnable reference core and an evidence-based assessment rubric.