2-Month JavaScript Core Language Roadmap
Master JavaScript Day-by-Day: From Variables to Async & Modules
📖 Introduction to JavaScript Core Language
What is JavaScript? JavaScript is the world’s most popular programming language, powering dynamic, interactive behavior on over 98% of websites. As a high-level, just-in-time compiled, multi-paradigm language, it supports object-oriented, imperative, and functional programming styles.
Why Learn JavaScript? JavaScript is essential for front-end web development and increasingly dominant in back-end (Node.js), mobile (React Native), and even desktop apps (Electron). Mastery of the core language — variables, functions, closures, promises, and modules — forms the bedrock for any modern web developer’s career .
Who is this roadmap for? This roadmap is ideal for absolute beginners with basic computer literacy or intermediate learners seeking to solidify foundational understanding. No prior coding experience is required — only curiosity and consistency.
What will you learn? By the end of this 2-month journey, you will:
- Understand and apply core syntax, data types, operators, conditionals, and loops
- Write robust functions, grasp scope, and master closures and higher-order functions
- Manipulate the DOM to create interactive web pages without frameworks
- Handle asynchronous code using callbacks, promises, async/await
- Organize code using ES6+ modules (import/export)
- Apply modern best practices for clean, performant, maintainable code
Prerequisites: None — beginner friendly! A modern browser (Chrome/Firefox) and a code editor (VS Code recommended) are all you need.
📊 Your Learning Progress
📚 Month 1: JavaScript Fundamentals & Core Mechanisms
Week 1: Syntax, Data Types, Operators & Control Flow
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 1 |
Introduction & Setup
|
Install VS Code, open Chrome DevTools (F12), and execute 5 console.log statements. Experiment with variables, numbers, and strings. Spend 60 minutes exploring.
|
| Day 2 |
Variables & Data Types
|
Declare variables of each type. Test typeof and observe coercion (e.g., “5” + 3). Write a script that swaps two variables. Practice for 45 mins.
|
| Day 3 |
Operators & Expressions
|
Build a mini calculator: prompt user for two numbers & operation, output result. Test truthy/falsy values. Focus on strict equality (===). 50 mins.
|
| Day 4 |
Control Flow: Conditionals
|
Write a grade calculator (A-F based on %) using if/else and switch. Simulate user login (truthy username/password). Time: 50 mins.
|
| Day 5 |
Control Flow: Loops
|
Print multiplication table (1-10). Find first 10 prime numbers. Convert a for loop to while. Practice for 60 mins.
|
| Day 6 |
Functions: Basics & Declarations
|
Create functions: area of circle, max of 3 numbers, greet user (with default name). Call functions 10+ ways. 55 mins.
|
| Day 7 |
Week 1 Review & Project
|
Build a BMI calculator: input weight/height, compute BMI, classify (underweight/normal/overweight). Add validation. Share on GitHub. 90 mins.
|
Week 2: Arrays, Objects & Functional Basics
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 8 |
Arrays: Creation & Basic Methods
|
Create shopping list array. Add/remove items. Extract sublists. Check if item exists. Reverse & join into string. 50 mins.
|
| Day 9 |
Iterative Array Methods
|
Transform arrays: double numbers (map), extract odds (filter), sum (reduce), log each (forEach). Avoid for loops! 55 mins.
|
| Day 10 |
Objects: Literals & Properties
|
Model a user profile (name, age, hobbies). Dynamically add properties. Iterate over keys/values. Clone object via spread. 50 mins.
|
| Day 11 |
Object Methods & this Keyword
|
Create a calculator object with add/sub/mult/div methods. Build a pet object with speak() method. Experiment with this. 60 mins.
|
| Day 12 |
Nested Objects & Arrays
|
Model a library system (books array, each book has author object). Safely access nested props. Convert to/from JSON. 55 mins.
|
| Day 13 |
Scope & Hoisting
|
Predict outputs of 10+ hoisting/scope snippets. Identify shadowing. Use DevTools to inspect scope. Write TDZ-safe code. 60 mins.
|
| Day 14 |
Week 2 Review & Project
|
Build a console-based to-do list using arrays/objects. Store tasks in localStorage. Implement add/delete/mark. Share on GitHub. 120 mins.
|
Week 3: Functions Deep Dive, Closures & DOM Intro
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 15 |
Function Expressions & Arrow Functions
|
Refactor week 2 methods to arrow functions. Compare this in callbacks. Write 5 arrow utility functions. 50 mins.
|
| Day 16 |
Closures
|
Build a counter with private state. Create a config factory. Debug memory leaks. Visualize scope chains. 60 mins .
|
| Day 17 |
Higher-Order Functions
|
Implement custom map/filter. Create a logger HOF. Compose validation functions. Explore Ramda.js currying. 65 mins.
|
| Day 18 |
Introduction to DOM
|
Create HTML page with headings/paragraphs. Select elements, change text/content. Build a dynamic quote generator. 55 mins .
|
| Day 19 |
DOM Manipulation: Attributes & Styles
|
Create theme switcher (light/dark). Toggle CSS classes on click. Dynamically set image alt/title. Avoid style.cssText. 50 mins.
|
| Day 20 |
DOM Events: Basics
|
Build button counter, color palette picker, form validator. Practice preventDefault on form submit. 60 mins .
|
| Day 21 |
Week 3 Review & Project
|
Build a 5-question quiz. Show score, correct answers. Use closures for question state. Style with CSS. Deploy on GitHub Pages. 150 mins.
|
Week 4: Modern JS, Async Basics & Project Week
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 22 |
ES6+ Destructuring
|
Destructure user objects, config arrays. Use in function parameters. Swap variables without temp. 45 mins .
|
| Day 23 |
Template Literals & Spread/Rest
|
Generate HTML templates dynamically. Merge objects with spread. Create sum(…nums). Avoid concat/apply. 50 mins .
|
| Day 24 |
Callbacks & Callback Hell
|
Simulate async tasks (file read, API mock). Create nested callbacks. Refactor to flatten. Visualize call stack. 55 mins.
|
| Day 25 |
Promises
|
Wrap setTimeout in promise. Chain API requests. Handle errors with catch. Race multiple promises. 60 mins .
|
| Day 26 |
Async/Await
|
Convert promise chains to async/await. Fetch mock data. Handle errors gracefully. Compare performance visually. 65 mins .
|
| Day 27 |
Error Handling: try/catch/finally
|
Validate user input with custom errors. Safely parse JSON. Log errors to console. Implement global handler. 50 mins .
|
| Day 28 |
Month 1 Capstone Project
|
Build full weather app using mock JSON. Implement search, caching, error states. Deploy on GitHub Pages. Record demo video. 240 mins .
|
📚 Month 2: Advanced Core, Modules & Professional Practices
Week 5: Modules, Tooling & Testing Basics
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 29 |
ES6 Modules: import/export
|
Split quiz app into modules (questions, ui, logic). Use default and named exports. Test in browser with type=”module”. 60 mins .
|
| Day 30 |
npm & Package Management
|
Initialize npm project. Install 2 utility libs. Use in script. Explore node_modules. Commit package*.json. 45 mins.
|
| Day 31 |
Bundlers: Vite Introduction
|
Scaffold Vite project. Convert weather app to Vite. Experience HMR. Explore vite.config.js basics. 70 mins.
|
| Day 32 |
Testing: Jest Basics
|
Write tests for calculator functions. Achieve 80% coverage. Refactor code using tests. Run in watch mode. 60 mins.
|
| Day 33 |
Linting & Formatting
|
Configure ESLint/Prettier in Vite project. Fix lint errors. Set up auto-format on save. Enforce consistent style. 45 mins .
|
| Day 34 |
Debugging Mastery
|
Debug quiz app bugs. Profile load time. Optimize slow loops. Use memory snapshots. Master conditional breakpoints. 75 mins.
|
| Day 35 |
Week 5 Review & Project
|
Modernize weather app: modularize, test, lint, document. Achieve 90% test coverage. Add GitHub Actions CI. 180 mins.
|
Week 6: Advanced Patterns & Performance
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 36 |
Prototypes & OOP
|
Build Animal -> Dog hierarchy. Compare class vs prototype syntax. Inspect __proto__ in console. Avoid anti-patterns. 60 mins.
|
| Day 37 |
Iterators & Generators
|
Create custom iterable (range). Build infinite sequence generator. Simulate async streams. Compare memory usage. 65 mins.
|
| Day 38 |
Proxies & Reflect
|
Create validator proxy (e.g., positive numbers only). Log all property accesses. Compare with getters/setters. 50 mins.
|
| Day 39 |
Memory Management
|
Simulate memory leak (forgotten interval). Fix with weak references. Profile heap snapshots. Analyze retainers. 60 mins .
|
| Day 40 |
Performance Optimization
|
Optimize search input (debounce). Offload computation to Web Worker. Measure FPS with requestAnimationFrame. 75 mins .
|
| Day 41 |
Functional Programming Principles
|
Refactor weather logic to pure functions. Implement compose/pipe. Avoid mutations with spread. 60 mins .
|
| Day 42 |
Week 6 Review & Project
|
Create dashboard with 10k+ rows. Implement virtual scroll, search, sort. Optimize rendering & memory. Deploy & benchmark. 240 mins.
|
Week 7: Browser APIs & Real-World Patterns
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 43 |
Fetch API & HTTP
|
Fetch real API (JSONPlaceholder). Handle loading/error states. Cancel pending requests. Add retries. 55 mins.
|
| Day 44 |
Web Storage: localStorage & sessionStorage
|
Persist user preferences. Sync tabs with storage event. Build offline-capable note app. Handle quota errors. 50 mins .
|
| Day 45 |
IndexedDB (Light Intro)
|
Store quiz results in IndexedDB. Compare performance with localStorage. Use idb library for simplicity. 65 mins.
|
| Day 46 |
Geolocation & Device APIs
|
Build location-aware weather app. Handle permission denials. Create tilt-controlled game. 60 mins.
|
| Day 47 |
Canvas API Basics
|
Draw interactive shapes. Animate bouncing ball. Create simple data visualization. Avoid setInterval for animation. 75 mins.
|
| Day 48 |
Web Components Intro
|
Create
|
| Day 49 |
Week 7 Review & Project
|
Build note app that works offline. Save to IndexedDB. Sync on reconnect. Use custom elements for UI. Test thoroughly. 240 mins.
|
Week 8: Best Practices, Capstone & Next Steps
| Day | Topic & Subtopics | Key Activities & Resources |
|---|---|---|
| Day 50 |
Code Quality & Clean JS
|
Refactor legacy code snippet. Apply clean code rules. Document decisions. Conduct peer review simulation. 60 mins .
|
| Day 51 |
Security Fundamentals
|
Sanitize user inputs. Configure CSP header. Test XSS vulnerabilities. Review OWASP JS Top 10. 55 mins .
|
| Day 52 |
TypeScript Intro (Optional but Recommended)
|
Convert weather app to TS. Add types to functions. Fix compile errors. Experience dev-time safety. 70 mins.
|
| Day 53 |
Build Tools Deep Dive
|
Optimize Vite build. Analyze bundle with rollup-plugin-visualizer. Implement route-based code splitting. 65 mins.
|
| Day 54 |
Community & Open Source
|
Fix a “good first issue”. Write clear PR description. Publish a tiny utility package. Update GitHub profile. 60 mins.
|
| Day 55 |
Interview Prep: Core JS Questions
|
Solve 20+ core JS interview questions. Explain concepts aloud. Record mock interview. Review mistakes. 90 mins.
|
| Day 56 |
Capstone Project Kickoff
|
Choose project: E-commerce cart, Kanban board, or Chat app. Define MVP. Sketch UI. Plan modules. Write README draft. 120 mins.
|
| Day 57 |
Capstone: Core Implementation
|
Build foundational components. Achieve 70% test coverage. Integrate with basic HTML/CSS. Commit frequently. 240 mins.
|
| Day 58 |
Capstone: Advanced Features
|
Add loading states, error handling. Implement undo/redo. Ensure WCAG compliance. Test on mobile. 240 mins.
|
| Day 59 |
Capstone: Polish & Deploy
|
Optimize bundle, Lighthouse score >90. Write detailed README. Deploy live URL. Record demo video. 240 mins.
|
| Day 60 |
Graduation & Next Steps
|
Reflect on progress. Share capstone on social media. Join Discord/Reddit communities. Plan next topic (React, Node, etc.). 60 mins.
|
