Week 1: JavaScript Basics
Day 1: Introduction
• What is JavaScript? Its purpose and use cases beyond the web.
• Setting up the environment (Node.js, REPL).
• Writing and running JavaScript programs (CLI).
Day 2: Variables and Data Types
• Declaring variables: var, let, and const.
• Primitive Data Types: String, Number, Boolean, Null, Undefined, Symbol, and BigInt.
• Type conversion (implicit and explicit).
Day 3: Operators
• Arithmetic, Assignment, Comparison, Logical, Bitwise, and Ternary operators.
• Operator precedence and associativity.
Day 4: Control Flow
• Conditional statements: if, else if, else, and switch.
• Loops: for, while, and do-while.
• Using break and continue effectively.
Day 5: Functions
• Function declaration and expression.
• Arrow functions.
• Parameters, arguments, and return values.
• Scope and closures.
Week 2: Advanced Foundations
Day 1: Arrays
• Creating and manipulating arrays.
• Methods: push(), pop(), shift(), unshift(), splice(), slice(), map(), filter(),
reduce().
• Iterating with for, for...of, and forEach.
Day 2: Objects
• Object literals and properties.
• Adding, updating, and deleting properties.
• Iterating over objects: for...in.
Day 3: Error Handling
• try, catch,and finally.
• Throwing custom errors.
Day 4: Math and Date
• Using the Math object for calculations.
• Creating and formatting dates with the Date object.
Day 5: Strings
• String manipulation and methods: length, charAt(), substring(), split(),
replace().
• Template literals and dynamic strings.
Week 3: Working with Advanced Concepts
Day 1: Advanced Functions
• Callbacks and higher-order functions.
• Function currying.
• Recursion.
Day 2: Asynchronous JavaScript
• Callbacks, Promises, and async/await.
• The Event Loop and microtasks.
Day 3: Data Structures
• Sets and Maps.
• WeakSets and WeakMaps.
• Comparison with arrays and objects.
Day 4: Modules
• Understanding modules and import/export.
• Using CommonJS (require and module.exports).
Day 5: Regular Expressions
• Creating and using regex.
• Common patterns and flags.
• Practical examples (e.g., email validation).
Week 4: Object-Oriented Programming (OOP)
Day 1: Classes and Objects
• Creating classes and instances.
• constructor and methods.
Day 2: Inheritance
• Extending classes with extends.
• Using super in constructors and methods.
Day 3: Encapsulation and Polymorphism
• Private and public fields/methods.
• Overriding methods and polymorphism.
Day 4: Prototypes
• Prototypal inheritance.
• Manipulating prototypes directly.
Day 5: Static Methods and Singleton Pattern
• Using static methods in classes.
• Creating a singleton object.
Week 5: Advanced Topics
Day 1: Working with JSON
• Creating, parsing, and stringifying JSON.
• Practical applications in data handling.
Day 2: Algorithms and Problem Solving
• Sorting and searching algorithms.
• Solving real-world problems using JavaScript.
Day 3: Functional Programming
• Pure functions and immutability.
• Functional methods (map, reduce, filter, etc.).
Day 4: Memory Management
• Understanding garbage collection.
• Avoiding memory leaks.
Day 5: File System Operations (Optional for CLI)
• Reading from and writing to files using Node.js (fs module).
Week 6: Project and Revision
Day 1-2: Building a CLI Tool
• Example: A calculator, to-do list manager, or note-taking app.
Day 3-4: Problem-Solving Challenges
• Complex exercises involving multiple concepts (loops, arrays, objects, OOP, etc.).
Day 5: Final Q&A and Feedback
• Recap all topics.
• Address doubts and questions.