A comprehensive, beginner-friendly repository for learning JavaScript through hands-on examples, exercises, and mini-projects.
- Node.js (v18+ recommended) - Download here
- A code editor (VS Code, Sublime Text, or any editor you prefer)
- Basic computer literacy
Clone this repository and navigate to the folder:
git clone https://github.com/Empero47/learnJS-sandbox.git
cd learnJS-sandbox/sandbox# Run the course introduction
node index.js
# Run individual lesson examples
node lessons/01-basics/example.js
# Run the interactive ATM demo
node switchExample.jssandbox/
├── lessons/ # Course lessons (start here!)
├── solutions/ # Solution files for exercises
├── mini-projects/ # Larger practice projects
├── docs/ # Additional documentation
├── index.js # Course introduction script
└── switchExample.js # Interactive ATM demo
Each lesson is in lessons/XX-topic/ and contains:
README.md— Learning objectives and conceptsexample.js— Commented code examplesexercise.md— Practice problems
Estimated time: 20-40 hours total
| Lesson | Topic | Duration | Difficulty |
|---|---|---|---|
| 01 | JavaScript Basics | 2-3 hours | ⭐ Beginner |
| 02 | Arrays & Objects | 2-3 hours | ⭐ Beginner |
| 03 | Control Flow | 2-3 hours | ⭐ Beginner |
| 04 | Functions | 3-4 hours | ⭐⭐ Intermediate |
| 05 | Array Methods | 3-4 hours | ⭐⭐ Intermediate |
| 06 | Classes & OOP | 3-4 hours | ⭐⭐ Intermediate |
| 07 | Error Handling | 2 hours | ⭐⭐ Intermediate |
| 08 | Asynchronous JavaScript | 4-5 hours | ⭐⭐⭐ Advanced |
| 09 | Modules & Imports | 2 hours | ⭐⭐ Intermediate |
| 10 | Regular Expressions | 2-3 hours | ⭐⭐⭐ Advanced |
| 11 | Advanced Topics | 3-4 hours | ⭐⭐⭐ Advanced |
- Fundamentals: Variables, data types, operators, type coercion, template literals
- Data Structures: Arrays, objects, Maps, Sets, destructuring, spread operator
- Control Flow:
if/else,switch,for,while,do...while,break,continue - Functions: Declarations, expressions, arrow functions, default/rest parameters, closures, scope
- Array Methods:
map,filter,reduce,forEach,find,some,every - Object-Oriented: Classes, constructors, inheritance,
thiskeyword, getters/setters - Error Handling:
try/catch/finally, throwing errors, custom error classes - Asynchronous: Callbacks, Promises,
async/await, error handling,Promise.all - Modules: ES6 modules (
import/export), CommonJS, module patterns - Regular Expressions: Pattern syntax, character classes, quantifiers, capturing groups, lookahead/lookbehind
- Advanced: Iterators, generators,
Proxy,Reflect, typed arrays,BigInt
- Start with Lesson 01 and work through each lesson sequentially
- Read the README in each lesson folder first
- Study the example.js file — run it, modify it, experiment!
- Complete the exercises in
exercise.md - Check your solutions against the files in
solutions/folder - Build mini-projects to reinforce learning
- Use the lessons as a semester framework
- Each lesson is designed for 1-2 class sessions
- Exercises can be homework or in-class activities
- Mini-projects work well as end-of-unit assessments
- Modify examples to fit your teaching style
docs/debugging-guide.md— How to debug JavaScript codedocs/glossary.md— JavaScript terminology referencedocs/best-practices.md— Coding standards and conventionsdocs/common-mistakes.md— Typical pitfalls and how to avoid them
After completing the lessons, try these projects:
- Todo List Application (Lessons 1-5)
- Calculator (Lessons 1-4)
- Quiz Game (Lessons 1-7)
- Async Data Fetcher (Lessons 1-8)
- Form Validator (Lessons 1-10)
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-lesson) - Make your changes with clear comments
- Test all code examples
- Submit a pull request
- Issues: Report bugs or suggest improvements
- Discussions: Ask questions in GitHub Discussions
ISC License - See LICENSE file for details
Emmanuel Kemakolam (@Empero47)
Thanks to all students who provided feedback to improve this course!
Ready to start? Head to lessons/01-basics/ and begin your JavaScript journey! 🚀
Happy learning!