Roadmap
JavaScript fundamentals
- Closures, scope, hoisting, `this` binding
- Prototypal inheritance, constructor functions
- Event loop, call stack
-
Implement polyfills for `map`, `filter`, `reduce`, `bind`, `call`,
`apply`
Forms & Validation
- Conctrolled vs uncontrolled components
- Form validation patterns, custom validation
- File uploads, multi-step forms
- Build a complex form system with nested validation
Mastering Async
- Promises, async/await, error handling patterns
- Promise combinator methods (`all`, `race`, `allSettled`, `any`)
- Implement Promise from scratch
- Debouncing, throttling, req cancellation
-
Build async utilities (queue systemns, rate limiters, retry logic)
DOM, Lodash & Practical JS
- Event delegation, bubbling, capturing
- Virtual DOM concepts (diffing, reconciliation)
-
Implement lodash functions: `debounce`, `throttle`, `deepClone`,
`get`, `set`, `chunk`, `groupBy`, `flatten`
React
- `useState`, `useEffect`, `useReducer`... understanding
- Custom hook patterns
- Build some custom hooks from scratch
State Management & Architecture
- Context API patterns & limitations
- Redux fundamentals
System Design & Algorithms (frontend)
- Components design patterns
- Infinite scroll, autocomplete...
- Performance optimisation (lazy loading)
Data Structures & Algorithms (Python)
-
Solve LC daily (trees, graphs, bfs, dfs, stacks, queues, tries, DP...)
This roadmap isn't designed to be comprehensive, but rather a rough idea of
what I want to achieve over a 60 day period. Expect changes every now and
then.