arthurrees.dev / Projects
Local --:--:--
Available
← Back to projects

Trainers

TAGS // JavaScript · Education · Vanilla Web · Self-Paced

A growing family of self-paced, browser-based trainers for technical fundamentals. Ten subjects shipped so far, each built on the same Learn → Play → Try rhythm.

Overview

Every time I picked up a new technical fundamental I noticed the same gap. Textbooks tell you the rules. Tutorials walk you through one happy path. Neither one gives you an environment to mess with the thing until intuition kicks in. So I started building small browser-based trainers for myself, each one focused on a single subject I wanted to internalize, and a pattern fell out of it.

Every trainer follows the same three-section rhythm on every level:

  1. Learn — a long-form lesson with formulas, worked examples, and callouts. No interactivity. Read at your own pace.
  2. Play — a goal-free sandbox. Click around, mess with sliders, observe. The point is to build intuition before any puzzle pressure shows up.
  3. Try — exactly three puzzles per level, easy then medium then hard, each with three progressive hints where the last one nearly gives the answer.

That rhythm is sacrosanct. The consistent shape is the pedagogy — it tells the learner what to expect and lets them self-pace without anxiety.

Each trainer is its own fully independent vanilla HTML/JS app. No bundler, no build step, no framework, no shared module. The shell is small and stable and forking it per trainer keeps each one free to evolve its own layout when the subject demands it.

The ten shipped trainers

  • Discrete Math — 11 levels. Propositional logic, sets, relations, functions, graphs, boolean algebra. Built as self-paced CSE 260 prep.
  • Networking — 13 levels, 39 puzzles. Orientation → IPv4 → subnetting → OSI layers → ARP → switches/routers → routing → TCP handshake → TCP/UDP → DNS → HTTP → TLS → NAT.
  • AI / ML / Deep Learning — 21 levels, 63 puzzles. Math foundations, classical ML, neural nets (including backprop by hand), architectures, modern LLMs (tokenization, attention, training, sampling, quantization, RAG, agents).
  • PC Hardware — 14 levels, 42 puzzles. CPU, memory, PCIe, storage, GPU, PSU, motherboard/chipset, cooling, displays, USB, networking, bottlenecks, diagnostics.
  • Ethical Hacking — 14 levels, 42 puzzles. Kill chain, CIA + STRIDE, recon, MITM, crypto pitfalls, auth, SQLi, XSS, broken access control, memory safety, RE, privesc, forensics, secure systems.
  • Operating Systems — 14 levels, 42 puzzles. Linux-focused. Processes, threads, scheduling, context switches, virtual memory, syscalls, sync primitives, deadlock, signals, IPC.
  • Programming Languages — 14 levels, 42 puzzles. End-to-end compiler pipeline plus interpreters, runtimes, and JITs.
  • Embedded Systems — 14 levels, 42 puzzles. RPi, ESP32, sensors, protocols, power, breadboards/PCBs — written for software devs crossing into hardware.
  • Database Systems — 14 levels, 42 puzzles. Schemas, joins, indexes, query planning, transactions, isolation, MVCC, normalization, windows, storage/WAL, replication.
  • Git — 14 levels, 42 puzzles. Object model, three trees, refs, DAG, merge, rebase, remote refs, reflog, bisect.

Tech Stack

  • Vanilla HTML, CSS, JavaScript
  • No build step, no bundler, no framework
  • Runs from file:// or any static host
  • Per-trainer topic library (e.g. DMT.lib.expr for logic, NT.lib.ip for networking, AIT.lib.mat for ML math)