πΊοΈ
The Full Plan
~10 weeks from JS to shipping the ASL project
π―
Goal: Go from learning JavaScript at uni to shipping a real ASL sign language recognition app with React, TensorFlow.js, MediaPipe, and a live AI API. Everything on this roadmap feeds directly into that project.
Learning Timeline
β‘JavaScript
Weeks 1β4 Β· Foundation
Core language, DOM, async/await, ES6+. Everything else depends on this.
πΏGit & GitHub
Weeks 2β3 Β· Parallel
Version control and collaboration for the ASL project. Portfolio-ready repos.
Package management. 3β4 days. You'll pick most of it up by using it in React.
βοΈReact
Weeks 5β6 Β· Main focus
Components, hooks, state. Start the ASL project scaffold by end of week 5.
π€AI Tools
Weeks 5β8 Β· Ongoing
Copilot, Claude, prompting techniques, and Anthropic API in the ASL project.
π¨Tailwind CSS
Weeks 7β8 Β· After React
Utility-first styling for React. Deliberately delayed β learn React structure first.
π Full Frontend Roadmap Reference
roadmap.sh is the definitive community-maintained guide. The skills below are what it marks as essential for an intermediate frontend developer β and exactly what this checklist covers.
Open roadmap.sh/frontend β
CSS Frameworks / Tailwind
β‘
JavaScript
Weeks 1β4 Β· The foundation of everything
π‘
You're already learning this at uni. Use these weeks to go deeper than the lectures β async and ES6+ are what separates beginners from developers who can use React confidently.
Week 1Core Language Fundamentals
Variables, types, control flow, functions, scope
0/0βΌ
β
Variables β var, let, const
Scope differences, when to use each, temporal dead zone
core
β
Data Types
Strings, numbers, booleans, null, undefined β and typeof
core
β
Operators & Expressions
Arithmetic, == vs ===, logical (&&, ||, ??), ternary operator
core
β
Control Flow
if/else, switch, for, while, do...while, break/continue
core
β
Functions β declarations, expressions, arrow functions
Named functions, anonymous, hoisting, arrow syntax and 'this' differences
key
β
Scope & Closures
Global vs local, lexical scope, closure β why this matters in React hooks
key
Week 2Arrays, Objects & Modern ES6+
Data structures and syntax you'll use daily in React
0/0βΌ
β
Arrays β core methods
push/pop, map, filter, reduce, find, forEach, some, every
key
β
Objects β creation & access
Key-value pairs, dot vs bracket notation, nested objects
core
β
Destructuring
Array and object destructuring β used constantly in React
key
β
Spread & Rest Operators
...spread to clone/merge arrays and objects, rest params in functions
key
β
Template Literals
Backtick strings, multi-line, ${} interpolation
core
β
Optional chaining & nullish coalescing
obj?.property to avoid crashes, ?? for defaults
key
β
Modules β import / export
Named exports, default exports, import syntax across files
core
Week 3Async JavaScript & the DOM
Fetch, Promises, async/await, DOM manipulation & events
0/0βΌ
β
The Event Loop
How JS runs code, why it's single-threaded, how async fits in
key
β
Promises & .then()/.catch()
Creating, chaining, catching errors
key
β
async / await
Cleaner async syntax β you'll use this constantly for API calls
key
β
try / catch / finally
Handling errors in async code, logging, user feedback
core
β
Fetch API
GET/POST requests, parsing JSON responses, handling errors
key
β
DOM Manipulation
querySelector, createElement, classList, innerHTML, dataset
core
β
Event Listeners
addEventListener, event object, bubbling, event delegation
core
Week 4Consolidation & Project
Build something real before moving to React + npm
0/0βΌ
β
OOP basics β classes & this
Class syntax, constructor, methods, basic inheritance
core
β
JSON β parse and stringify
Working with API data, config files, localStorage
core
β
Browser DevTools
Console, Sources debugger, Network tab, Elements inspector
key
β
ποΈ Build a vanilla JS project
Quiz app, weather widget using a free API, or memory game
project
β
Push project to GitHub with a README
First real portfolio piece. Screenshot it, write a proper description.
project
πΏ
Git & GitHub
Weeks 2β3 Β· Learn in parallel with JavaScript
β‘
Start in Week 2 of JS, not after. Git takes 2β3 days to get comfortable and you'll need it before the React + ASL project with your collaborator. Merge conflicts are inevitable β better to learn now.
Week 2Git Fundamentals
Local version control β tracking, branching, merging
0/0βΌ
β
What is version control & why Git
Tracking file history, avoiding "final_v3_REAL.zip" disasters
core
β
git init & git clone
Initialising a local repo vs cloning a remote one
core
β
git add, commit, status, log
The daily workflow. Write meaningful commit messages.
key
β
.gitignore
Exclude node_modules, .env files, OS files from commits
core
β
Branches β create, switch, delete
git branch, git checkout -b, git switch
key
β
git merge & resolving conflicts
Merging feature branches, reading conflict markers, choosing correct code
key
β
git stash
Temporarily shelving unfinished work
core
Week 3GitHub & Collaboration
Remote repos, pull requests, portfolio setup
0/0βΌ
β
Push local project to GitHub
git remote add origin, git push -u origin main
core
β
Pull Requests (PRs)
Open, review, and merge PRs β critical for the ASL project collaboration
key
β
git pull & fetch
Syncing with remote, understanding the difference between the two
core
β
GitHub Issues & Project Board
Track tasks and bugs for the ASL project collaboratively
core
β
Write a proper README.md
Project title, description, install steps, tech stack, screenshots
key
β
GitHub Pages β deploy a static site
Free hosting. Live demos on your CV make a huge difference to recruiters.
project
β
Pin 3 best repos on your GitHub profile
Recruiters look at this. Curate it intentionally.
project
π¦
npm
Week 4 Β· 3β4 days, learn by doing
π¦
npm is a quick win. You don't really "study" it in isolation β you learn it by setting up your first Vite + React project. These topics take 3β4 days and you'll keep reinforcing them throughout React and the ASL project.
Week 4npm Essentials
Everything you need to manage packages in your projects
0/0βΌ
β
What npm is and why it exists
Package registry, managing dependencies, vs loading from CDN
core
β
npm init & package.json
Fields: name, version, scripts, dependencies, devDependencies
core
β
npm install
Installing packages, --save-dev flag, what node_modules actually is
key
β
npm scripts
npm start, npm run dev, npm run build β custom task shortcuts
key
β
package-lock.json
Locks exact versions β always commit this to git
core
β
dependencies vs devDependencies
Runtime packages vs dev-only tools like linters and test runners
core
β
ποΈ Scaffold a Vite + React project
npm create vite@latest β your first real npm workflow in practice
project
βοΈ
React
Weeks 5β6 Β· The main event
βοΈ
Two weeks is the right call. Week 5 = core concepts + a small practice app. Week 6 = intermediate hooks + scaffold the actual ASL project. Don't wait until you feel "ready" β learning inside a real project is how React sticks.
Week 5Core React Concepts
Components, JSX, props, state β the mental model shift
0/0βΌ
β
What React is & the component model
Virtual DOM, declarative UI, why it exists over vanilla JS
core
β
Vite + React project setup
npm create vite@latest, file structure, running dev server
core
β
JSX syntax
HTML-in-JS, className not class, curly braces, self-closing tags
core
β
Functional Components
Writing and composing reusable UI components
core
β
Props
Passing data into components, default props, children prop
key
β
useState Hook
Local state, setter function, how re-renders work
key
β
Events in React
onClick, onChange, onSubmit β React synthetic event system
core
β
Conditional Rendering
&&, ternary, show/hide components based on state
core
β
Rendering Lists with .map() & keys
Why keys matter, rendering arrays of components
core
β
ποΈ Build: small React practice app
Counter, colour picker, or todo β something with state. Deploy to GitHub Pages.
project
Week 6Intermediate Hooks + Start ASL Project
useEffect, useRef, data fetching β then scaffold the real project
0/0βΌ
β
useEffect Hook
Side effects, dependency array, cleanup function β understand this deeply
key
β
useRef Hook
Direct DOM access β essential for webcam + TensorFlow.js in the ASL project
key
β
Fetching data in React
useEffect + fetch, loading/error states, displaying async data
key
β
Lifting State Up
Sharing state between sibling components via a parent
core
β
Forms in React (controlled inputs)
Controlled vs uncontrolled, form state, handling submission
core
β
React Router basics
BrowserRouter, Route, Link β multiple pages in one app
core
β
π Scaffold the ASL project in React
Create the repo, set up Vite, plan component structure with your partner
project
π€
AI Tools & Integration
Weeks 5β8 Β· Ongoing alongside React and the ASL project
π€
This is on the roadmap.sh frontend path now. Being able to discuss how you used AI tools critically during the ASL project β not just blindly copy-pasting β is a real differentiator in 2026 interviews. Interviewers want to know you can use it and evaluate it.
Week 5AI-Assisted Coding
Copilot, Claude, and Cursor β using them effectively while learning
0/0βΌ
β
How LLMs work (basic mental model)
Token prediction, not "thinking" β why it hallucinates, why context matters
core
β
AI vs Traditional Coding
What AI speeds up (boilerplate, syntax) vs what it can't replace (architecture decisions)
core
β
GitHub Copilot in VS Code
Tab completion, inline suggestions, chat panel β set it up, learn the shortcuts
ai tool
β
Using Claude for code review
Paste your code, ask "what's wrong with this?" β learn from the explanation
ai tool
β
When NOT to trust AI output
Spot hallucinated APIs, outdated syntax, wrong logic. Always verify output yourself.
key
Weeks 6β7Prompting Techniques
Getting consistently useful output from AI assistants
0/0βΌ
β
Role prompting
"Act as a senior React developer reviewing my code" β sets context, improves quality
prompting
β
Prompting for debugging
"Here's my error + full code. What's the likely cause?" β structured bug reports
key
β
Chain-of-thought prompting
"Think step by step before answering" β better for complex architectural questions
prompting
β
Iterating on AI output
"That's close but change X" β treat it like a conversation, not a search engine
key
β
Using AI for code review & refactoring
Ask for a code review, ask "how would a senior dev improve this?"
ai tool
β
Using AI for docs generation
Get Claude to write JSDoc comments and README sections for your projects
ai tool
Week 8Implementing AI in the ASL Project
Integrating the Anthropic API to add real AI features
0/0βΌ
β
Anthropic API basics
Get an API key, understand the /v1/messages endpoint, read the docs
ai tool
β
Call the API from a React app
fetch() to Anthropic endpoint, parse response, display result in UI
key
β
Feature: ASL sentence builder
Detected signs β API β returns a natural language sentence. Strong portfolio feature.
project
β
Feature: signing feedback assistant
Confidence scores β API β "Your B looks like P, try adjusting your thumb position"
project
β
Document your AI usage for interviews
Note: what tools you used, how you caught mistakes, what you decided not to use it for
key
π¨
Tailwind CSS
Weeks 7β8 Β· After you're comfortable with React
β±οΈ
Deliberately delayed to Week 7. Learning Tailwind before you understand React component structure creates confusion about what's React and what's CSS. Two weeks into React this will click immediately β and you'll style the ASL project UI fast.
Week 7Tailwind Fundamentals
Utility-first CSS β layout, spacing, typography, colour
0/0βΌ
β
What utility-first CSS means
Why Tailwind vs writing BEM/module CSS β and when each makes sense
core
β
Install Tailwind in Vite + React
npm install, tailwind.config.js, @tailwind directives in CSS entry file
core
β
Layout β flex & grid utilities
flex, grid, gap, justify-, items-, col-span β replaces most layout CSS
key
β
Spacing, sizing & borders
p-, m-, w-, h-, rounded-, border- utility classes
core
β
Typography & colour
text-lg, font-bold, text-gray-500, bg-blue-600 β the full Tailwind palette
core
β
Responsive breakpoints
sm:, md:, lg:, xl: prefixes β mobile-first by default
key
Week 8Intermediate Tailwind + Apply to ASL
State variants, dark mode, and styling your real components
0/0βΌ
β
Hover, focus & active state variants
hover:bg-blue-700, focus:ring, active:scale-95 etc
core
β
Dark mode
dark: prefix, class-based toggle in React
core
β
Custom values in tailwind.config
Extending the theme with custom colours, fonts, spacing tokens
core
β
Tailwind + React patterns
className conditionals with template literals or the clsx library
key
β
π¨ Restyle the ASL project UI with Tailwind
Replace all inline/module CSS with Tailwind classes. Big quality jump.
project