Zero to job
From no code to your first frontend job. Concepts are in study order: everything a concept needs comes before it.
1 Foundations 60 concepts
- FND.01.01How this site teaches: retrieval, spacing, worked examplesCoreBeginnerBeing written
- FND.01.02Setting up a study plan and computerCoreBeginnerBeing written
- FND.02.01Clients, servers and the internetCoreBeginnerBeing written
- FND.02.02URLs and domain names (DNS)CoreBeginnerBeing written
- FND.02.03HTTP: requests and responsesCoreBeginnerBeing written
- FND.02.04From URL to pixels (beginner version)CoreBeginnerBeing written
- FND.02.05Hosting and deploying a pageBeginnerBeing written
- FND.03.01What a shell is and first commandsCoreBeginnerBeing written
- FND.03.02Files, pipes and finding thingsBeginnerBeing written
- FND.03.03Environment, PATH and installing toolsCoreBeginnerBeing written
- FND.04.01What version control is; first commitsCoreBeginnerBeing written
- FND.04.02Branches and mergingCoreBeginnerBeing written
- FND.04.03GitHub: remotes, pull requests, reviewsCoreBeginnerBeing written
- FND.04.04Undoing things safelyJuniorBeing written
- FND.05.01Node.js: JavaScript outside the browserCoreBeginnerBeing written
- FND.05.02npm, package.json and dependenciesCoreBeginnerBeing written
- FND.05.03Dev servers, bundlers and build tools (first look)BeginnerBeing written
- FND.07.01Elements, attributes and document structureCoreBeginnerBeing written
- FND.06.01Elements and Styles panelsCoreBeginnerBeing written
- FND.09.01Values, types and variablesCoreBeginnerBeing written
- FND.09.02Operators and conditionsCoreBeginnerBeing written
- FND.09.03LoopsCoreBeginnerBeing written
- FND.06.02Console and Sources: debugging JavaScriptCoreBeginnerBeing written
- FND.06.03Network and Application panelsCoreBeginnerBeing written
- FND.06.04Lighthouse and Performance panel (first look)JuniorBeing written
- FND.07.02Text, links, images and listsCoreBeginnerBeing written
- FND.07.03Semantic HTML and landmarksCoreBeginnerBeing written
- FND.07.04Forms and inputsCoreBeginnerBeing written
- FND.07.05Tables and mediaBeginnerBeing written
- FND.08.01Selectors, properties and the cascade (beginner)CoreBeginnerBeing written
- FND.08.02The box model, units and coloursCoreBeginnerBeing written
- FND.08.03Display, positioning and flowCoreBeginnerBeing written
- FND.08.04FlexboxCoreBeginnerBeing written
- FND.08.05GridCoreBeginnerBeing written
- FND.08.06Responsive design basicsCoreBeginnerBeing written
- FND.09.04FunctionsCoreBeginnerBeing written
- FND.09.05ArraysCoreBeginnerBeing written
- FND.09.06Objects and JSONCoreBeginnerBeing written
- FND.09.07Strings and common methodsBeginnerBeing written
- FND.09.08Errors and debugging mindsetCoreBeginnerBeing written
- FND.10.01The DOM: selecting and changing elementsCoreBeginnerBeing written
- FND.10.02Events and listenersCoreBeginnerBeing written
- FND.10.03Callbacks and timersCoreBeginner8 min
- FND.10.04Promises and async/await (first look)CoreBeginnerBeing written
- FND.10.05fetch and JSON APIsCoreBeginnerBeing written
- FND.10.06Storing data in the browser (first look)CoreBeginnerBeing written
- FND.11.01Breaking problems downCoreBeginnerBeing written
- FND.11.02Debugging as a methodCoreBeginnerBeing written
- FND.12.01Why React; components and JSXCoreJuniorBeing written
- FND.12.02Props and state with useStateCoreJuniorBeing written
- FND.12.03Events and forms in ReactCoreJuniorBeing written
- FND.12.04useEffect and fetching dataCoreJuniorBeing written
- FND.12.05Routing with React RouterCoreJuniorBeing written
- FND.13.01Why types; basic annotationsCoreJuniorBeing written
- FND.13.02Object types, unions and narrowing (first look)CoreJuniorBeing written
- FND.13.03TypeScript with ReactCoreJuniorBeing written
- FND.14.01What junior frontend jobs ask forCoreJuniorBeing written
- FND.14.02Portfolio and GitHub profileCoreJuniorBeing written
- FND.14.03First resume and applyingCoreJuniorBeing written
- FND.14.04Junior interviews: what to expectCoreJuniorBeing written
2 JavaScript in depth 20 concepts
- JS.01.01Call stack and run-to-completionCoreJunior9 min
- JS.01.02Tasks (macrotasks) and the task queueCoreJunior9 min
- JS.01.03Microtasks: promises, queueMicrotask, MutationObserverCoreJunior10 min
- JS.02.01Lexical scope and the scope chainCoreJunior9 min
- JS.02.02Hoisting and the temporal dead zoneCoreJunior9 min
- JS.02.03Closures: functions that rememberCoreJunior10 min
- JS.02.05Strict mode and the global objectCoreJunior8 min
- JS.03.01The four rules of `this`CoreJunior10 min
- JS.03.02Arrow functions and lexical `this`CoreJunior9 min
- JS.04.01Objects, prototypes and the prototype chainCoreJunior9 min
- JS.04.02Constructor functions and `new`CoreJunior10 min
- JS.04.03ClassesCoreJunior11 min
- JS.05.01Primitive types and `typeof`CoreJunior8 min
- JS.06.03Shallow vs deep copyCoreJunior9 min
- JS.07.01Higher-order functions and compositionCoreJunior9 min
- JS.07.04Recursion and the stackCoreJunior10 min
- JS.08.01Destructuring, spread, rest and defaultsCoreJunior9 min
- JS.08.02Optional chaining, nullish coalescing, logical assignmentCoreJunior8 min
- JS.10.01ES modulesCoreJunior10 min
- JS.16.07Array/collection utilitiesCoreJuniorBeing written
3 TypeScript 10 concepts
- TS.01.01What the compiler does: types are erasedCoreJuniorBeing written
- TS.01.02tsconfig and the strict familyCoreJuniorBeing written
- TS.01.03any, unknown, never and voidCoreJuniorBeing written
- TS.02.01Unions, literals and narrowingCoreJuniorBeing written
- TS.03.01Typing functionsCoreJuniorBeing written
- TS.03.02Generics: the basicsCoreJuniorBeing written
- TS.04.01Interfaces vs type aliasesCoreJuniorBeing written
- TS.04.02Optional, readonly, index signatures and RecordCoreJuniorBeing written
- TS.06.01Built-in utility typesCoreJuniorBeing written
- TS.08.01Typing components and propsCoreJuniorBeing written
4 The web platform 5 concepts
- WEB.03.01Capture, target and bubble phasesCoreJuniorBeing written
- WEB.03.02Event delegation at scaleCoreJuniorBeing written
- WEB.05.02localStorage, sessionStorage and IndexedDBCoreJuniorBeing written
- WEB.10.03User preferencesCoreJuniorBeing written
- WEB.11.01Transitions, keyframes and performant propertiesCoreJuniorBeing written
5 Quality 6 concepts
- QLT.01.04Optimising CLSCoreJuniorBeing written
- QLT.02.01ImagesCoreJuniorBeing written
- QLT.03.01Why accessibility; WCAG structure and lawCoreJuniorBeing written
- QLT.03.03Keyboard access and focus managementCoreJuniorBeing written
- QLT.03.04Colour, contrast, text and motionCoreJuniorBeing written
- QLT.06.02Unit and component tests with Vitest and Testing LibraryCoreJuniorBeing written
6 Data structures & algorithms 14 concepts
- DSA.01.01What DSA interviews test and how to practiseCoreBeginnerBeing written
- DSA.01.02JavaScript for DSACoreBeginnerBeing written
- DSA.01.03Recursion for problem solvingCoreJuniorBeing written
- DSA.02.01Big-O, Big-Θ, Big-Ω in plain wordsCoreJuniorBeing written
- DSA.02.02Space complexity, recursion and amortised costCoreJuniorBeing written
- DSA.03.01Arrays and stringsCoreJuniorBeing written
- DSA.03.02Hash maps and setsCoreJuniorBeing written
- DSA.03.03Stacks, queues and dequesCoreJuniorBeing written
- DSA.03.04Linked listsCoreJuniorBeing written
- DSA.03.05Trees and binary search treesCoreJuniorBeing written
- DSA.04.01Elementary sorts and stabilityCoreJuniorBeing written
- DSA.04.03Sorting in JavaScriptCoreJuniorBeing written
- DSA.06.01Pattern 1: Two pointersCoreJuniorBeing written
- DSA.06.04Pattern 4: Hashing and countingCoreJuniorBeing written
7 Machine coding & LLD 4 concepts
8 Interviews & career 12 concepts
- CAR.01.01The frontend job market (India and global)CoreJuniorBeing written
- CAR.01.02Levels from junior to staffCoreJuniorBeing written
- CAR.01.03Compensation basicsCoreJuniorBeing written
- CAR.02.01Resume that passes screensCoreJuniorBeing written
- CAR.02.02LinkedIn and public presenceCoreJuniorBeing written
- CAR.03.01Referrals and outreachCoreJuniorBeing written
- CAR.03.02Working with recruiters and managing a pipelineCoreJuniorBeing written
- CAR.03.03Moving from a service company to a product companyCoreJuniorBeing written
- CAR.05.01STAR and its variantsCoreJuniorBeing written
- CAR.05.02Building a story bankCoreJuniorBeing written
- CAR.12.01Clear spoken English for technical interviewsCoreJuniorBeing written
- CAR.12.02Technical vocabulary and explaining conceptsCoreJuniorBeing written