One week
345 minutes across 23 steps. Seven focused sessions across UI, State and Server — enough to hold your own in a frontend interview loop, assuming you already write JavaScript for a living.
-
ui/atom
Start where every component starts.
-
Where does an atom stop?
Four minutes that decide where half your components belong.
- ui/props
- Validating Prop Usage
- Setting Default Values for Props
-
Presentational vs container components
The oldest split in the vocabulary, still the most useful.
- ui/events
- Handling DOM Events
-
Build a loading Button atom
Your first component from scratch, in two frameworks.
- ui/skeleton
-
Replace a spinner with a skeleton
The layout-shift bug every list has until someone fixes it.
- state/store
- state/actions
- Implement Redux-style action creators
- state/reducer
-
Implement a Redux-style reducer with immutability
Immutability, with the tests that prove it.
- state/selectors
- Selector Memoization Basics
-
Memoize a derived selector
Build the memoizer, then watch the recomputation count.
- server/ssr
-
Pick a rendering strategy
Four briefs, four rendering decisions.
- server/protocol
-
Design the caching layer for a static app
The design round in twenty minutes.
This plan assumes you already write JavaScript for a living and have shipped a component or two. What it adds is vocabulary and placement: where a value belongs, where a boundary goes, and which decision the other decisions hang on.
Seven sessions of roughly an hour. Read the concept page first, then do the question that follows it — the order is deliberate, because each question is only worth doing once you have the words for what it is asking.
The one thing not to skip is the workspace. Reading about memoisation and watching a recomputation counter go from six to one are different experiences, and only the second one survives an interview.