Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
202 changes: 202 additions & 0 deletions QUICKSTART.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
# Quick Start Guide

copilot/create-templates-for-concepts
Get started with the 33 JavaScript concepts templates in minutes! 🚀

## What You'll Learn

This repository helps you master 33 fundamental JavaScript concepts through hands-on practice with ready-to-use templates.

## Getting Started in 3 Steps

### Step 1: Clone or Download

```bash
# Clone the repository
git clone https://github.com/QTechDevelopment/33-js-concepts.git

# Navigate to the directory
cd 33-js-concepts
```

### Step 2: Choose Your Starting Point

**New to JavaScript?** Start with Concept 1:
```bash
cd templates
node 01-call-stack.js
```

**Want to practice a specific concept?** Pick from the list:
- `01-call-stack.js` - Understanding function execution
- `02-primitive-types.js` - JavaScript data types
- `06-scope.js` - Variable scope and closures
- `21-closures.js` - Advanced closure patterns
- `25-promises.js` - Async programming
- ... and 28 more!

### Step 3: Start Learning

Open any template in your favorite editor and:

1. **Read** the concept explanation at the top
2. **Study** the examples provided
3. **Complete** the practice exercises (marked with `// TODO:`)
4. **Experiment** by modifying the code
5. **Run** your changes: `node <filename>.js`

## Example Workflow

```bash
# Copy a template to work on
cp templates/01-call-stack.js my-practice.js

# Edit it in your editor
code my-practice.js # or vim, nano, etc.

# Run it
node my-practice.js

# Experiment and learn!
```

## What's in Each Template?

Every template includes:

✅ **Clear Explanation** - What the concept is and why it matters
✅ **Multiple Examples** - From basic to advanced usage
✅ **Practice Exercises** - Hands-on coding challenges
✅ **Common Pitfalls** - Mistakes to avoid
✅ **Best Practices** - How to use the concept correctly
✅ **Notes & Tips** - Key takeaways

## Learning Path

### For Beginners (Start Here!)
1. Call Stack (01)
2. Primitive Types (02)
3. Value Types and Reference Types (03)
4. Scope (06)
5. Closures (21)

### For Intermediate Developers
1. Prototype Inheritance (17)
2. this, call, apply, bind (15)
3. Promises (25)
4. async/await (26)
5. Design Patterns (31)

### For Advanced Developers
1. Event Loop (09)
2. JavaScript Engines (11)
3. Big O Notation (28)
4. Algorithms (29)
5. Currying and Composition (32)

## Need More Help?

- 📖 **Detailed Documentation**: See [templates/README.md](./templates/README.md)
- 📚 **Articles & Videos**: Check the main [README.md](./README.md) for curated resources
- 🐛 **Issues**: [Open an issue](https://github.com/QTechDevelopment/33-js-concepts/issues) on GitHub
- 💬 **Discussions**: Join the community discussions

## Tips for Success

1. **Practice Daily**: Spend 30 minutes each day on one concept
2. **Type It Out**: Don't copy-paste, type the code yourself
3. **Break Things**: Try to break the code to understand boundaries
4. **Teach Others**: Explain concepts to solidify your understanding
5. **Build Projects**: Apply concepts in real projects

## Quick Commands Reference

```bash
# Run any template
node templates/01-call-stack.js

# List all templates
ls templates/*.js

# Run multiple templates
for file in templates/0{1..5}*.js; do node "$file"; done

# Search for a specific concept
grep -r "closures" templates/
```

## What's Next?

After completing the templates:

1. ⭐ Star this repository if you find it helpful
2. 🔄 Share it with other developers
3. 🤝 Contribute improvements (see [CONTRIBUTING.md](./CONTRIBUTING.md))
4. 🚀 Build something awesome with your new skills!


**Happy Learning!** 🎉

Remember: The best way to learn is by doing. Don't just read the templates - code along, experiment, and most importantly, have fun!
## 🚀 Get Started in 3 Steps

### Step 1: Clone the Repository
```bash
git clone https://github.com/leonardomso/33-js-concepts.git
cd 33-js-concepts
```

### Step 2: Start the Server
```bash
node server.js
```

Or using npm:
```bash
npm start
```

### Step 3: Open Your Browser
Navigate to: **http://localhost:3000**

That's it! 🎉

## 🎯 What You Can Do

- **Browse Concepts**: Click on any of the 33 JavaScript concepts in the sidebar
- **Search**: Use the search box to quickly find specific topics
- **Write Code**: Modify the example code in the editor
- **Run Code**: Click the "▶ Run Code" button (or press Ctrl/Cmd + Enter)
- **See Results**: View the console output below the editor
- **Reset**: Click "↻ Reset" to restore the original example
- **Clear**: Click "🗑️ Clear" to start with a blank editor

## 🎓 Learning Tips

1. Start with **Concept #1 (Call Stack)** and work your way through
2. Modify the example code to experiment
3. Try breaking things to understand error messages
4. Create your own examples for each concept
5. Use the console output to debug and learn

## ⚡ Keyboard Shortcuts

- `Ctrl/Cmd + Enter` - Run the code
- `Tab` - Insert 4 spaces (in the editor)

## 🔧 Requirements

- Node.js installed on your system
- A modern web browser (Chrome, Firefox, Safari, Edge)

## 📱 Mobile Friendly

The interface is fully responsive and works on mobile devices too!

## 🆘 Need Help?

- Check the [README.md](README.md) for more detailed information
- Visit the [main repository](https://github.com/leonardomso/33-js-concepts) for resources
- Open an issue if you encounter any problems

Happy Learning! 🎉 master
72 changes: 72 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
<div align="center">
<p>
<a href="#introduction">Introduction</a> •
copilot/create-templates-for-concepts
<a href="#templates">Templates</a> •
<a href="./QUICKSTART.md">Quick Start</a> •
<a href="#interactive-learning">Interactive Learning</a> •
master
<a href="#community">Community</a> •
<a href="#table-of-contents">Table of Contents</a> •
<a href="#license">License</a>
Expand All @@ -24,6 +29,73 @@

This repository was created with the intention of helping developers master their concepts in JavaScript. It is not a requirement, but a guide for future studies. It is based on an article written by Stephen Curtis and you can read it [here](https://medium.com/@stephenthecurt/33-fundamentals-every-javascript-developer-should-know-13dd720a90d1).

copilot/create-templates-for-concepts
## Templates

🎯 **NEW!** We now provide [hands-on templates](./templates) for each of the 33 concepts!

Each template includes:
- ✅ Clear explanations and examples
- ✅ Practice exercises to test your understanding
- ✅ Common pitfalls to avoid
- ✅ Best practices and tips

**[👉 Get Started with Templates](./templates/README.md)**

Perfect for:
- Beginners learning JavaScript fundamentals
- Developers wanting to practice specific concepts
- Anyone preparing for technical interviews
- Teachers looking for structured learning materials

## 🎮 Interactive Learning

**NEW!** Now you can learn and test JavaScript concepts interactively! We've added a plug-and-play GUI that lets you:

- 📚 Browse all 33 JavaScript concepts in an organized list
- 💻 Write and test code in a live editor
- 🔍 Search for specific concepts
- ▶️ Execute JavaScript code directly in your browser
- 📋 See real-time console output
- 🎯 Learn by doing with pre-loaded examples

### Getting Started with the Interactive GUI

1. **Clone this repository:**
```bash
git clone https://github.com/leonardomso/33-js-concepts.git
cd 33-js-concepts
```

2. **Start the local server:**
```bash
node server.js
```

Or using npm:
```bash
npm start
```

3. **Open your browser:**
Navigate to `http://localhost:3000` to start learning!

### Features

- ✨ **Clean, Modern Interface**: Beautiful UI with smooth interactions
- 🔥 **Live Code Editor**: Write and test JavaScript code instantly
- 📱 **Responsive Design**: Works on desktop, tablet, and mobile
- 🎨 **Syntax-Friendly**: Comfortable code editing experience
- 🚀 **Zero Dependencies**: Pure HTML, CSS, and JavaScript - no build tools needed
- ⚡ **Instant Feedback**: See your code results immediately
- 🎓 **Educational Examples**: Each concept comes with working code examples

### Keyboard Shortcuts

- `Ctrl/Cmd + Enter` - Run code
- `Tab` - Insert 4 spaces in editor
master

## Community

Feel free to submit a PR by adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.
Expand Down
2 changes: 2 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
},
"homepage": "https://github.com/leonardomso/33#readme",
"scripts": {
"start": "node server.js",
"dev": "node server.js",
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
Expand Down
Loading