Skip to content

Empero47/learnJS-sandbox

Repository files navigation

learnJS — Sandbox

A comprehensive, beginner-friendly repository for learning JavaScript through hands-on examples, exercises, and mini-projects.

Getting Started

Prerequisites

  • Node.js (v18+ recommended) - Download here
  • A code editor (VS Code, Sublime Text, or any editor you prefer)
  • Basic computer literacy

Installation

Clone this repository and navigate to the folder:

git clone https://github.com/Empero47/learnJS-sandbox.git
cd learnJS-sandbox/sandbox

Running Examples

# Run the course introduction
node index.js

# Run individual lesson examples
node lessons/01-basics/example.js

# Run the interactive ATM demo
node switchExample.js

Project Structure

sandbox/
├── 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

Course Lessons

Each lesson is in lessons/XX-topic/ and contains:

  • README.md — Learning objectives and concepts
  • example.js — Commented code examples
  • exercise.md — Practice problems

Estimated time: 20-40 hours total

Lesson Roadmap

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

Topics Covered

  • 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, this keyword, 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

How to Use This Course

For Students

  1. Start with Lesson 01 and work through each lesson sequentially
  2. Read the README in each lesson folder first
  3. Study the example.js file — run it, modify it, experiment!
  4. Complete the exercises in exercise.md
  5. Check your solutions against the files in solutions/ folder
  6. Build mini-projects to reinforce learning

For Instructors

  • 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

Additional Resources

  • docs/debugging-guide.md — How to debug JavaScript code
  • docs/glossary.md — JavaScript terminology reference
  • docs/best-practices.md — Coding standards and conventions
  • docs/common-mistakes.md — Typical pitfalls and how to avoid them

Mini-Projects

After completing the lessons, try these projects:

  1. Todo List Application (Lessons 1-5)
  2. Calculator (Lessons 1-4)
  3. Quiz Game (Lessons 1-7)
  4. Async Data Fetcher (Lessons 1-8)
  5. Form Validator (Lessons 1-10)

Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-lesson)
  3. Make your changes with clear comments
  4. Test all code examples
  5. Submit a pull request

Support

License

ISC License - See LICENSE file for details

Author

Emmanuel Kemakolam (@Empero47)

Acknowledgments

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!

About

JavaScript Course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors