Skip to content

Basics → Practice → Mock Review

Frontend Interview Prep Roadmaps

Structured roadmaps plus bite-sized lessons. Track progress locally, resume the next topic fast, and keep momentum without a login.

Overall Progress

0/97

Completed lessons across all roadmaps.

Recommended Path

JS Core → TS Core → React → HTML/CSS

Follow this sequence to build fundamentals first, then sharpen framework-specific answers.

Next Action

Start your first roadmap

Next lesson: JavaScript Event Loop: Microtasks vs Macrotasks (Interview-Ready)

JavaScript Core

Start here

Closures, hoisting, this, prototypes, promises, async/await, event loop — the stuff interviews love.

Total time: 7h 44mRemaining: 25/25 • 7h 44mNext: JavaScript Event Loop: Microtasks vs Macrotasks (Interview-Ready)
Open
Progress: 0/250%
Checklist (25)

TypeScript Core

Types, generics, narrowing, inference, utility types — practical TypeScript for frontend roles.

Total time: 2h 20mRemaining: 30/30 • 2h 20mNext: TypeScript: types vs interfaces (When to Use Which)
Open
Progress: 0/300%
Checklist (30)
Structured Practice

7-Day JavaScript Interview Revision Plan

One high-yield concept and daily practice task from our reviewed core lessons.

Open JavaScript Core →
D1

Event Loop & Task Queues

Concept: Call stack, microtasks (Promises, queueMicrotask), and macrotasks (setTimeout).

Daily Task: Trace execution order for nested microtasks vs macrotasks and explain stack draining.

Start lesson
D2

Closures & Lexical Scope

Concept: Outer lexical environments, memory persistence, and private variables.

Daily Task: Write a counter factory with private state and explain why variables persist.

Start lesson
D3

this, call, apply & bind

Concept: Implicit vs explicit binding, arrow functions, and method borrowing.

Daily Task: Solve 3 binding puzzles and explain why arrow functions ignore bind.

Start lesson
D4

Hoisting & Temporal Dead Zone

Concept: Creation vs execution phase, var vs let/const, and TDZ mechanics.

Daily Task: Explain why accessing let before initialization throws a ReferenceError.

Start lesson
D5

Promises Deep Dive

Concept: Promise states, chaining, rejection handling, and allSettled vs all.

Daily Task: Write a custom retry utility around a failing promise-based fetch call.

Start lesson
D6

Async/Await & Concurrency

Concept: Sequential vs parallel execution and avoiding the waterfall trap.

Daily Task: Refactor a sequential loop into concurrent Promise.all execution.

Start lesson
D7

Debounce vs Throttle

Concept: Rate-limiting events, timers, cancel tokens, and trailing edges.

Daily Task: Implement debounce and throttle from scratch with immediate execution flag.

Start lesson