https://github.com/dharmveer97/programming-mastery
https://github.com/dharmveer97/programming-mastery
Last synced: 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/dharmveer97/programming-mastery
- Owner: dharmveer97
- Created: 2025-11-22T16:53:17.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-11-22T18:01:07.000Z (8 months ago)
- Last Synced: 2025-11-22T18:23:23.707Z (8 months ago)
- Language: JavaScript
- Size: 654 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Complete JavaScript, TypeScript & Node.js Learning Repository
> **Master Full-Stack Development with 200+ Hands-On Exercises | Learn JavaScript, TypeScript, Node.js, Express, REST APIs & More**
[](./javascript-mastery)
[](./src)
[](./nodejs-mastery)
[](LICENSE)
---
## 🎯 What You'll Learn
This comprehensive learning repository contains **200+ practical exercises** covering everything from JavaScript fundamentals to advanced Node.js backend development. Perfect for beginners and intermediate developers looking to master modern web development.
### 🌟 Key Features
✅ **200+ Real-World Exercises** - Practice with hands-on coding challenges
✅ **3 Complete Learning Paths** - Frontend, Backend, or Full-Stack
✅ **Automated Testing** - Instant feedback with Vitest
✅ **Problem + Solution Format** - Learn at your own pace
✅ **Production-Ready Skills** - Build real applications
✅ **Zero to Hero** - Beginner friendly to advanced topics
---
## 📦 What's Inside
### **1. JavaScript Mastery** - 125 Exercises 🟨
**Path:** `./javascript-mastery`
Master modern JavaScript from fundamentals to advanced concepts:
- **Fundamentals** (30) - Variables, functions, arrays, objects, control flow
- **Advanced JS** (25) - Closures, prototypes, classes, OOP, design patterns
- **Async Programming** (15) - Promises, async/await, callbacks, event loop
- **Data Structures** (25) - Arrays, objects, maps, sets, linked lists, trees
- **Algorithms** (20) - Sorting, searching, recursion, dynamic programming
- **Design Patterns** (10) - Singleton, factory, observer, module patterns
**Topics Covered:**
- ES6+ syntax (arrow functions, destructuring, spread/rest)
- Array methods (map, filter, reduce, forEach, find)
- Functional programming concepts
- Object-oriented programming (OOP)
- DOM manipulation & event handling
- Promises, async/await, fetch API
- Error handling & debugging
---
### **2. TypeScript Tutorial** - 18 Exercises 🔵
**Path:** `./src`
Learn TypeScript type system and advanced type patterns:
- Basic types (string, number, boolean, arrays)
- Function types & parameters
- Optional & required properties
- Union & intersection types
- Type utilities (Record, Pick, Omit, Partial)
- Generics & type inference
- Type guards & narrowing
- Advanced type patterns
**Perfect for:**
- JavaScript developers learning TypeScript
- Frontend developers using React, Vue, Angular
- Anyone building type-safe applications
---
### **3. Node.js Mastery** - 90+ Exercises 🟢
**Path:** `./nodejs-mastery`
Complete backend development course following the [roadmap.sh/nodejs](https://roadmap.sh/nodejs):
#### **📦 NPM & Package Management** (8 exercises)
- npm basics (install, uninstall, update)
- package.json configuration
- Semantic versioning (SemVer)
- npm scripts & automation
- npx usage
- package-lock.json
- npm workspaces (monorepos)
#### **🔧 Core Modules** (25 exercises)
- **HTTP/HTTPS** - Creating servers, routing, headers
- **File System (fs)** - Reading/writing files, streams
- **Path** - Cross-platform path manipulation
- **OS** - System information, CPU, memory
- **URL** - URL parsing, query parameters
- **Events** - Event emitters, listeners
- **Stream** - Readable, writable, transform streams
- **Buffer** - Binary data handling
- **Crypto** - Hashing, encryption, security
- **DNS** - DNS lookups & resolution
- **Util, Assert, Readline** - Utilities & CLI tools
#### **🌐 Web Development** (20 exercises)
- HTTP module basics
- Express.js framework
- REST API development
- Middleware patterns
- Routing & route parameters
- Request/response handling
- Error handling
- CORS & security headers
#### **🔄 Async Programming** (12 exercises)
- Callbacks & promises
- async/await patterns
- Event loop explained
- Timers (setTimeout, setInterval, setImmediate)
- process.nextTick
- Microtasks vs macrotasks
#### **🚀 Advanced Topics** (20 exercises)
- Streams & buffers
- Worker threads
- Cluster module
- Child processes
- Authentication (JWT, OAuth)
- Security best practices
- Testing (Vitest, Jest)
- Performance optimization
---
## 🚀 Quick Start
### Prerequisites
- Node.js 18+ installed
- npm or yarn package manager
- Code editor (VS Code recommended)
### Option 1: JavaScript Mastery
```bash
# Clone the repository
git clone https://github.com/dharmveer97/programming-mastery.git
cd programming-mastery/javascript-mastery
# Install dependencies
npm install
# Run tests in watch mode (recommended)
npm run test:watch
# Or run all tests once
npm test
```
### Option 2: TypeScript Tutorial
```bash
# From root directory
npm install
# Run exercises interactively
npm run exercise
# Or run specific exercise
npm run e-01 # Exercise 1
npm run s-01 # Solution 1
```
### Option 3: Node.js Mastery
```bash
cd nodejs-mastery
# Install dependencies
npm install
# Run all tests (watch mode)
npm run test:watch
# Run specific category
npm run fundamentals
npm run async
npm run http
```
---
## 📊 Complete Exercise Breakdown
| Category | Exercises | Topics | Difficulty |
| --------------------------- | --------- | ------------------------------------- | ----------------- |
| **JavaScript Fundamentals** | 30 | Variables, functions, arrays, objects | ⭐ Beginner |
| **JavaScript Advanced** | 25 | Closures, OOP, prototypes | ⭐⭐ Intermediate |
| **Async JavaScript** | 15 | Promises, async/await | ⭐⭐ Intermediate |
| **Data Structures** | 25 | Arrays, trees, graphs | ⭐⭐⭐ Advanced |
| **Algorithms** | 20 | Sorting, searching | ⭐⭐⭐ Advanced |
| **Design Patterns** | 10 | Common JS patterns | ⭐⭐ Intermediate |
| **TypeScript Basics** | 10 | Types, interfaces | ⭐ Beginner |
| **TypeScript Advanced** | 8 | Utilities, generics | ⭐⭐⭐ Advanced |
| **Node.js Core** | 30 | Modules, fs, streams | ⭐⭐ Intermediate |
| **NPM & Packages** | 8 | Package management | ⭐ Beginner |
| **Express & APIs** | 20 | REST APIs, middleware | ⭐⭐ Intermediate |
| **Node.js Advanced** | 20 | Auth, testing, performance | ⭐⭐⭐ Advanced |
| **TOTAL** | **213** | Complete full-stack | All Levels |
---
## 🎯 Recommended Learning Paths
### 🎨 Path 1: Frontend Developer (12 weeks)
**Goal:** Build interactive web applications with TypeScript
```
Week 1-2: JavaScript Fundamentals (30 exercises)
Week 3-4: JavaScript Advanced (25 exercises)
Week 5: Async JavaScript (15 exercises)
Week 6-7: Data Structures (25 exercises)
Week 8-9: TypeScript Tutorial (18 exercises)
Week 10-11: Algorithms (20 exercises)
Week 12: Design Patterns (10 exercises)
```
**You'll be able to:**
- Build React, Vue, or Angular applications
- Write type-safe code with TypeScript
- Understand advanced JavaScript concepts
- Solve algorithm challenges in interviews
---
### 🖥️ Path 2: Backend Developer (12 weeks)
**Goal:** Build scalable REST APIs and backend services
```
Week 1-2: JavaScript Fundamentals (30 exercises)
Week 3: Async JavaScript (15 exercises)
Week 4: NPM & Package Management (8 exercises)
Week 5-6: Node.js Core Modules (30 exercises)
Week 7-8: HTTP & Express.js (20 exercises)
Week 9-10: Advanced Node.js (20 exercises)
Week 11: TypeScript Basics (10 exercises)
Week 12: Build real projects
```
**You'll be able to:**
- Build production-ready REST APIs
- Work with databases (SQL, MongoDB)
- Implement authentication (JWT, OAuth)
- Deploy Node.js applications
---
### 🌐 Path 3: Full-Stack Developer (20 weeks)
**Goal:** Master both frontend and backend development
```
Complete both Frontend and Backend paths
Plus: Build 3 full-stack projects
- E-commerce platform
- Social media app
- Real-time chat application
```
**You'll be able to:**
- Build complete web applications
- Handle frontend and backend
- Deploy full-stack apps to production
- Get hired as a full-stack developer
---
## 💻 Exercise Format
Each exercise follows this structure:
```javascript
/**
* EXERCISE: Array Filter Method
*
* Learn how to filter arrays based on conditions.
*
* YOUR TASK:
* Implement a function that filters even numbers from an array.
*/
export const filterEvenNumbers = (numbers) => {
// TODO: Your code here
return [];
};
// TESTS (using Vitest)
describe('Filter Even Numbers', () => {
it('should filter even numbers', () => {
expect(filterEvenNumbers([1, 2, 3, 4, 5, 6])).toEqual([2, 4, 6]);
});
});
```
**Solution files are provided** - Compare your solution with the optimal approach!
---
## 📁 Repository Structure
```
programming-practice/
│
├── 📂 src/ # TypeScript Tutorial
│ ├── 01-basic-types.problem.ts
│ ├── 01-basic-types.solution.ts
│ ├── 02-functions.problem.ts
│ └── ...
│
├── 📂 javascript-mastery/ # JavaScript Exercises
│ ├── 📁 js-fundamentals/ # Basics (variables, functions, arrays)
│ ├── 📁 js-advanced/ # Advanced (closures, OOP, prototypes)
│ ├── 📁 async/ # Promises, async/await
│ ├── 📁 data-structures/ # Arrays, objects, trees, graphs
│ ├── 📁 algorithms/ # Sorting, searching, recursion
│ └── 📁 design-patterns/ # Common patterns
│
├── 📂 nodejs-mastery/ # Node.js Backend
│ ├── 📁 npm-packages/ # npm & package management
│ ├── 📁 node-core/ # Core modules (fs, http, streams)
│ ├── 📁 async/ # Event loop, timers
│ ├── 📁 node-advanced/ # Express, APIs, auth
│ ├── 📁 error-handling/ # Error management
│ └── 📁 cli-tools/ # Building CLI apps
│
├── package.json
├── vitest.config.js
└── README.md
```
---
## 🛠️ Technologies & Tools
**Languages:**
- JavaScript (ES6+)
- TypeScript
- Node.js
**Testing:**
- Vitest - Fast unit testing
- Jest - Alternative testing framework
**Frameworks & Libraries:**
- Express.js - Web framework
- Zod - Schema validation
**Tools:**
- npm - Package manager
- Git - Version control
- VS Code - Recommended editor
---
## 📚 Learning Resources
### JavaScript
- [MDN Web Docs - JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript) - Official reference
- [JavaScript.info](https://javascript.info/) - Modern tutorial
- [Eloquent JavaScript](https://eloquentjavascript.net/) - Free book
- [33 JS Concepts](https://github.com/leonardomso/33-js-concepts) - Essential concepts
### TypeScript
- [TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/intro.html) - Official docs
- [Type Challenges](https://github.com/type-challenges/type-challenges) - Practice types
- [Total TypeScript](https://totaltypescript.com) - Video courses
### Node.js
- [Node.js Docs](https://nodejs.org/docs/latest/api/) - Official API reference
- [Node.js Roadmap](https://roadmap.sh/nodejs) - Complete learning path
- [Express.js Guide](https://expressjs.com/en/guide/routing.html) - Web framework
- [Node Best Practices](https://github.com/goldbergyoni/nodebestpractices) - Production tips
### Algorithms & Data Structures
- [JavaScript Algorithms](https://github.com/trekhleb/javascript-algorithms) - Visual examples
- [LeetCode](https://leetcode.com/) - Coding challenges
- [HackerRank](https://www.hackerrank.com/) - Practice problems
---
## 🎓 Who Is This For?
✅ **Beginners** - New to programming? Start with JavaScript Fundamentals
✅ **Intermediate Developers** - Level up your skills with advanced topics
✅ **Career Switchers** - Build job-ready portfolio projects
✅ **CS Students** - Supplement your coursework with practical exercises
✅ **Interview Prep** - Practice algorithms and data structures
✅ **Self-Taught Developers** - Structured learning path
---
## 🏆 Skills You'll Master
After completing this repository, you will:
✅ Write clean, modern JavaScript (ES6+)
✅ Build type-safe applications with TypeScript
✅ Create REST APIs with Node.js & Express
✅ Handle async operations (Promises, async/await)
✅ Work with databases (SQL, MongoDB)
✅ Implement authentication & authorization
✅ Write unit tests and integration tests
✅ Deploy applications to production
✅ Solve algorithm challenges
✅ Pass technical interviews
---
## 🤝 Contributing
Contributions are welcome! Here's how you can help:
1. 🐛 **Report bugs** - Open an issue
2. 💡 **Suggest exercises** - Request new topics
3. 🔧 **Fix errors** - Submit a pull request
4. 📖 **Improve docs** - Help others learn better
---
## 📝 License
This project is licensed under the **GPL-3.0 License** - see the [LICENSE](LICENSE) file for details.
---
## ⭐ Star This Repository
If you find this helpful, please give it a star ⭐ to help others discover it!
---
## 🚀 Start Your Learning Journey Today
```bash
git clone https://github.com/dharmveer97/programming-mastery.git
cd programming-mastery/javascript-mastery
npm install
npm run test:watch
```
**Happy Coding!** 💻
---
## 📊 Repository Stats



---
### Keywords for Discovery
`javascript exercises` `typescript tutorial` `nodejs learning` `backend development` `rest api` `express js` `async await` `promises` `data structures` `algorithms` `design patterns` `full stack developer` `web development` `coding practice` `programming exercises` `learn javascript` `learn typescript` `learn nodejs` `vitest testing` `beginner friendly` `interview preparation` `coding challenges`