A comprehensive collection of coding questions and exercises for JavaScript and Node.js developers from beginner to advanced level. Master Express.js, data manipulation, middleware, and API development through practical, real-world challenges.
- Overview
- Challenge Structure
- Getting Started
- Available Challenges
- Learning Path
- Prerequisites
- Installation & Setup
- Testing Your Solutions
- Contributing
This repository contains carefully crafted coding challenges designed to take you from a JavaScript beginner to an advanced Node.js developer. Each file focuses on specific concepts and builds upon previous knowledge, creating a comprehensive learning journey.
All challenges are organized in structured directories and follow a consistent naming pattern:
JS-questions/
├── 01-basic-javascript-challenges.md
├── 02-intermediate-javascript-challenges.md
├── 03-advanced-javascript-challenges.md
NodeJs Questions/
├── 01-beginner-express-challenges.md
├── 02-express-middleware-challenges.md
├── 03-nodejs-data-manipulation-challenges.md
├── 04-ecommerce-order-management-challenges.md
├── 05-express-blog-api-challenges.md
└── [Future challenges will appear here automatically]
- Node.js (v14 or higher)
- npm or yarn
- Code Editor (VS Code recommended)
- API Testing Tool (Postman, Thunder Client, or Insomnia)
-
Clone the repository
git clone git@github.com:mohin-sheikh/js-node-coding-questions.git cd js-node-coding-questions
-
Initialize your project
npm init -y npm install express
-
Create your server file (
index.js
)const express = require('express'); const app = express(); const PORT = 3000; // Middleware to parse JSON bodies app.use(express.json()); // Add your routes here app.listen(PORT, () => { console.log(`Server running on http://localhost:${PORT}`); });
File | Focus Areas | Status | Level |
---|---|---|---|
01-basic-javascript-challenges.md |
JavaScript Basics, Arrays, Strings, Objects | Available | 🟢 Beginner |
02-intermediate-javascript-challenges.md |
Advanced Arrays, Objects, Algorithms | Available | 🟡 Intermediate |
03-advanced-javascript-challenges.md |
Data Structures, Functional Programming, Performance | Available | 🔴 Advanced |
File | Focus Areas | Status | Level |
---|---|---|---|
01-beginner-express-challenges.md |
Express basics, Routing, CRUD | Available | 🟢 Beginner |
02-express-middleware-challenges.md |
Middleware, Authentication, Error Handling | Available | 🟡 Intermediate |
03-nodejs-data-manipulation-challenges.md |
Data Processing, Array Methods, Algorithms | Available | 🟡 Intermediate |
04-ecommerce-order-management-challenges.md |
Complex Systems, Database Relations | Available | 🔴 Advanced |
05-express-blog-api-challenges.md |
Full API Development, Best Practices | Available | 🔴 Advanced |
- Start with Basics - Begin with
01-basic-javascript-challenges.md
to master core JavaScript concepts - Intermediate Concepts - Progress to
02-intermediate-javascript-challenges.md
for advanced data manipulation - Advanced JavaScript - Complete
03-advanced-javascript-challenges.md
for algorithms and data structures
- Express Foundation - Move to
01-beginner-express-challenges.md
for Node.js/Express basics - Master Middleware - Continue with
02-express-middleware-challenges.md
after understanding routing - Data Skills - Advance to
03-nodejs-data-manipulation-challenges.md
for complex data processing - Real Projects - Tackle
04-ecommerce-order-management-challenges.md
for enterprise systems - API Excellence - Complete with
05-express-blog-api-challenges.md
for production-ready API development
- Weeks 1-4 - JavaScript Fundamentals (JS-questions files)
- Weeks 5-6 - Node.js & Express Basics (Files starting with
01-
) - Weeks 7-8 - Intermediate Concepts (Files starting with
02-
) - Weeks 9-10 - Advanced Data Handling (Files starting with
03-
) - Weeks 11-12 - Real-world Applications (Files starting with
04-
) - Weeks 13-14 - Mastery Level (Files starting with
05-
and beyond)
- Node.js REPL - For JavaScript challenges
- Console.log - Basic debugging and output testing
- Postman - API testing
- Thunder Client - VS Code extension
- curl - Command line testing
- Browser - For GET requests
- Performance Profiling - For advanced algorithm challenges
# Test JavaScript functions
node -e "console.log(require('./your-solution.js').yourFunction())"
# Test basic server
curl http://localhost:3000/
# Test POST request
curl -X POST http://localhost:3000/users \
-H "Content-Type: application/json" \
-d '{"name":"John","email":"john@example.com"}'
# Test with query parameters
curl "http://localhost:3000/search?q=javascript&category=books"
# Performance testing for advanced challenges
node --prof your-algorithm.js
- Sequential Learning - Challenges are numbered for a reason - follow the sequence
- Read Carefully - Each challenge file contains detailed instructions and examples
- Test Thoroughly - Use the provided example outputs to verify your solutions
- Experiment - Don't hesitate to try different approaches and learn from mistakes
- Check Updates - New challenges are added regularly, so watch this repository
- Practice Regularly - Consistent practice is key to mastering these concepts
This README automatically reflects new challenge files as they're added to the directories. When new files are added:
- They automatically appear in the Available Challenges table
- The learning path recommendations expand accordingly
- No manual updates needed to the README
We welcome contributions! Here's how you can help -
- Fork the repository
- Create a new challenge file following the naming convention -
NUM-descriptive-name-challenges.md
- Add comprehensive challenges with examples and expected outputs
- Submit a Pull Request
- Use consistent numbering (
06-
,07-
, etc.) - Include clear learning objectives
- Provide example inputs and outputs
- Follow the existing structure and formatting
- Add difficulty level indicators (🟢 Beginner, 🟡 Intermediate, 🔴 Advanced)
If you get stuck on any challenge -
- Review the Basics - Ensure you understand previous challenges
- Check Examples - Each challenge includes detailed example outputs
- Break It Down - Solve smaller parts of the problem first
- Use Documentation - Refer to official JavaScript, Node.js and Express.js docs
- Community Support - Check issues and discussions for similar questions
Remember - Every expert was once a beginner. Take your time, practice consistently, and don't hesitate to revisit earlier challenges!
Start with JavaScript fundamentals:
01-basic-javascript-challenges.md
Then move to Node.js:
01-beginner-express-challenges.md
Check back regularly for new challenges and updates!
More challenges coming soon!