├── API_resources.md
├── javascript.md
├── MachineLearning.md
├── youtube.md
├── backend.md
├── beginners-guide.md
├── Aptitude.md
├── CP.md
├── dsa-vs-dev.md
├── README.md
├── full-stack.md
└── DSA Plan.md
/API_resources.md:
--------------------------------------------------------------------------------
1 | # API Development Roadmap 🚀
2 |
3 | A structured 6-week roadmap to mastering API development.
4 |
5 | ## 🗂 Roadmap Overview
6 |
7 | | Week | Topics Covered | Resources | Practice/Projects |
8 | |------|---------------|-----------|-------------------|
9 | | **1** | **Introduction to APIs**
- What are APIs?
- REST vs GraphQL
- HTTP Methods (GET, POST, PUT, DELETE)
- Status Codes | - [RESTful API Basics](https://www.codecademy.com/articles/what-is-rest)
- [MDN: HTTP Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) | - Build a simple API to return "Hello World" |
10 | | **2** | **Building REST APIs with Node.js & Express**
- Setting up Express
- Routing & Middleware
- Handling Requests & Responses
- Environment Variables | - [Express.js Docs](https://expressjs.com/)
- [Node.js Crash Course](https://www.youtube.com/watch?v=fBNz5xF-Kx4) | - Create a CRUD API for a simple To-Do app |
11 | | **3** | **Databases & API Integration**
- Connecting APIs with MongoDB / PostgreSQL
- Mongoose ORM (MongoDB)
- Sequelize ORM (PostgreSQL)
- CRUD Operations with DB | - [MongoDB Node.js Docs](https://www.mongodb.com/docs/drivers/node/current/)
- [Sequelize Docs](https://sequelize.org/) | - Extend the To-Do API to use MongoDB/PostgreSQL |
12 | | **4** | **Authentication & Security**
- JWT Authentication
- OAuth (Google, GitHub)
- API Rate Limiting
- CORS Handling | - [JWT Guide](https://jwt.io/)
- [OAuth 2.0 Guide](https://www.digitalocean.com/community/tutorials/oauth-2-overview) | - Secure your API with JWT authentication |
13 | | **5** | **Advanced Topics**
- GraphQL vs REST
- WebSockets for Real-time APIs
- Caching with Redis
- API Documentation (Swagger) | - [GraphQL Docs](https://graphql.org/)
- [Socket.io Docs](https://socket.io/)
- [Swagger Docs](https://swagger.io/) | - Build a real-time chat API using WebSockets |
14 | | **6** | **Deployment & Best Practices**
- Deploying APIs on Render/Vercel/AWS
- CI/CD for APIs
- Monitoring & Logging
- Testing APIs (Postman/Jest) | - [Postman API Testing](https://learning.postman.com/)
- [Render Deployment Guide](https://render.com/docs) | - Deploy your API & test it with Postman |
15 |
16 | ## 🔥 Final Project Idea
17 | **Build a Full-fledged API for a Blogging Platform**
18 | - User authentication with JWT
19 | - CRUD operations for posts & comments
20 | - WebSocket for real-time updates
21 | - API documentation using Swagger
22 |
23 | ---
24 |
25 | **Happy Coding! 🚀**
26 |
--------------------------------------------------------------------------------
/javascript.md:
--------------------------------------------------------------------------------
1 | ### JavaScript Learning Roadmap: Topics, Theory, and Projects
2 |
3 | | **Step** | **Topic** | **Theory** | **Project Idea** |
4 | |----------|----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|
5 | | 1 | Basics of JavaScript | Learn about variables, data types, operators, and expressions. | Build a **Simple Calculator** for basic arithmetic operations. |
6 | | 2 | Control Structures | Study `if`, `else`, `switch`, and loops (`for`, `while`, `do-while`). | Create a **Guess the Number Game** where the user guesses a randomly generated number. |
7 | | 3 | Functions | Understand function declaration, expressions, and arrow functions. | Develop a **Temperature Converter** using functions for conversions. |
8 | | 4 | DOM Manipulation | Learn how to access and modify HTML elements with `document.querySelector` and `document.getElementById`. | Build a **Dynamic To-Do List** that lets users add, edit, and delete tasks. |
9 | | 5 | Events and Event Listeners | Explore event types, event propagation, and how to handle events. | Create a **KeyPress Visualizer** that shows key codes when typing. |
10 | | 6 | Arrays | Study array methods like `push`, `pop`, `filter`, `map`, `reduce`, and `forEach`. | Create a **Grocery List Manager** with features like adding, editing, and sorting items. |
11 | | 7 | Objects | Learn about objects, properties, methods, and how to loop through objects. | Build a **Student Grades Tracker** using objects for student data. |
12 | | 8 | ES6 Features | Study modern features like `let`, `const`, template literals, destructuring, and the spread/rest operator. | Build a **Recipe Manager** app using ES6 features to store and edit recipes. |
13 | | 9 | JSON and APIs | Understand JSON format and how to fetch data from APIs using `fetch`. | Fetch and display weather data using a **Weather App**. |
14 | | 10 | Promises and Async/Await | Learn how to handle asynchronous operations with Promises and `async/await`. | Build a **GitHub User Finder** that fetches user data using the GitHub API. |
15 | | 11 | Error Handling | Study `try`, `catch`, and `finally` for managing errors in code. | Create a **Form Validator** that handles errors for invalid inputs. |
16 | | 12 | Classes | Explore ES6 classes, constructors, inheritance, and methods. | Develop a **Library App** with book objects and class-based structure. |
17 | | 13 | Modules | Learn how to use `import` and `export` to organize your code into modules. | Build a **Multi-Page Portfolio Website** using JavaScript modules for navigation. |
18 | | 14 | Browser Storage | Study localStorage, sessionStorage, and cookies for storing data in the browser. | Create a **Notes App** that saves notes in localStorage. |
19 | | 15 | Regular Expressions (Regex)| Learn basic Regex syntax for pattern matching and validation. | Build a **Password Strength Checker** using Regex to validate input. |
20 | | 16 | Date and Time | Understand how to work with dates and times using the `Date` object. | Create a **Countdown Timer** for an event with real-time updates. |
21 | | 17 | Closures | Study closures and how they capture variables from their surrounding scope. | Develop a **Stopwatch App** that uses closures to manage time intervals. |
22 | | 18 | Prototypes and Inheritance | Understand JavaScript's prototype chain and inheritance. | Build a **Shape Drawer** with different shapes inheriting from a common prototype. |
23 | | 19 | Event Loop and Async Flow | Learn how JavaScript’s event loop and call stack work for asynchronous behavior. | Visualize the event loop with an **Interactive Event Loop Diagram** using animations. |
24 | | 20 | Advanced Frameworks/Tools | Study frameworks like React or Node.js to expand your JavaScript knowledge into frontend or backend development. | Create a **Chat Application** with a real-time backend (e.g., Node.js and Socket.IO). |
25 |
26 | This roadmap covers foundational to advanced concepts, ensuring a balance between theoretical understanding and practical application. Each project complements its respective topic to strengthen hands-on skills.
27 |
--------------------------------------------------------------------------------
/MachineLearning.md:
--------------------------------------------------------------------------------
1 | # 🤖 Machine Learning Roadmap
2 |
3 | | Step | Description | Key Topics | Suggested Resources |
4 | |------|-------------|------------|---------------------|
5 | | **1. Prerequisites** | Acquire foundational knowledge in mathematics and programming. | - Linear Algebra
- Calculus
- Probability and Statistics
- Python Programming | **Mathematics**:
- [Linear Algebra (Khan Academy)](https://www.khanacademy.org/math/linear-algebra)
- [Calculus (Khan Academy)](https://www.khanacademy.org/math/calculus-1)
- [Probability & Statistics (Geek's Lesson)](https://www.geeksforgeeks.org/probability-and-statistics/)
**Programming**:
- [Python Programming (YouTube)](https://youtu.be/r-uOLxNrNk8?si=wUecNE-m8QIOlGUJ)
- [R Programming (YouTube)](https://youtu.be/eR-XRSKsuR4?si=GuXz9vIg7PlBDrR5) |
6 | | **2. Understand Key Concepts of Machine Learning** | Learn the basics of ML, including different types and algorithms. | - Supervised Learning
- Unsupervised Learning
- Reinforcement Learning | **Resources**:
- [Machine Learning Specialization by Andrew Ng (Coursera)](https://www.coursera.org/specializations/machine-learning-introduction)
- [YouTube Course](https://youtu.be/i_LwzRVP7bg?si=Fa887-_-T22Glze2)
- [Edureka (YouTube)](https://youtu.be/GwIo3gDZCVQ?si=ZOEUnQ0QT9vfkamN)
**Algorithms**:
- Linear Regression, Logistic Regression, SVM, k-Means, PCA
- Practice using Scikit-learn |
7 | | **3. Choose a Specialization** | Focus on a specific area within ML to deepen expertise. | - Computer Vision
- Natural Language Processing (NLP) | **Computer Vision**:
- GANs, object detection, image segmentation ([Stanford CS231N](http://cs231n.stanford.edu/), [YouTube tutorials](https://www.youtube.com/results?search_query=computer+vision+tutorial))
**NLP**:
- Transformers (BERT, GPT), Hugging Face, spaCy |
8 | | **4. Learn to Deploy ML Models** | Understand how to deploy models for real-world applications. | - Model Deployment
- Tools like Flask, FastAPI, Docker | **Resources**:
- Flask, FastAPI, Docker, AWS/Azure
- [Deploy ML Models with FastAPI, Docker, and Heroku](https://realpython.com/deploy-machine-learning-models-fastapi-docker/) |
9 | | **5. Build a Portfolio and Keep Learning** | Create projects to showcase skills and stay updated with advancements. | - Portfolio Development
- Continuous Learning | **Include projects from all stages of learning:**
- House price prediction, sentiment analysis, image classification, GAN implementations
- Participate in Kaggle competitions for hands-on experience |
10 | | **6. Understand Key Concepts of Deep Learning** | Dive into deep learning and neural networks. | - Neural Networks
- Convolutional Neural Networks (CNN)
- Recurrent Neural Networks (RNN) | **Resources**:
- [Deep Learning Specialization (Coursera)](https://www.coursera.org/specializations/deep-learning)
- [YouTube: freeCodeCamp.org](https://www.youtube.com/c/freecodecamp)
- TensorFlow Tutorials ([YouTube: Codebasics](https://www.youtube.com/results?search_query=tensorflow+tutorial+codebasics)) |
11 |
12 | ----------------------------------------------------
13 |
14 | ## 📚 ML Projects
15 |
16 | ### Beginner Projects
17 |
18 | | Project Name | Description | Key Skills/Tools |
19 | |--------------|-------------|------------------|
20 | | **House Price Prediction** | Predict house prices based on features like area, location, and number of rooms. | Linear Regression, Scikit-learn, Pandas |
21 | | **Iris Flower Classification** | Classify iris flowers into species based on petal and sepal dimensions. | Logistic Regression, Matplotlib |
22 | | **Spam Email Detection** | Classify emails as spam or not spam using textual data. | Naive Bayes, NLTK, Scikit-learn |
23 | | **Titanic Survival Prediction** | Predict survival chances of Titanic passengers based on demographics. | Data Cleaning, Decision Trees, Pandas |
24 |
25 | ### Intermediate Projects
26 |
27 | | Project Name | Description | Key Skills/Tools |
28 | |--------------|-------------|------------------|
29 | | **Sentiment Analysis** | Analyze sentiment (positive/negative) in text data (e.g., tweets or reviews). | NLP, TextBlob, Scikit-learn |
30 | | **Handwritten Digit Recognition** | Recognize digits from images using the MNIST dataset. | Neural Networks, TensorFlow/Keras |
31 | | **Customer Segmentation** | Group customers based on purchasing behavior. | Clustering, k-Means, Matplotlib |
32 | | **Face Detection** | Detect faces in images using OpenCV and Haar cascades. | OpenCV, Haar cascades, Python |
33 |
34 | ### Advanced Projects
35 |
36 | | Project Name | Description | Key Skills/Tools |
37 | |--------------|-------------|------------------|
38 | | **Object Detection** | Detect and classify objects in images (e.g., YOLO, Faster R-CNN). | Deep Learning, PyTorch/TensorFlow |
39 | | **Text Summarization** | Generate summaries for long documents or articles. | NLP, Hugging Face, Transformers |
40 | | **Chatbot Development** | Build a chatbot for customer support or FAQs. | NLP, Rasa, GPT APIs |
41 | | **Image Segmentation** | Segment objects in images (e.g., medical imaging, autonomous vehicles). | CNNs, U-Net, TensorFlow |
42 |
43 | ### Real-World Applications
44 |
45 | | Project Name | Description | Key Skills/Tools |
46 | |--------------|-------------|------------------|
47 | | **Predictive Maintenance** | Predict equipment failure in industrial settings. | Time Series, XGBoost, Pandas |
48 | | **Fraud Detection** | Detect fraudulent transactions in financial datasets. | Anomaly Detection, Random Forest |
49 | | **Personalized Recommendations** | Build a recommendation system for movies, products, or music. | Collaborative Filtering, Matrix Factorization |
50 | | **Autonomous Driving Simulation** | Simulate self-driving car tasks like lane detection and obstacle avoidance. | Computer Vision, OpenCV, PyTorch |
51 |
52 | ### Deployment-Oriented Projects
53 |
54 | | Project Name | Description | Key Skills/Tools |
55 | |--------------|-------------|------------------|
56 | | **ML Model Deployment** | Deploy a trained model using Flask or FastAPI. | Flask, FastAPI, Docker |
57 | | **End-to-End ML Pipeline** | Build a pipeline from data ingestion to deployment. | MLflow, Kubernetes, AWS/Azure |
58 | | **Web App with ML Integration** | Create a web app that integrates an ML model (e.g., image classification app). | Flask, Streamlit, HTML/CSS |
59 |
60 | ### Specialized Domains
61 |
62 | | Domain | Example Projects |
63 | |--------|------------------|
64 | | **Healthcare** | Disease prediction (e.g., diabetes, heart disease), medical image classification. |
65 | | **Finance** | Stock price prediction, credit risk analysis, algorithmic trading. |
66 | | **Education** | Student performance prediction, automated grading systems. |
67 | | **Agriculture** | Crop yield prediction, pest detection using drone images. |
68 | | **Gaming** | Game AI, reinforcement learning for board games like chess. |
69 |
--------------------------------------------------------------------------------
/youtube.md:
--------------------------------------------------------------------------------
1 | # Web Development Skills
2 |
3 | | **Category** | **Skill** |
4 | |----------------------------|---------------------------------------------|
5 | | **Front-End Development** | HTML5 |
6 | | | CSS3 |
7 | | | JavaScript (ES6+) |
8 | | | React.js |
9 | | | Angular |
10 | | | Vue.js |
11 | | | Responsive Design |
12 | | | Tailwind CSS |
13 | | | Bootstrap |
14 | | | SASS/SCSS |
15 | | | TypeScript |
16 | | | Web Accessibility (WCAG) |
17 | | | Cross-Browser Compatibility |
18 | | | Figma/XD Integration |
19 | | | DOM Manipulation |
20 | | | Web Animations (CSS, GSAP, Framer Motion) |
21 | | | Styled Components |
22 | | | Material-UI (MUI) |
23 | | | Redux Toolkit/Zustand (State Management) |
24 | | | Progressive Web Apps (PWAs) |
25 | | **Back-End Development** | Node.js |
26 | | | Express.js |
27 | | | Django |
28 | | | Flask |
29 | | | Ruby on Rails |
30 | | | PHP |
31 | | | RESTful API Development |
32 | | | GraphQL |
33 | | | Authentication & Authorization (OAuth, JWT)|
34 | | | Server-Side Rendering (SSR) |
35 | | **Database Management** | SQL (MySQL, PostgreSQL) |
36 | | | NoSQL (MongoDB, Firebase) |
37 | | | Database Optimization |
38 | | | Cloud Databases (AWS RDS, Azure, Firestore)|
39 | | **DevOps & Deployment** | Version Control (Git/GitHub/GitLab) |
40 | | | CI/CD Pipelines (Jenkins, GitHub Actions) |
41 | | | Docker & Containerization |
42 | | | Cloud Platforms (AWS, Azure, GCP) |
43 | | | Deployment (Netlify, Vercel, Heroku) |
44 | | **Web Performance & Security** | Webpack/Parcel/Vite |
45 | | | Image Optimization |
46 | | | Content Delivery Networks (CDNs) |
47 | | | SSL/TLS Certificates |
48 | | | Security Best Practices (XSS, CSRF, SQL Injection) |
49 | | | Performance Monitoring Tools (Lighthouse, GTmetrix) |
50 | | **Additional Tools & Soft Skills** | API Integration (REST, SOAP, GraphQL) |
51 | | | Testing & Debugging (Jest, Cypress, Chrome DevTools) |
52 | | | Agile Development Methodology |
53 | | | Communication & Collaboration Tools (Slack, Trello) |
54 | | | UX/UI Design Principles |
55 |
56 |
57 |
58 | # Best YouTube Channels for Learning Web Development Skills
59 |
60 | | **Skill** | **YouTube Resource** |
61 | |-----------------------|---------------------------------------------------------------------------------------------------------|
62 | | **HTML, CSS, JS Basics** | [Web Development Full Course - Love Babbar](https://www.youtube.com/watch?v=Vi9bxu-M-ag&list=PLDzeHZWIZsTo0wSBcg4-NMIbC0L8evLrD) |
63 | | **React** | [React Tutorial for Beginners - Chai aur code](https://youtu.be/vz1RlUyrc3w?si=DENbgxD7rIPGLqoN) |
64 | | **JavaScript** | [JavaScript for Beginners - Namaste Javascript](https://youtu.be/pN6jk0uUrD8?si=i9ADbNaa-tYIT-cK) |
65 | | **MongoDB** | [MongoDB Crash Course - Thapa ](https://youtu.be/ExcRbA7fy_A?si=zA-E0XltTigTXjjV) |
66 | | **Python** | [Python for Beginners - Code With Harry ](https://youtu.be/7wnove7K-ZQ?si=nev9GgpJtwQWV9VP) |
67 | | **TypeScript** | [TypeScript Crash Course - Hitesh Chaudhary](https://youtu.be/iPGXk-i-VYU?si=WJqM_eZS1thW_25i) |
68 | | **Flask** | [Flask for Beginners - Freecodecamp](https://youtu.be/Z1RJmh_OqeA?si=28bjpYogM3q0ceFV) |
69 | | **SQL** | [SQL Tutorial for Beginners - Apna College ](https://youtu.be/hlGoQC332VM?si=9MOIDhsXLy3o-Vtx) |
70 | | **TypeScript** | [TypeScript Full Course - freeCodeCamp](https://youtu.be/30LWjhZzg50?si=Ml9jcynuJV_dFcyK) |
71 | | **Spring Boot** | [Spring Boot Tutorial - Amigoscode](https://youtu.be/-Fe0zk-F4OA?si=jBrFJkqm50tkZ4yY) |
72 | | **Next.js** | [Next.js Crash Course - Traversy Media](https://youtu.be/mTz0GXj8NN0) |
73 | | **Tailwind CSS** | [Tailwind CSS Tutorial - JS Mastery](https://youtu.be/3qk6ygiSD5c) |
74 | | **Docker** | [Docker Tutorial - Harkirat Singh](https://youtu.be/fSmLiOMp2qI?si=0lm0Hj2OVWWAfeFb) |
75 | | **Node.js** | [Node.js Crash Course - Traversy Media](https://youtu.be/ohIAiuHMKMI?si=H5iHT-EDtoSG7BAp) |
76 | | **GraphQL** | [GraphQL Tutorial - freeCodeCamp](https://youtu.be/ed8SzALpx1Q) |
77 | | **Web Accessibility** | [Web Accessibility - freeCodeCamp](https://youtu.be/WElAzzkVWsk) |
78 | | **Agile Development** | [Agile Development Basics - Edureka](https://youtu.be/Z9QbYZh1YXY) |
79 | |
80 |
81 |
82 | # Project Playlist: https://www.youtube.com/watch?v=RbxHZwFtRT4&list=PL6QREj8te1P6wX9m5KnicnDVEucbOPsqR
83 |
--------------------------------------------------------------------------------
/backend.md:
--------------------------------------------------------------------------------
1 | # Best Backend Development Roadmap
2 |
3 | | **Week** | **Topics** | **Details** | **Project/Task** | **Progress** |
4 | |----------|------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------|--------------|
5 | | **Week 1** | **JavaScript Fundamentals** | Master variables, data types, loops, functions, and objects. Focus on ES6+ features such as arrow functions, template literals, and destructuring. | Create a **To-Do List App**: A basic task tracker with add, delete, and mark complete features. | [ ] |
6 | | | **JavaScript Asynchronous Programming** | Learn `Promises`, `async/await`, and callback handling. Understand how JavaScript manages asynchronous tasks with the event loop. | Add a **Save to Local Storage** feature to the To-Do List App using asynchronous logic. | [ ] |
7 | | **Week 2** | **Node.js Basics** | Understand Node.js runtime, modules (`fs`, `http`, `path`), and NPM for managing dependencies. | Create a **File System App**: A CLI tool to create, read, and delete files and directories. | [ ] |
8 | | | **Node.js Asynchronous Programming** | Explore Node.js streams, buffers, and the `EventEmitter` API. | Enhance the File System App to handle large files with streams and real-time logs. | [ ] |
9 | | **Week 3** | **Express.js Basics** | Set up a web server with Express.js. Learn routing, serving static files, and handling requests and responses. | Build a **Simple Blog API**: Create routes for CRUD operations (Create, Read, Update, Delete) on blog posts. | [ ] |
10 | | | **Express Middleware** | Learn to use middleware for request parsing, logging, and error handling. | Add logging and error-handling middleware to the Blog API. | [ ] |
11 | | **Week 4** | **MongoDB Basics** | Learn database fundamentals: collections, documents, CRUD operations, and MongoDB queries. | Build a **Student Database**: Perform CRUD operations to manage student records. | [ ] |
12 | | | **Mongoose Basics** | Integrate Mongoose for schema creation, validation, and queries. | Enhance the Student Database with Mongoose for schema-based validation and relationships. | [ ] |
13 | | **Week 5** | **RESTful API Design** | Learn REST principles and how to structure APIs with proper URL conventions and HTTP methods. | Create a **Task Manager API**: Manage tasks with CRUD endpoints and apply RESTful best practices. | [ ] |
14 | | | **Authentication** | Explore user authentication with `bcrypt` for password hashing and `JWT` for token-based authentication. | Add user authentication to the Task Manager API for secure login and task access. | [ ] |
15 | | **Week 6** | **Error Handling and Testing** | Learn structured error handling with `try-catch` and build robust APIs. Understand the importance of testing APIs using tools like Jest or Postman. | Write test cases for the Task Manager API and implement error handling for all routes. | [ ] |
16 | | **Week 7** | **Advanced Node.js Concepts** | Explore worker threads, clustering, and child processes for improving performance and scalability in Node.js applications. | Build a **Load-Balanced API**: Use clustering to handle concurrent requests efficiently in the Task Manager API. | [ ] |
17 | | **Week 8** | **Deployment and Environment Management** | Learn how to deploy applications using services like Heroku or AWS. Understand environment variables and configuration management. | Deploy the Task Manager API on Heroku with proper environment variables for database and authentication secrets. | [ ] |
18 | | **Week 9** | **Version Control and Collaboration** | Master Git for version control and collaborative workflows using GitHub or GitLab. Learn branching, merging, and resolving conflicts. | Create a GitHub repository for the Task Manager API and invite collaborators to simulate a team workflow. | [ ] |
19 | | **Week 10** | **API Optimization and Security** | Explore caching, rate limiting, and securing APIs against common threats (e.g., SQL injection, CSRF, XSS). | Add rate limiting and input sanitization to the Task Manager API to enhance security and performance. | [ ] |
20 |
21 | ---
22 |
23 | ### **Detailed Project Descriptions**
24 |
25 | 1. **To-Do List App**
26 | - A beginner-friendly project to practice JavaScript fundamentals.
27 | - Features: Add, delete, mark complete, and save tasks using `localStorage`.
28 | - Focus: Event handling and DOM manipulation.
29 |
30 | 2. **File System App**
31 | - CLI-based project to interact with the file system using Node.js.
32 | - Features: Read/write files, create directories, handle large files with streams.
33 | - Focus: Working with Node.js modules and the file system.
34 |
35 | 3. **Simple Blog API**
36 | - RESTful API for managing blog posts.
37 | - Features: CRUD operations, error handling, and middleware for logging.
38 | - Focus: Routing and Express.js middleware.
39 |
40 | 4. **Student Database**
41 | - A project to practice MongoDB CRUD operations with Mongoose schema validation.
42 | - Features: Add, update, delete, and query student records.
43 | - Focus: Schema design and database interaction.
44 |
45 | 5. **Task Manager API**
46 | - An advanced RESTful API project for managing user tasks.
47 | - Features: User authentication, CRUD operations, and rate limiting for security.
48 | - Focus: Authentication, API design, and optimization.
49 |
--------------------------------------------------------------------------------
/beginners-guide.md:
--------------------------------------------------------------------------------
1 | # Roadmap for Coding Expertise, Hackathon Success, and High Placements
2 |
3 | | **Stage** | **Key Focus Areas** | **Actionable Steps** | **Resources/Tools** | **Expected Timeline** |
4 | |-------------------------|-------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------|-----------------------|
5 | | **Stage 1: Fundamentals (0-3 Months)** | Master basic programming concepts | - Learn core programming concepts (variables, loops, conditionals, functions) | - [Codecademy](https://www.codecademy.com/) - Python, JavaScript, C++ | 1-2 months |
6 | | | Deepen understanding of data structures & algorithms | - Implement simple data structures (arrays, linked lists, stacks, queues)
- Learn algorithm basics (sorting, searching) | - [LeetCode](https://leetcode.com/)
- [GeeksforGeeks](https://www.geeksforgeeks.org/) | 1-2 months |
7 | | | Version Control & Git | - Learn how to use Git and GitHub (basic commands, branching, pull requests) | - [GitHub Guides](https://guides.github.com/) | 1 month |
8 | | | Basic problem solving (coding challenges) | - Solve daily problems on platforms like [HackerRank](https://www.hackerrank.com/) or [Codeforces](https://codeforces.com/) | - HackerRank, Codeforces, LeetCode | Ongoing |
9 | | **Stage 2: Intermediate (3-6 Months)** | Object-Oriented Programming (OOP) and advanced algorithms | - Learn OOP principles (classes, inheritance, polymorphism) | - [Udemy](https://www.udemy.com/)
- [Coursera](https://www.coursera.org/) | 2-3 months |
10 | | | Build intermediate projects (e.g., to-do list, basic CRUD app) | - Develop simple applications using the concepts you've learned. Build with HTML, CSS, JS for web or Python for backend applications. | - [Flask](https://flask.palletsprojects.com/)
- [Django](https://www.djangoproject.com/) | 2-3 months |
11 | | | Participate in online coding competitions & hackathons (small local events) | - Start with small, local hackathons. Learn how to handle time pressure and collaborate. | - [Devpost](https://devpost.com/)
- [Hackathon.com](https://www.hackathon.com/) | 1-2 months |
12 | | | Begin learning a popular framework (e.g., React.js for front-end, Flask/Django for backend) | - Pick a framework based on interest. Build a project, e.g., a personal website with React or a blog app with Flask. | - React Docs, [Django Docs](https://www.djangoproject.com/) | 2-3 months |
13 | | **Stage 3: Advanced (6-12 Months)** | Deep dive into system design, advanced data structures & algorithms | - Learn system design (load balancing, microservices)
- Study advanced algorithms (dynamic programming, graph theory, etc.) | - [System Design Primer](https://github.com/donnemartin/system-design-primer) | 3-4 months |
14 | | | Work on more complex projects (e.g., full-stack applications, ML models) | - Implement full-stack projects (front-end + back-end)
- Start working on machine learning models (if interested) | - [TensorFlow](https://www.tensorflow.org/)
- [Express.js](https://expressjs.com/) | 3-4 months |
15 | | | Participate in high-level hackathons (national/global) | - Join well-known hackathons. Develop teamwork and problem-solving under time pressure. Keep refining your coding and project skills. | - [HackMIT](https://hackmit.org/)
- [Major League Hacking](https://mlh.io/) | 1-2 months |
16 | | **Stage 4: Expert (12+ Months)** | Master a specialized domain (AI/ML, blockchain, etc.) | - Focus on one domain of interest (e.g., machine learning, blockchain, game development) and deepen your understanding. | - [Fast.ai](https://www.fast.ai/)
- [Blockchain by Coursera](https://www.coursera.org/learn/blockchain) | 3-6 months |
17 | | | Contribute to open-source and personal brand building | - Contribute to high-impact open-source projects.
- Create a portfolio of your work on GitHub and share technical content on LinkedIn, Medium, or Dev.to. | - [GitHub](https://github.com/)
- [Medium](https://medium.com/) | 3-6 months |
18 | | | Regularly attend hackathons, network with industry experts | - Attend major hackathons, network with mentors and other developers. Build a reputation within the community. | - [LinkedIn](https://www.linkedin.com/)
- [Twitter](https://twitter.com/) | Ongoing |
19 | | | Focus on high-level competitive programming and interview preparation | - Prepare for tech interviews with a focus on problem-solving and system design. Solve competitive programming problems regularly. | - [Cracking the Coding Interview](https://www.crackingthecodinginterview.com/) | Ongoing |
20 | | **Stage 5: Mastery & Networking (Ongoing)** | Broaden knowledge, refine skills, and build an expert network | - Keep mastering advanced technologies. Participate in tech conferences, coding bootcamps, or webinars. | - [TechMeetups](https://www.techmeetups.com/)
- [Meetup.com](https://www.meetup.com/) | Ongoing |
21 | | | Lead hackathons or projects, mentor others | - Take the lead in hackathons or contribute as a mentor. Teach others through workshops, blogs, or tutorials. | - [YouTube](https://www.youtube.com/)
- [Medium](https://medium.com/) | Ongoing |
22 |
23 |
--------------------------------------------------------------------------------
/Aptitude.md:
--------------------------------------------------------------------------------
1 | **Roadmap to Aptitude for Campus Placements**
2 |
3 | **Importance of Aptitude Tests in Placements**
4 |
5 | Aptitude tests play a crucial role in the placement process, particularly for evaluating candidates' logical and analytical skills. These tests are essential for both on-campus and off-campus hiring, as they help recruiters sort candidates based on their abilities.
6 |
7 | **Components of the Selection Process:**
8 |
9 | 1. **Aptitude Test**: Evaluates logical reasoning, quantitative aptitude, data interpretation, and verbal ability.
10 | 2. **Coding Round/Group Discussion**: Tests technical skills and teamwork.
11 | 3. **Multiple Face-to-Face Interviews**: Includes technical and HR rounds to assess overall fit for the role.
12 |
13 | **Key Aspects of Aptitude Tests:**
14 |
15 | - **Skill Assessment**: Aptitude tests determine an individual's strengths and weaknesses, providing insights into their potential for success in various roles.
16 | - **Employability Evaluation**: They assess the employability skills of candidates, helping recruiters identify suitable graduates.
17 | - **Differentiation**: Strong aptitude skills enable candidates to stand out in a competitive job market.
18 |
19 | **Focus on Aptitude Tests**
20 |
21 | Aptitude tests are a critical component of the selection process, assessing candidates' skills in various areas. The following topics are typically included in the aptitude test:
22 |
23 | **Quantitative Aptitude**
24 |
25 | - Numbers
26 | - LCM and HCF
27 | - Work and Wages
28 | - Pipes and Cisterns
29 | - Time Speed Distance
30 | - Trains, Boats, and Streams
31 | - Percentages
32 | - Ratio Proportion and Partnership
33 | - Mixtures and Allegation
34 | - Algebra
35 | - Average
36 | - Age
37 | - Profit and Loss
38 | - Simple Interest
39 | - Compound Interest
40 | - Mensuration 2D
41 | - Mensuration 3D
42 | - Trigonometry & Height and Distances
43 | - Progressions
44 | - Logarithms
45 | - Permutation and Combination
46 | - Probability
47 | - Geometry
48 | - Clocks
49 | - Calendars
50 | - Coding-Decoding
51 | - Race
52 | - Simplification and Approximation
53 |
54 | **Verbal Ability**
55 |
56 | - Passage/Sentence Rearrangement
57 | - Error Detection and Correction
58 | - Fill in the Blanks
59 | - Comprehension Passages
60 | - Cloze Test
61 | - Jumbled Words/Paragraphs
62 | - Antonyms and Synonyms
63 | - Idioms and Phrases
64 | - Vocabulary and Grammar
65 | - One Word Substitution
66 |
67 | **Logical Reasoning**
68 |
69 | - Series: Missing Numbers, Odd One Out
70 | - Data Sufficiency
71 | - Assumptions and Conclusions, Courses of Action
72 | - Puzzles
73 | - Syllogism
74 | - Cubes
75 | - Alphanumeric Series
76 | - Reasoning Analogy
77 | - Blood Relations
78 | - Calendars
79 | - Clocks
80 | - Dices
81 | - Deductive Reasoning/Statement Analysis
82 |
83 | | **Section** | **Topic** | **Prerequisites** | **Learning Focus** |
84 | | --- | --- | --- | --- |
85 | | **Quantitative Analysis** | **Time, Speed, Distance** | Basic Arithmetic, Ratios, Proportions | Focus on solving problems related to relative speed, average speed, and various time-distance relations. |
86 | | | **Work & Wages** | Basic Arithmetic, Ratios, Proportions | Focus on work efficiency, work allocation, and solving problems involving workers, wages, and time. |
87 | | | **Profit & Loss** | Basic Arithmetic, Percentages | Focus on solving problems involving cost price, selling price, profit, loss, and percentage calculations. |
88 | | | **Simple & Compound Interest** | Basic Arithmetic, Percentages, Algebra | Focus on formulae applications, compound interest, and simple interest problems, and solving related questions. |
89 | | | **Ratio & Proportions** | Basic Arithmetic, Fractions | Focus on solving problems involving ratios, proportions, and partnerships. |
90 | | | **Averages** | Basic Arithmetic, Percentages | Focus on calculating mean, median, mode, and solving related average problems. |
91 | | | **Number Series** | Basic Number Theory, Pattern Recognition | Focus on identifying patterns, solving missing number series, and finding the next or previous terms. |
92 | | | **Permutation & Combination** | Basic Arithmetic, Factorials, Algebra | Focus on understanding counting principles, permutations, combinations, and applying these in various problems. |
93 | | | **Probability** | Basic Arithmetic, Combinations, Permutations | Focus on solving problems related to probability theory, conditional probability, and probability distributions. |
94 | | | **Data Interpretation** | Basic Graphs, Tables, Arithmetic | Focus on interpreting data from tables, bar charts, pie charts, line graphs, and solving related questions. |
95 | | | **Geometry & Mensuration** | Basic Geometry, Algebra, Trigonometry | Focus on 2D and 3D figures, areas, volumes, surface areas, theorems, and solving geometry-based problems. |
96 | | **Verbal Ability** | **Reading Comprehension** | Vocabulary, Grammar, Comprehension skills | Focus on understanding passages, answering questions based on context, and identifying key details. |
97 | | | **Sentence Correction** | English Grammar (Tenses, Parts of Speech) | Focus on correcting grammatical errors in sentence structure, punctuation, and syntax. |
98 | | | **Para Jumbles** | Sentence Formation, Grammar | Focus on arranging mixed sentences into a coherent paragraph, understanding logical flow. |
99 | | | **Fill in the Blanks** | Vocabulary, Contextual Understanding | Focus on completing sentences with the appropriate words based on grammar and context. |
100 | | | **Synonyms & Antonyms** | Vocabulary | Focus on understanding word meanings, recognizing relationships between words, and solving synonym/antonym questions. |
101 | | | **Spotting Errors** | English Grammar (Tenses, Articles, Prepositions) | Focus on identifying and correcting errors related to grammar, sentence construction, and punctuation. |
102 | | **Logical Reasoning** | **Blood Relations** | Logical Thinking, Family Relations | Focus on solving problems related to family relationships, identifying patterns in family trees. |
103 | | | **Direction Sense** | Logical Thinking, Basic Geometry | Focus on solving problems related to directions, distance calculations, and positioning. |
104 | | | **Seating Arrangements** | Logical Thinking, Spatial Awareness | Focus on solving seating arrangement puzzles, understanding positions and relationships between people. |
105 | | | **Puzzles** | Logical Thinking, Pattern Recognition | Focus on solving puzzles that require logical thinking, pattern recognition, and step-by-step analysis. |
106 | | | **Syllogisms** | Venn Diagrams, Basic Logic | Focus on understanding logical relations, drawing conclusions based on premises, and evaluating statements. |
107 | | | **Coding-Decoding** | Pattern Recognition, Letter Series | Focus on decoding patterns, letter shifts, number-to-letter relationships, and solving encoding/decoding puzzles. |
108 | | | **Input-Output** | Logical Thinking, Mathematical operations | Focus on solving problems that require step-by-step logical operations or sequences to reach a final result. |
109 | | | **Statement & Assumptions** | Analytical Thinking, Argument Evaluation | Focus on identifying assumptions, evaluating statements, and determining the validity of arguments. |
110 | | | **Cause & Effect** | Logical Reasoning, Critical Thinking | Focus on understanding cause-effect relationships, recognizing patterns, and evaluating statements. |
111 |
112 | **Additional Practice Platforms**
113 |
114 | - **Online Platforms:**
115 | - Unacademy
116 | - _TalentSprint_
117 | - _Cucumber Academy_
118 | - _CodeSignal_
119 | - _HackerRank_ (for quantitative and logical problems)
120 | - _Coursera_ (for specific placement prep courses)
121 | - _PrepInsta_
122 |
123 | **Resources for Quantitative Analysis and Logical Reasoning**
124 |
125 | 1. By Akshita Agarwal -
126 | 2. By Avinash Singh -
127 | 3. Mera Placement Hoga Channel on YouTube -
128 |
--------------------------------------------------------------------------------
/CP.md:
--------------------------------------------------------------------------------
1 | COMPETITIVE PROGRAMMING
2 |
3 | Competitive programming is a thrilling mind sport where individuals or teams compete to solve complex programming problems efficiently within a specified time limit. The primary objective is to develop optimized solutions to given challenges while adhering to the constraints of time and resources.
4 |
5 | **Why dive into competitive programming?**
6 |
7 | - **Sharpen Your Mind:** Boosts mental agility and quick thinking under time constraints.
8 | - **Feel the Thrill:** Experience the excitement of solving tough challenges and building confidence.
9 | - **Career Boost:** Opens doors to top tech jobs—Google, Atlassian, and others recruit through coding contests.
10 | - **Learn & Grow:** Master algorithms, data structures, and problem-solving techniques.
11 | - **Level Up as a Programmer:** Tackle real-world challenges and enhance your programming skills.
12 | - **Build Connections:** Join coding communities, access mentorship, and unlock career opportunities.
13 |
14 | **Prerequisites: Basic Programming Knowledge**
15 |
16 | Before you jump into the world of competitive programming, it’s important to have a strong grasp of programming fundamentals. Here are key concepts to master:
17 |
18 | - **Variables and Data Types:** Understanding how to store and manipulate different types of data (e.g., integers, floats, characters, etc.).
19 |
20 |
21 |
22 | - **Functions:** Being able to break down problems into smaller tasks using functions will help in organizing and reusing code.
23 |
24 |
25 |
26 | - **Basic Data Structures:** Familiarity with arrays, lists, stacks, queues, and linked lists is crucial for solving most problems efficiently.
27 |
28 |
29 |
30 | **Languages to Choose for Competitive Programming**
31 |
32 | Before jumping into competitive programming, selecting the right language is key. Some of the most commonly used languages are:
33 |
34 | - C++ :
35 |
36 | 1. Fast execution
37 | 2. Rich library support (STL)
38 | 3. Memory management (pointers, manual allocation)
39 |
40 |
41 |
42 | - Java
43 |
44 | 1. Strong object-oriented principles
45 | 2. Automatic memory management (Garbage Collection)
46 | 3. Faster than Python but slower than C++ for competitive programming
47 |
48 |
49 |
50 | - Python
51 |
52 | 1. Easy-to-read syntax
53 | 2. Extensive libraries
54 | 3. Great for quick prototyping and simpler problems
55 |
56 |
57 |
58 | **IDEs and Online IDEs**
59 |
60 | On most competitive programming platforms, you'll need to write code directly in their integrated development environment (IDE). However, you can also use your own IDE for practice and problem-solving before submitting your solutions. Some popular IDEs include:
61 |
62 | - Visual Studio Code (VSCode)
63 | - IntelliJ IDEA
64 | - PyCharm.
65 | - GeeksforGeeks IDE
66 |
67 | **Key Topics to Learn for Competitive Programming**
68 |
69 | _Beginner Level:_
70 |
71 | - Input/Output and basic syntax.
72 | - Conditional statements and loops.
73 | - Arrays, strings, and basic data structures.
74 |
75 | _Intermediate Level:_
76 |
77 | - Recursion and backtracking.
78 | - Sorting and searching algorithms.
79 | - Bit Manipulation
80 | - Hashing and basic combinatorics.
81 |
82 | _Advanced Level:_
83 |
84 | - Graph algorithms (DFS, BFS, Dijkstra, etc.).
85 | - Dynamic Programming.
86 | - Segment Trees and Fenwick Trees.
87 | - Advanced Mathematics (Number Theory, Modular Arithmetic).
88 | - To deepen your understanding and practice the topics mentioned above, check out the **GeeksforGeeks-MITADT GitHub Repository** (under DSA section). [https://github.com/GeeksforGeeks-MITADT/Resources.git](%20https:/github.com/GeeksforGeeks-MITADT/Resources.git%20)
89 |
90 | _Time and Space Complexity:_
91 |
92 | Understanding the efficiency of algorithms is crucial for competitive programming. Algorithm analysis involves evaluating both time and space complexity to ensure solutions are optimal. In competitive programming, time complexity and space complexity are crucial concepts:
93 |
94 | - **Time complexity** measures the amount of time an algorithm takes to run as a function of the input size. It helps evaluate how the running time of an algorithm increases as the size of the input grows, focusing on operations like loops, comparisons, and recursive calls
95 | - **Space complexity** measures the amount of memory an algorithm uses relative to the input size. It includes the space needed for variables, data structures, and recursive calls.
96 |
97 |
98 |
99 | **Top Platforms for Practicing Competitive Programming**
100 |
101 | Below is a list of the top 10 coding practice platforms:
102 |
103 | 1\. GeeksforGeeks
104 |
105 | 2\. TopCoder
106 |
107 | 3\. HackerRank
108 |
109 | 4\. International Collegiate Programming Contest (ICPC)
110 |
111 | 5\. CodeChef
112 |
113 | 6\. LeetCode
114 |
115 | 7\. Codeforces
116 |
117 | 8\. AtCoder
118 |
119 | 9\. Codewars
120 |
121 | 10\. CodinGame
122 |
123 | **Problem-Solving Techniques**
124 |
125 | _Understanding Time and Space Complexity:_
126 |
127 | - When solving problems, it is essential to balance time and space complexity. Some algorithms may run faster but use more memory, while others may use less memory but take longer to execute.
128 |
129 | _Constraints and Execution Time:_
130 |
131 | - Most competitive programming problems have strict time limits, often around 1-2 seconds. Brute force solutions, which try all possible combinations or permutations, typically exceed these limits for large inputs.
132 | - For example, checking all subsets of a set with size NNN (brute force) has 2N2^N2N complexity, which becomes infeasible even for moderate NNN values like 20 or 30.
133 |
134 | _Efficiency for Large Inputs:_
135 |
136 | - Optimized solutions reduce unnecessary calculations, making them scalable to handle millions or billions of inputs effectively.
137 |
138 | **Competitive Programming Contests**
139 |
140 | Once you have practiced enough problems and built confidence, you can participate in the following contests to test and enhance your skills:
141 |
142 | 1. **Codeforces:**
143 | Codeforces hosts regular contests such as Div. 1, Div. 2, and Div. 3. It’s known for a variety of problem difficulties, a fast-paced environment, and a helpful community.
144 | 2. **GeeksforGeeks (GFG):**
145 | GeeksforGeeks regularly hosts coding contests like Weekly and Monthly Challenges, focusing on a wide range of topics from basic programming to advanced data structures and algorithms.
146 | 3. **LeetCode:**
147 | Weekly and Biweekly contests are available to test problem-solving and debugging skills, often with real-world interview-style problems.
148 | 4. **HackerRank:**
149 | Offers skill-based contests, including 30-day challenges and coding competitions focused on specific algorithms and data structures.
150 |
151 | **Mastering the Art of Contest Question Solving**
152 |
153 | - _Read All Questions First:_
154 |
155 | 1. Quickly skim through all the problems to understand their difficulty levels. Start with the easiest problem to gain confidence and secure points.
156 | 2. Avoid spending too much time on a single problem initially; move on and return later if needed.
157 |
158 | - _Understand the Problem Thoroughly:_
159 |
160 | 1. Carefully read the problem statement, constraints, and input/output format. Misunderstanding the question can lead to wasted effort on incorrect solutions.
161 | 2. Note edge cases or special conditions mentioned in the problem.
162 |
163 | - _Plan Before You Code:_
164 |
165 | 1. Think through the logic and approach. Identify whether the problem can be solved with brute force or requires an optimized algorithm.
166 | 2. Write down the steps or pseudocode if necessary to avoid confusion while coding.
167 |
168 | - _Test with Custom Cases:_
169 |
170 | 1. Before submitting, test your solution with edge cases and boundary conditions to ensure correctness.
171 |
172 | **Missteps to Watch Out For**
173 |
174 | - _Ignoring Edge Cases:_
175 |
176 | 1. Not accounting for edge cases like empty arrays, single-element inputs, or large numbers can lead to incorrect results.
177 | 2. Always consider the smallest and largest possible values in the constraints.
178 |
179 | - _Overlooking Constraints:_
180 |
181 | 1. Failing to analyze constraints can lead to inefficient solutions that exceed time limits. Always design your algorithm to handle the largest input sizes within the given constraints.
182 |
183 | _Spending Too Much Time on One Problem:_
184 |
185 | 1. Getting stuck on a single problem can cost valuable time. If you’re not making progress, move to the next problem and revisit it later.
186 |
187 | **Key Takeaways You Can’t Miss**
188 |
189 | - - _Practice Regularly:_
190 |
191 | 1. Solve problems on online coding platforms such as GeeksforGeeks, Codeforces, HackerRank, or LeetCode.
192 | 2. Start with easy problems and gradually move to medium and hard difficulty levels.
193 |
194 | - _Participate in Contests:_
195 |
196 | 1. Join online coding contests on platforms like Codeforces, AtCoder, or HackerRank.
197 | 2. Set aside specific times for practice contests to simulate real competition conditions.
198 |
199 | - _Analyze and Optimize Your Solutions:_
200 | 1. After solving a problem, analyze your solution for efficiency and correctness.
201 | 2. Explore different approaches and optimize your code.
202 | - _Learn Time Management:_
203 | 1. Practice solving problems within time limits.
204 | 2. Develop a sense of when to switch approaches or move on to the next problem during a contest.
205 | - _Stay Consistent and Persevere:_
206 | 1. Regular, consistent practice is key to improvement.
207 | 2. Embrace challenges and setbacks as opportunities to learn and grow.
208 |
--------------------------------------------------------------------------------
/dsa-vs-dev.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # **2-Year Weekly Plan To Learn DSA and Development**
4 |
5 | _This roadmap provides a structured, week-by-week plan for learning DSA fundamentals, exploring development areas, mastering specialization, building projects, and preparing for hackathons and internships._
6 |
7 | ---
8 |
9 | ## **Year 1**
10 |
11 | ### **Months 1-3: DSA Basics (Arrays, Strings, Linked Lists, Stacks, Queues)**
12 | | **Week** | **Focus** | **Description** | **Resources** |
13 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
14 | | 1-2 | **Arrays & Strings** | Learn array operations, string manipulation. | GeeksforGeeks, LeetCode |
15 | | 3-4 | **Linked Lists** | Single, doubly, circular linked lists. | HackerRank, YouTube |
16 | | 5-6 | **Stacks & Queues** | Implement and solve problems on stacks and queues. | CodeChef, freeCodeCamp |
17 | | 7-8 | **Recap & Revision** | Review topics, solve additional problems, and revise key concepts. | Practice on LeetCode, HackerRank |
18 | | 9-10 | **Mock Contests** | Participate in mock contests to improve problem-solving speed. | Codeforces, AtCoder |
19 |
20 | ### **Months 4-5: Intermediate DSA (Recursion, Trees, Hashing)**
21 | | **Week** | **Focus** | **Description** | **Resources** |
22 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
23 | | 11-12 | **Recursion** | Learn basic to advanced recursion, backtracking. | GeeksforGeeks, LeetCode |
24 | | 13-14 | **Trees** | Study binary trees, BST, tree traversals. | YouTube - freeCodeCamp, HackerRank |
25 | | 15-16 | **Hashing** | Master hashing and its applications in problems. | Codeforces, CodeChef |
26 | | 17-18 | **Recap & Problem Solving** | Solve problems combining recursion, trees, and hashing concepts. | LeetCode, AtCoder |
27 |
28 | ### **Months 6-8: Advanced DSA (Heaps, Graphs, Dynamic Programming)**
29 | | **Week** | **Focus** | **Description** | **Resources** |
30 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
31 | | 19-20 | **Heaps** | Understand heaps, priority queues, and their applications. | YouTube - Abdul Bari, GeeksforGeeks |
32 | | 21-24 | **Graphs** | Study graph traversal (BFS, DFS), shortest paths, topological sort. | GeeksforGeeks, LeetCode |
33 | | 25-28 | **Dynamic Programming** | Solve fundamental DP problems, focus on understanding state relations. | LeetCode, CodeChef, HackerRank |
34 |
35 | ### **Months 9-10: DSA Revision & Mock Contests**
36 | | **Week** | **Focus** | **Description** | **Resources** |
37 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
38 | | 29-34 | **Weekly Revision** | Weekly review of DSA concepts and practice. | LeetCode, Codeforces, AtCoder |
39 | | 35-36 | **Mock Contests** | Participate in mock contests, focusing on time complexity and optimization. | Codeforces, AtCoder |
40 |
41 | ### **Months 11-12: Intro to Development (Explore Frontend, Backend, Mobile, ML)**
42 | | **Week** | **Focus** | **Description** | **Resources** |
43 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
44 | | 37-40 | **Frontend (Web)** | Learn HTML, CSS, JavaScript basics. | freeCodeCamp, Codecademy |
45 | | 41-42 | **Backend (Web)** | Introduction to Node.js or Flask for backend basics. | YouTube, freeCodeCamp |
46 | | 43-44 | **Mobile** | Try out React Native or Flutter for mobile development basics. | YouTube, Udemy |
47 | | 45-46 | **Machine Learning Basics** | Introduction to ML with Python basics (NumPy, Pandas). | Coursera, YouTube |
48 | | 47-48 | **Mini Project** | Build a simple project combining DSA knowledge and a development area of interest. | GitHub |
49 |
50 | ---
51 |
52 | ## **Year 2**
53 |
54 | ### **Months 13-15: Development Specialization (Pick One: Web, Mobile, ML)**
55 | | **Week** | **Focus** | **Description** | **Resources** |
56 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
57 | | 49-52 | **Core Development Skills** | Study in-depth skills in your chosen specialization. | Udemy, Coursera |
58 | | 53-55 | **Tooling & Frameworks** | Master frameworks and tools related to your specialization. | YouTube, official documentation |
59 | | 56-60 | **Project Creation** | Build a more complex project using these skills (e.g., a full-stack app or ML model). | GitHub, Stack Overflow |
60 |
61 | ### **Months 16-17: Advanced DSA (Competitive Coding)**
62 | | **Week** | **Focus** | **Description** | **Resources** |
63 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
64 | | 61-64 | **Competitive Coding** | Solve timed problems weekly to develop speed and strategy. | Codeforces, AtCoder |
65 | | 65-68 | **Optimization & Complexity** | Focus on time-space complexity, code efficiency, and memory optimization. | TopCoder, CodeChef |
66 |
67 | ### **Months 18-20: Specialized Project Building**
68 | | **Week** | **Focus** | **Description** | **Resources** |
69 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
70 | | 69-76 | **Specialized Projects** | Build 2-3 advanced projects aligned with your specialization, like e-commerce or ML model. | GitHub, GitLab |
71 |
72 | ### **Months 21-22: Portfolio & Resume Building**
73 | | **Week** | **Focus** | **Description** | **Resources** |
74 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
75 | | 77-78 | **Portfolio Creation** | Create a personal website or GitHub portfolio to showcase projects. | GitHub Pages, Medium |
76 | | 79-82 | **Resume Building & Networking** | Start networking, updating your resume, and reaching out to mentors on LinkedIn. | LinkedIn, Medium |
77 |
78 | ### **Months 23-24: Hackathon Prep & Internship Applications**
79 | | **Week** | **Focus** | **Description** | **Resources** |
80 | |----------|-------------------------------|---------------------------------------------------------------------------------------------|------------------------------------------------------------|
81 | | 83-88 | **Hackathon Preparation** | Form teams and practice hackathon-like challenges; focus on rapid prototyping. | Devpost, MLH |
82 | | 89-92 | **Internship Applications** | Apply for internships, practice technical interviews, review DSA and project experience. | LinkedIn, Glassdoor |
83 |
84 | ---
85 |
86 | ## 📌 **Additional Tips & Resources**
87 |
88 | 1. **Platforms for DSA**: LeetCode, Codeforces, CodeChef, HackerRank.
89 | 2. **Development Tutorials**: Use YouTube, Udemy, and freeCodeCamp based on your area of interest.
90 | 3. **Networking**: Connect on GitHub, Stack Overflow, and LinkedIn.
91 | 4. **Hackathons**: Regularly check Devpost and MLH for opportunities.
92 |
93 | ---
94 |
95 | ## 🔥 **Goal Milestones**
96 |
97 | - **6 Months**: Solid foundation in DSA basics.
98 | - **1 Year**: Mini project and understanding of development fields.
99 | - **1.5 Years**: Development specialization and advanced DSA.
100 | - **2 Years**: Comprehensive portfolio, internship readiness, and hackathon experience.
101 |
102 | ---
103 |
104 | Good luck with this journey! Stay consistent, enjoy each milestone, and strive to make every project a memorable learning experience. 🎉
105 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | | **Month** | **Goals** | **Activities** | **Resources** | **Checklist** |
4 | |------------------|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------|
5 | | **Year 1** | **Foundations** | | | |
6 | | **Month 1-2** | Programming Basics (Python/C++) | - Learn basic programming concepts: variables, data types, loops, and conditionals. Practice daily coding problems. | - Codecademy: Python/C++
- Sololearn | 🟢 Learn programming fundamentals |
7 | | | | - Write simple programs like a calculator or number guessing game. | - FreeCodeCamp tutorials | 🟢 Create 2 beginner projects |
8 | | **Month 3-4** | Introduction to Data Structures | - Study arrays, linked lists, stacks, and queues. Practice solving beginner-level problems. | - YouTube: William Fiset's "Data Structures Course" | 🟢 Solve 20 DSA problems |
9 | | | | - Work on a basic project (e.g., task tracker). | - FreeCodeCamp | 🟢 Build 1 DSA-related project |
10 | | **Month 5-6** | GitHub & LinkedIn Setup | - Set up GitHub and LinkedIn profiles. Post a beginner project to GitHub and connect with peers. | - GitHub Profile Optimization by Amigoscode | 🟢 Create LinkedIn and GitHub profiles |
11 | | | | - Learn Git basics: version control, commits, branches, and pull requests. | - Git tutorials on YouTube by Traversy Media | 🟢 Push first repository |
12 | | **Month 7-8** | Web Development Basics | - Learn HTML, CSS, and JavaScript. Create responsive web pages. | - freeCodeCamp: Web Development
- "HTML & CSS Crash Course" on YouTube | 🟢 Build 2 responsive web pages |
13 | | | | - Start a personal portfolio website showcasing your skills. | - freeCodeCamp Portfolio Projects | 🟢 Deploy a personal portfolio website |
14 | | **Month 9-10** | Basic Algorithms | - Study sorting algorithms like bubble sort, merge sort, and quicksort. | - YouTube: Sorting Algorithms by Tech with Tim | 🟢 Solve 10 sorting problems |
15 | | | | - Practice beginner problems on platforms like HackerRank or LeetCode. | - HackerRank and LeetCode | 🟢 Complete 30 beginner problems |
16 | | **Month 11-12** | Build and Deploy Mini Projects | - Learn the basics of deployment using platforms like Vercel or Netlify. | - YouTube: "Deploying Projects on Vercel" by Traversy Media | 🟢 Deploy a simple project online |
17 | | | | - Build a CRUD application (e.g., to-do list) using Node.js or Django. | - Traversy Media: Node.js/Django beginner tutorials | 🟢 Complete 1 full-stack project |
18 | | **Year 2** | **Intermediate Skills & Competitive Programming** | | | |
19 | | **Month 1-2** | Advanced DSA & Algorithms | - Study heaps, graphs, and tries. Practice 10 problems related to each data structure. | - Educative.io: "Ace the Coding Interview"
- Codeforces/CodeChef problem sets | 🟢 Solve 30 advanced DSA problems |
20 | | | | - Learn algorithms like Dijkstra’s, BFS/DFS, and dynamic programming (e.g., knapsack). | - YouTube: "Dynamic Programming for Beginners" | 🟢 Solve 20 algorithmic problems |
21 | | **Month 3-4** | Build Intermediate Full-Stack Projects | - Build a social media clone or blogging platform using React and Express.js (or Django). | - Traversy Media: React & Express tutorials | 🟢 Complete 1 full-stack project |
22 | | | | - Deploy the project and showcase it on LinkedIn and GitHub. | - Heroku or Vercel | 🟢 Publish project on GitHub |
23 | | **Month 5-6** | Start Hackathons | - Join beginner-friendly hackathons to gain teamwork and rapid prototyping experience. | - Devpost and MLH beginner hackathons | 🟢 Participate in 2 hackathons |
24 | | | | - Focus on solving real-world problems and presenting your solutions. | - "Pitching Ideas Effectively" tutorials on YouTube | 🟢 Build hackathon projects |
25 | | **Month 7-8** | Internship Preparation | - Apply for internships on LinkedIn, AngelList, and Internshala. | - Internshala/LinkedIn | 🟢 Apply to 20+ internships |
26 | | | | - Focus on mock interviews, behavioral questions, and system design concepts. | - Pramp or Interviewing.io | 🟢 Conduct 2 mock interviews |
27 | | **Month 9-12** | Competitive Programming | - Aim to solve 200 problems on Codeforces/LeetCode. Participate in weekly contests. | - Codeforces & LeetCode | 🟢 Solve 100+ problems |
28 | | | | - Refine problem-solving speed and techniques. | - YouTube: Competitive Programming by Errichto | 🟢 Improve contest ranking |
29 | | **Year 3** | **Advanced Skills & Placement** | | | |
30 | | **Month 1-2** | Advanced System Design | - Study concepts like caching, load balancing, and scalability. | - GitHub: "System Design Primer"
- YouTube: "System Design for Interviews" | 🟢 Learn key system design concepts |
31 | | | | - Build a scalable project demonstrating these concepts. | - Udemy: Scalable Web Architecture | 🟢 Complete a system design project |
32 | | **Month 3-4** | Specialization Projects | - Choose a specialization (AI, blockchain, data science, etc.) and work on related projects. | - Coursera: Specialization Courses | 🟢 Build 2 specialization projects |
33 | | | | - Contribute to open-source projects in the chosen field. | - Hacktoberfest and GitHub Open Source | 🟢 Contribute to 3+ open-source projects |
34 | | **Month 5-6** | Placement Preparation | - Prepare for placements by solving advanced problems on LeetCode (hard level). | - LeetCode premium problem sets | 🟢 Solve 50+ hard problems |
35 | | | | - Focus on HR and technical interview preparation. | - Glassdoor and Mock Interviews | 🟢 Conduct 3 mock interviews |
36 | | **Month 7-8** | Final Placement Push | - Apply for 30LPA+ opportunities. | - LinkedIn, AngelList, and job portals | 🟢 Apply for 20+ companies |
37 | | | | - Ace interviews with a focus on coding, system design, and behavioral questions. | - Pramp and Interviewing.io | 🟢 Secure placement offers |
38 |
39 | ---
40 |
--------------------------------------------------------------------------------
/full-stack.md:
--------------------------------------------------------------------------------
1 | ### Detailed Weekly Roadmap for Full-Stack Development (6 Months)
2 |
3 | | **Week** | **Focus Area** | **Goals and Skills** | **Resources/Tasks/Projects** |
4 | |----------|-----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|
5 | | 1 | **HTML, CSS, and DOM** | - Understand HTML structure, forms, and semantics.
- Learn CSS basics and responsive design.
- Explore the DOM and JavaScript integration. | - Build a static webpage.
- Add interactivity with DOM manipulation. |
6 | | 2 | **JavaScript Basics** | - Master variables, loops, functions, and arrays.
- Explore ES6 features like `let`, `const`, and arrow functions. | - Create a to-do list app.
- [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript) |
7 | | 3 | **Node.js Basics** | - Understand the JavaScript runtime environment.
- Write HTTP servers.
- Explore Node.js vs other runtimes (e.g., Bun, Cloudflare). | - Build a simple Node.js server.
- Compare runtimes. |
8 | | 4 | **HTTP Servers & Express** | - Learn HTTP basics, request-response cycle.
- Create REST APIs using Node.js and Express. | - Build a REST API for a blog platform. |
9 | | 5 | **NoSQL Databases (MongoDB)** | - Understand NoSQL concepts.
- Perform CRUD operations with MongoDB.
- Explore schema design and indexing. | - Build a database for a "Bookshelf App" using MongoDB. |
10 | | 6 | **SQL Basics** | - Learn SQL syntax.
- Perform CRUD operations with SQL databases (e.g., MySQL or PostgreSQL). | - Build a simple database for user data. |
11 | | 7 | **ORMs (Sequelize/Mongoose)** | - Learn about Object-Relational Mapping.
- Use Sequelize for SQL and Mongoose for MongoDB.
- Understand model relationships. | - Build a project that integrates Sequelize or Mongoose. |
12 | | 8 | **React Basics** | - Learn React fundamentals: JSX, components, props, and state.
- Use React Developer Tools. | - Build a task tracker app. |
13 | | 9 | **Styling React Apps** | - Style React apps using Tailwind CSS or styled-components.
- Learn responsive design in React. | - Restyle your task tracker app.
- [Tailwind CSS Docs](https://tailwindcss.com/docs) |
14 | | 10 | **TypeScript Basics** | - Learn TypeScript syntax and static typing.
- Integrate TypeScript with React.
- Explore type declarations for APIs and models. | - Refactor the task tracker app to TypeScript. |
15 | | 11 | **Next.js Basics** | - Learn server-side rendering (SSR) and static site generation (SSG).
- Build SEO-friendly apps. | - Build a blog site using Next.js. |
16 | | 12 | **Monorepos and Turborepo** | - Understand monorepos and how to organize multiple projects.
- Use Turborepo for performance optimization. | - Create a monorepo for shared libraries in React and Node.js. |
17 | | 13 | **Websockets & RTC Basics** | - Understand real-time communication with Websockets.
- Learn RTC for video/audio communication. | - Build a chat app with Websockets.
- Explore RTC for a video conferencing feature. |
18 | | 14 | **Testing Basics** | - Learn unit and integration testing.
- Use Jest and React Testing Library.
- Test APIs and frontend components. | - Write tests for your REST API and React components. |
19 | | 15 | **Authentication & JWT** | - Understand secure user authentication.
- Use JWT and cookies for session management. | - Add login/logout functionality to your blog platform. |
20 | | 16 | **Database Optimization** | - Explore database optimization techniques (e.g., indexing, query optimization). | - Optimize queries for existing projects. |
21 | | 17 | **Advanced Backend Concepts** | - Dive deeper into asynchronous programming and error handling.
- Learn middleware chaining.
- Implement complex backend logic. | - Refactor APIs with advanced features like rate limiting and complex queries. |
22 | | 18 | **Ref, Populate, and API Design** | - Use `ref` and `populate` in Mongoose for relationships.
- Learn API versioning and documentation (Swagger). | - Add relationships to your MongoDB models. |
23 | | 19 | **Advanced Frontend Features** | - Learn dynamic form handling, animations, and accessibility features in React.
- Explore Framer Motion for animations. | - Add form validation and animations to the task tracker. |
24 | | 20 | **Project Planning** | - Plan a capstone project.
- Define features, create high-level (HLD) and low-level designs (LLD). | - Create a project blueprint (e.g., e-commerce app or task tracker). |
25 | | 21 | **Capstone Backend Development** | - Build the backend for your capstone project.
- Implement CRUD APIs, authentication, and error handling. | - Set up Express.js, MongoDB, and authentication for the project. |
26 | | 22 | **Capstone Frontend Development** | - Build the frontend for your capstone project.
- Use React or Next.js for user interface.
- Style the app with Tailwind CSS. | - Integrate the backend with the frontend. |
27 | | 23 | **Real-Time Features in Capstone** | - Add real-time features using Websockets or RTC.
- Implement live chat or real-time notifications. | - Enhance the capstone app with real-time functionality. |
28 | | 24 | **Testing and Deployment** | - Test the app thoroughly.
- Deploy the app to a cloud platform (e.g., Vercel, Heroku). | - Write unit and integration tests.
- Deploy the capstone project. |
29 | | 25 | **Linting and Performance Optimization** | - Set up linting tools (e.g., ESLint, Prettier).
- Optimize frontend and backend performance.
- Learn about caching strategies. | - Add ESLint and Prettier to your projects.
- Optimize API response times and frontend load times. |
30 | | 26 | **Final Enhancements & Portfolio** | - Polish the capstone project.
- Add the project to a portfolio site.
- Prepare for interviews with projects and a resume. | - Create a personal portfolio using Next.js.
- Showcase all 10 projects in your portfolio. |
31 |
32 | ---
33 |
34 | Here’s a list of **10 project ideas** aligned with the roadmap, along with a guide to building them in a tabular format:
35 |
36 | | **Project Name** | **Description** | **Steps to Build** | **Tech Stack** |
37 | |---------------------------------|------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|----------------------------------|
38 | | **Task Tracker App** | A React app to track daily tasks with add, edit, and delete functionality. | 1. Set up React.
2. Build a task list UI.
3. Add state management with React hooks.
4. Store tasks locally. | React, CSS |
39 | | **Bookshelf App** | A MongoDB-powered app to manage a collection of books with search and CRUD operations. | 1. Set up MongoDB.
2. Create Express APIs for CRUD operations.
3. Connect backend to a React frontend. | Node.js, Express, MongoDB, React|
40 | | **Blog Platform** | A platform for users to post, edit, and delete blog entries. Includes JWT-based authentication. | 1. Build REST APIs with Express.
2. Use MongoDB or PostgreSQL for storing blogs.
3. Add authentication. | Node.js, MongoDB/PostgreSQL, React|
41 | | **Chat App** | Real-time chat app using Websockets with user authentication. | 1. Set up Websockets on the backend.
2. Implement chat UI in React.
3. Add JWT authentication. | Node.js, Websockets, React |
42 | | **E-Commerce Store** | A store with product listings, a cart system, and checkout functionality. | 1. Design product APIs.
2. Add cart logic in React.
3. Integrate Razorpay/Stripe for payments. | React, Node.js, MongoDB, Payment APIs |
43 | | **Portfolio Website** | A personal portfolio to showcase projects and skills. | 1. Use Next.js for SSR.
2. Style with Tailwind CSS.
3. Add portfolio content dynamically using JSON. | Next.js, Tailwind CSS |
44 | | **Expense Tracker** | A tool to track income and expenses with visualizations. | 1. Create React components for transactions.
2. Store data in MongoDB.
3. Visualize data using Chart.js. | React, MongoDB, Chart.js |
45 | | **Online Classroom Platform** | A platform for faculty to share documents, conduct live sessions, and create assignments. | 1. Build backend with Express.
2. Implement user roles.
3. Add WebRTC for live classes. | Node.js, WebRTC, React |
46 | | **Video Conferencing App** | A basic conferencing app using WebRTC for real-time communication. | 1. Set up WebRTC APIs.
2. Build React frontend.
3. Manage connections using signaling servers. | WebRTC, React |
47 | | **Capstone E-Commerce App** | A fully-featured app with real-time notifications, authentication, and performance optimization. | 1. Plan HLD and LLD.
2. Develop backend APIs.
3. Add Websocket-based notifications.
4. Deploy on the cloud. | Node.js, React, MongoDB, Websockets |
48 |
49 | ### Details on Building the Projects:
50 |
51 | 1. **Progressive Complexity**: Projects grow in difficulty from simple React apps (e.g., Task Tracker) to advanced, multi-featured applications (e.g., Capstone E-Commerce App).
52 | 2. **Full Stack Integration**: Emphasizes both frontend and backend skills, including databases, APIs, and real-time communication.
53 | 3. **Deployment**: Includes a deployment step (e.g., using Vercel, Heroku, or AWS) to simulate production environments.
54 |
55 | Let me know if you need detailed guides for specific projects!
56 |
--------------------------------------------------------------------------------
/DSA Plan.md:
--------------------------------------------------------------------------------
1 | # 📅 Six-Month DSA Study Plan
2 |
3 | ## Overview
4 | This structured six-month plan gradually introduces core DSA concepts and patterns, with 8-10 carefully selected practice questions each week. By the end of this plan, you’ll have covered foundational topics and advanced concepts needed for top-tier technical interviews.
5 |
6 | ---
7 | ## Month 1: Arrays and Strings
8 |
9 | ### **Week 1: Arrays Basics & Simple Patterns**
10 | - **Topics**: Two-pointer, Sliding Window, HashMap basics
11 | - **Patterns**: Prefix Sum, Running Sum
12 | - **Practice**:
13 | 1. **[Easy]** [Two Sum](https://leetcode.com/problems/two-sum/)
14 | 2. **[Easy]** [Contains Duplicate](https://leetcode.com/problems/contains-duplicate/)
15 | 3. **[Easy]** [Maximum Subarray (Kadane’s Algorithm)](https://leetcode.com/problems/maximum-subarray/)
16 | 4. **[Medium]** [Best Time to Buy and Sell Stock](https://leetcode.com/problems/best-time-to-buy-and-sell-stock/)
17 | 5. **[Medium]** [Product of Array Except Self](https://leetcode.com/problems/product-of-array-except-self/)
18 | 6. **[Medium]** [Subarray Sum Equals K](https://leetcode.com/problems/subarray-sum-equals-k/)
19 | 7. **[Medium]** [Longest Subarray with Sum K](https://practice.geeksforgeeks.org/problems/longest-sub-array-with-sum-k0809/1/)
20 | 8. **[Medium]** [Minimum Size Subarray Sum](https://leetcode.com/problems/minimum-size-subarray-sum/)
21 |
22 | ### **Week 2: Advanced Array Manipulations**
23 | - **Topics**: Sorting, Interval Overlap, Cyclic Sort
24 | - **Patterns**: Sorting + Two-pointer, Merge Intervals
25 | - **Practice**:
26 | 1. **[Easy]** [Sort Colors (Dutch National Flag Problem)](https://leetcode.com/problems/sort-colors/)
27 | 2. **[Medium]** [Merge Intervals](https://leetcode.com/problems/merge-intervals/)
28 | 3. **[Medium]** [Set Matrix Zeroes](https://leetcode.com/problems/set-matrix-zeroes/)
29 | 4. **[Medium]** [Next Permutation](https://leetcode.com/problems/next-permutation/)
30 | 5. **[Medium]** [Rotate Image](https://leetcode.com/problems/rotate-image/)
31 | 6. **[Medium]** [Find the Duplicate Number](https://leetcode.com/problems/find-the-duplicate-number/)
32 | 7. **[Medium]** [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)
33 | 8. **[Medium]** [First Missing Positive](https://leetcode.com/problems/first-missing-positive/)
34 |
35 | ### **Week 3: Strings - Basics and Manipulations**
36 | - **Topics**: HashMaps for Strings, Substrings
37 | - **Patterns**: Sliding Window, Hashing
38 | - **Practice**:
39 | 1. **[Easy]** [Longest Common Prefix](https://leetcode.com/problems/longest-common-prefix/)
40 | 2. **[Easy]** [Valid Anagram](https://leetcode.com/problems/valid-anagram/)
41 | 3. **[Medium]** [Longest Substring Without Repeating Characters](https://leetcode.com/problems/longest-substring-without-repeating-characters/)
42 | 4. **[Medium]** [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)
43 | 5. **[Medium]** [Find All Anagrams in a String](https://leetcode.com/problems/find-all-anagrams-in-a-string/)
44 | 6. **[Medium]** [Group Anagrams](https://leetcode.com/problems/group-anagrams/)
45 | 7. **[Medium]** [Longest Palindromic Substring](https://leetcode.com/problems/longest-palindromic-substring/)
46 | 8. **[Medium]** [Decode Ways](https://leetcode.com/problems/decode-ways/)
47 |
48 | ### **Week 4: Advanced String Manipulations**
49 | - **Topics**: Substrings and Subsequence
50 | - **Patterns**: Two-pointer, Dynamic Programming (DP) for Strings
51 | - **Practice**:
52 | 1. **[Easy]** [Implement strStr()](https://leetcode.com/problems/implement-strstr/)
53 | 2. **[Medium]** [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/)
54 | 3. **[Medium]** [Edit Distance](https://leetcode.com/problems/edit-distance/)
55 | 4. **[Medium]** [Palindromic Substrings](https://leetcode.com/problems/palindromic-substrings/)
56 | 5. **[Medium]** [Partition Labels](https://leetcode.com/problems/partition-labels/)
57 | 6. **[Hard]** [Minimum Window Substring](https://leetcode.com/problems/minimum-window-substring/)
58 | 7. **[Hard]** [Substring with Concatenation of All Words](https://leetcode.com/problems/substring-with-concatenation-of-all-words/)
59 | 8. **[Hard]** [Wildcard Matching](https://leetcode.com/problems/wildcard-matching/)
60 |
61 | ---
62 |
63 | ## Month 2: Linked Lists and Binary Trees
64 |
65 | ### **Week 1: Linked Lists Basics**
66 | - **Topics**: Singly and Doubly Linked Lists, Basic Operations
67 | - **Patterns**: Two-pointer, Fast & Slow Pointers
68 | - **Practice**:
69 | 1. **[Easy]** [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/)
70 | 2. **[Easy]** [Middle of the Linked List](https://leetcode.com/problems/middle-of-the-linked-list/)
71 | 3. **[Medium]** [Linked List Cycle](https://leetcode.com/problems/linked-list-cycle/)
72 | 4. **[Medium]** [Intersection of Two Linked Lists](https://leetcode.com/problems/intersection-of-two-linked-lists/)
73 | 5. **[Medium]** [Add Two Numbers](https://leetcode.com/problems/add-two-numbers/)
74 | 6. **[Medium]** [Remove N-th Node from End](https://leetcode.com/problems/remove-nth-node-from-end-of-list/)
75 | 7. **[Medium]** [Flatten a Multilevel Doubly Linked List](https://leetcode.com/problems/flatten-a-multilevel-doubly-linked-list/)
76 | 8. **[Hard]** [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/)
77 |
78 | ### **Week 2: Advanced Linked Lists**
79 | - **Topics**: Complex List Manipulations, Reversal in Groups
80 | - **Patterns**: Fast & Slow Pointers, Recursive Linked List
81 | - **Practice**:
82 | 1. **[Medium]** [Reverse Nodes in k-Group](https://leetcode.com/problems/reverse-nodes-in-k-group/)
83 | 2. **[Medium]** [Rotate List](https://leetcode.com/problems/rotate-list/)
84 | 3. **[Medium]** [Copy List with Random Pointer](https://leetcode.com/problems/copy-list-with-random-pointer/)
85 | 4. **[Medium]** [Partition List](https://leetcode.com/problems/partition-list/)
86 | 5. **[Medium]** [LRU Cache](https://leetcode.com/problems/lru-cache/)
87 | 6. **[Hard]** [LRU Cache](https://leetcode.com/problems/lru-cache/)
88 | 7. **[Hard]** [Reverse Nodes in k-Group](https://leetcode.com/problems/reverse-nodes-in-k-group/)
89 | 8. **[Hard]** [Insert into a Cyclic Sorted List](https://leetcode.com/problems/insert-into-a-cyclic-sorted-list/)
90 |
91 | ### **Week 3: Binary Trees Basics**
92 | - **Topics**: Binary Tree Traversals (Inorder, Preorder, Postorder)
93 | - **Patterns**: DFS and BFS Traversals
94 | - **Practice**:
95 | 1. **[Easy]** [Binary Tree Inorder Traversal](https://leetcode.com/problems/binary-tree-inorder-traversal/)
96 | 2. **[Easy]** [Binary Tree Preorder Traversal](https://leetcode.com/problems/binary-tree-preorder-traversal/)
97 | 3. **[Easy]** [Binary Tree Postorder Traversal](https://leetcode.com/problems/binary-tree-postorder-traversal/)
98 | 4. **[Medium]** [Binary Tree Level Order Traversal](https://leetcode.com/problems/binary-tree-level-order-traversal/)
99 | 5. **[Medium]** [Binary Tree Zigzag Level Order Traversal](https://leetcode.com/problems/binary-tree-zigzag-level-order-traversal/)
100 | 6. **[Medium]** [Binary Tree Right Side View](https://leetcode.com/problems/binary-tree-right-side-view/)
101 | 7. **[Medium]** [Binary Tree Left Side View](https://leetcode.com/problems/binary-tree-left-side-view/)
102 | 8. **[Medium]** [Binary Tree Maximum Path Sum](https://leetcode.com/problems/binary-tree-maximum-path-sum/)
103 |
104 | ### **Week 4: Advanced Trees**
105 | - **Topics**: Tree Properties, Recursive & Iterative Solutions
106 | - **Patterns**: Depth-First Search, Breadth-First Search
107 | - **Practice**:
108 | 1. **[Easy]** [Symmetric Tree](https://leetcode.com/problems/symmetric-tree/)
109 | 2. **[Medium]** [Lowest Common Ancestor of a Binary Tree](https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/)
110 | 3. **[Medium]** [Binary Tree Level Order Traversal II](https://leetcode.com/problems/binary-tree-level-order-traversal-ii/)
111 | 4. **[Medium]** [Serialize and Deserialize Binary Tree](https://leetcode.com/problems/serialize-and-deserialize-binary-tree/)
112 | 5. **[Medium]** [Populating Next Right Pointers in Each Node](https://leetcode.com/problems/populating-next-right-pointers-in-each-node/)
113 | 6. **[Hard]** [Recover Binary Search Tree](https://leetcode.com/problems/recover-binary-search-tree/)
114 | 7. **[Hard]** [Flatten Binary Tree to Linked List](https://leetcode.com/problems/flatten-binary-tree-to-linked-list/)
115 | 8. **[Hard]** [Binary Tree Cameras](https://leetcode.com/problems/binary-tree-cameras/)
116 |
117 | ## Month 3: Graphs and Recursion
118 |
119 | ### **Week 1: Graphs Basics**
120 | - **Topics**: Graph Representations, BFS, DFS
121 | - **Patterns**: Breadth-First Search, Depth-First Search
122 | - **Practice**:
123 | 1. **[Easy]** [Flood Fill](https://leetcode.com/problems/flood-fill/)
124 | 2. **[Medium]** [Number of Islands](https://leetcode.com/problems/number-of-islands/)
125 | 3. **[Medium]** [Surrounded Regions](https://leetcode.com/problems/surrounded-regions/)
126 | 4. **[Medium]** [Rotting Oranges](https://leetcode.com/problems/rotting-oranges/)
127 | 5. **[Medium]** [Word Ladder](https://leetcode.com/problems/word-ladder/)
128 | 6. **[Medium]** [Clone Graph](https://leetcode.com/problems/clone-graph/)
129 | 7. **[Medium]** [Course Schedule](https://leetcode.com/problems/course-schedule/)
130 | 8. **[Medium]** [Detect Cycle in Undirected Graph](https://leetcode.com/problems/course-schedule/)
131 | 9. **[Hard]** [Minimum Number of Swaps for Sorting](https://leetcode.com/problems/minimum-number-of-swaps-to-make-the-string-balanced/)
132 |
133 | ### **Week 2: Advanced Graph Algorithms**
134 | - **Topics**: Topological Sort, Connected Components
135 | - **Patterns**: Topological Sort, Union-Find
136 | - **Practice**:
137 | 1. **[Medium]** [Alien Dictionary](https://leetcode.com/problems/alien-dictionary/)
138 | 2. **[Medium]** [Course Schedule II](https://leetcode.com/problems/course-schedule-ii/)
139 | 3. **[Medium]** [Reconstruct Itinerary](https://leetcode.com/problems/reconstruct-itinerary/)
140 | 4. **[Medium]** [Connected Components in Graph](https://leetcode.com/problems/number-of-connected-components-in-an-undirected-graph/)
141 | 5. **[Medium]** [Accounts Merge](https://leetcode.com/problems/accounts-merge/)
142 | 6. **[Hard]** [Find Critical and Pseudo-Critical Edges](https://leetcode.com/problems/find-critical-and-pseudo-critical-edges/)
143 | 7. **[Hard]** [Redundant Connection](https://leetcode.com/problems/redundant-connection/)
144 | 8. **[Hard]** [Graph Valid Tree](https://leetcode.com/problems/graph-valid-tree/)
145 |
146 | ### **Week 3: Recursion and Backtracking**
147 | - **Topics**: Basics of Recursion, Permutations, Combinations
148 | - **Patterns**: Backtracking, DFS
149 | - **Practice**:
150 | 1. **[Easy]** [Subsets](https://leetcode.com/problems/subsets/)
151 | 2. **[Medium]** [Combination Sum](https://leetcode.com/problems/combination-sum/)
152 | 3. **[Medium]** [Permutations](https://leetcode.com/problems/permutations/)
153 | 4. **[Medium]** [Palindrome Partitioning](https://leetcode.com/problems/palindrome-partitioning/)
154 | 5. **[Hard]** [N-Queens](https://leetcode.com/problems/n-queens/)
155 | 6. **[Hard]** [Sudoku Solver](https://leetcode.com/problems/sudoku-solver/)
156 | 7. **[Hard]** [Word Search II](https://leetcode.com/problems/word-search-ii/)
157 | 8. **[Hard]** [K-th Permutation Sequence](https://leetcode.com/problems/permutation-sequence/)
158 |
159 | ### **Week 4: Advanced Backtracking Problems**
160 | - **Topics**: Constraint Satisfaction, Optimizations
161 | - **Patterns**: Recursion + Memoization
162 | - **Practice**:
163 | 1. **[Medium]** [Generate Parentheses](https://leetcode.com/problems/generate-parentheses/)
164 | 2. **[Medium]** [Letter Combinations of a Phone Number](https://leetcode.com/problems/letter-combinations-of-a-phone-number/)
165 | 3. **[Medium]** [Partition to K Equal Sum Subsets](https://leetcode.com/problems/partition-to-k-equal-sum-subsets/)
166 | 4. **[Hard]** [Restore IP Addresses](https://leetcode.com/problems/restore-ip-addresses/)
167 | 5. **[Hard]** [Expression Add Operators](https://leetcode.com/problems/expression-add-operators/)
168 | 6. **[Hard]** [Remove Invalid Parentheses](https://leetcode.com/problems/remove-invalid-parentheses/)
169 | 7. **[Hard]** [Count of Unique BSTs](https://leetcode.com/problems/unique-binary-search-trees/)
170 | 8. **[Hard]** [Word Search](https://leetcode.com/problems/word-search/)
171 |
172 | ---
173 |
174 | ## Month 4: Dynamic Programming (DP) - Part 1
175 |
176 | ### **Week 1: Introduction to Dynamic Programming**
177 | - **Topics**: Fundamentals of DP, 1D DP
178 | - **Patterns**: Memoization, Tabulation
179 | - **Practice**:
180 | 1. **[Easy]** [Climbing Stairs](https://leetcode.com/problems/climbing-stairs/)
181 | 2. **[Medium]** [House Robber](https://leetcode.com/problems/house-robber/)
182 | 3. **[Medium]** [House Robber II](https://leetcode.com/problems/house-robber-ii/)
183 | 4. **[Medium]** [Decode Ways](https://leetcode.com/problems/decode-ways/)
184 | 5. **[Medium]** [Maximum Subarray](https://leetcode.com/problems/maximum-subarray/)
185 | 6. **[Medium]** [Jump Game](https://leetcode.com/problems/jump-game/)
186 | 7. **[Medium]** [Longest Increasing Subsequence](https://leetcode.com/problems/longest-increasing-subsequence/)
187 | 8. **[Hard]** [Longest Substring with K Distinct Characters](https://leetcode.com/problems/longest-substring-with-at-most-k-distinct-characters/)
188 |
189 | ### **Week 2: Intermediate DP**
190 | - **Topics**: 0/1 Knapsack and Variants
191 | - **Patterns**: Knapsack, Subset Sum
192 | - **Practice**:
193 | 1. **[Medium]** [Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/)
194 | 2. **[Medium]** [Combination Sum IV](https://leetcode.com/problems/combination-sum-iv/)
195 | 3. **[Medium]** [Coin Change](https://leetcode.com/problems/coin-change/)
196 | 4. **[Medium]** [Target Sum](https://leetcode.com/problems/target-sum/)
197 | 5. **[Medium]** [Ones and Zeroes](https://leetcode.com/problems/ones-and-zeroes/)
198 | 6. **[Medium]** [Minimum Subset Sum Difference](https://leetcode.com/problems/minimum-difference-subsets/)
199 | 7. **[Hard]** [Word Break](https://leetcode.com/problems/word-break/)
200 |
201 | ### **Week 3: Advanced DP - Sequence Alignment**
202 | - **Topics**: Longest Common Subsequence and Variants
203 | - **Patterns**: Substring and Subsequence Problems
204 | - **Practice**:
205 | 1. **[Medium]** [Longest Common Subsequence](https://leetcode.com/problems/longest-common-subsequence/)
206 | 2. **[Medium]** [Longest Common Substring](https://leetcode.com/problems/longest-common-substring/)
207 | 3. **[Medium]** [Minimum Insertions/Deletions](https://leetcode.com/problems/minimum-insertions-to-make-a-string-palindrome/)
208 | 4. **[Medium]** [Edit Distance](https://leetcode.com/problems/edit-distance/)
209 | 5. **[Medium]** [Longest Palindromic Subsequence](https://leetcode.com/problems/longest-palindromic-subsequence/)
210 | 6. **[Medium]** [Sequence Pattern Matching](https://leetcode.com/problems/sequence-pattern-matching/)
211 | 7. **[Hard]** [Palindrome Partitioning II](https://leetcode.com/problems/palindrome-partitioning-ii/)
212 | 8. **[Hard]** [Distinct Subsequences](https://leetcode.com/problems/distinct-subsequences/)
213 |
214 | ### **Week 4: Advanced DP - Matrix and Grid Problems**
215 | - **Topics**: 2D DP, Grid Path Problems
216 | - **Patterns**: Dynamic Programming on Grids
217 | - **Practice**:
218 | 1. **[Easy]** [Unique Paths](https://leetcode.com/problems/unique-paths/)
219 | 2. **[Medium]** [Unique Paths II](https://leetcode.com/problems/unique-paths-ii/)
220 | 3. **[Medium]** [Minimum Path Sum](https://leetcode.com/problems/minimum-path-sum/)
221 | 4. **[Medium]** [Dungeon Game](https://leetcode.com/problems/dungeon-game/)
222 | 5. **[Medium]** [Cherry Pickup](https://leetcode.com/problems/cherry-pickup/)
223 | 6. **[Hard]** [Interleaving String](https://leetcode.com/problems/interleaving-string/)
224 | 7. **[Hard]** [Maximal Rectangle](https://leetcode.com/problems/maximal-rectangle/)
225 | 8. **[Hard]** [Largest Rectangle in Histogram](https://leetcode.com/problems/largest-rectangle-in-histogram/)
226 |
227 |
228 | ## Month 5: Greedy Algorithms, Advanced Dynamic Programming, and Heaps
229 |
230 | ### **Week 1: Greedy Algorithms - Intermediate Problems**
231 | - **Topics**: Interval Scheduling, Partitioning, Activity Selection
232 | - **Patterns**: Interval Problems, Greedy Choice Property
233 | - **Practice**:
234 | 1. **[Easy]** [Best Time to Buy and Sell Stock II](https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/)
235 | 2. **[Medium]** [Jump Game](https://leetcode.com/problems/jump-game/)
236 | 3. **[Medium]** [Jump Game II](https://leetcode.com/problems/jump-game-ii/)
237 | 4. **[Medium]** [Gas Station](https://leetcode.com/problems/gas-station/)
238 | 5. **[Medium]** [N Meetings in One Room](https://practice.geeksforgeeks.org/problems/n-meetings-in-one-room/0/)
239 | 6. **[Medium]** [Partition Labels](https://leetcode.com/problems/partition-labels/)
240 | 7. **[Medium]** [Task Scheduler](https://leetcode.com/problems/task-scheduler/)
241 | 8. **[Hard]** [Minimum Number of Refueling Stops](https://leetcode.com/problems/minimum-number-of-refueling-stops/)
242 |
243 | ### **Week 2: Heaps - Basics and Applications**
244 | - **Topics**: Heap Basics, Priority Queue, Top-K Problems
245 | - **Patterns**: Min-Heap, Max-Heap
246 | - **Practice**:
247 | 1. **[Easy]** [Kth Largest Element in a Stream](https://leetcode.com/problems/kth-largest-element-in-a-stream/)
248 | 2. **[Medium]** [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)
249 | 3. **[Medium]** [Top K Frequent Elements](https://leetcode.com/problems/top-k-frequent-elements/)
250 | 4. **[Medium]** [K Closest Points to Origin](https://leetcode.com/problems/k-closest-points-to-origin/)
251 | 5. **[Medium]** [Sort Characters By Frequency](https://leetcode.com/problems/sort-characters-by-frequency/)
252 | 6. **[Hard]** [Find Median from Data Stream](https://leetcode.com/problems/find-median-from-data-stream/)
253 | 7. **[Hard]** [Merge K Sorted Lists](https://leetcode.com/problems/merge-k-sorted-lists/)
254 | 8. **[Hard]** [Sliding Window Maximum](https://leetcode.com/problems/sliding-window-maximum/)
255 |
256 | ### **Week 3: Advanced Dynamic Programming - Optimization Problems**
257 | - **Topics**: DP on Trees, Knapsack Variants
258 | - **Patterns**: 0/1 Knapsack, DP with Trees
259 | - **Practice**:
260 | 1. **[Medium]** [Partition Equal Subset Sum](https://leetcode.com/problems/partition-equal-subset-sum/)
261 | 2. **[Medium]** [Ones and Zeroes](https://leetcode.com/problems/ones-and-zeroes/)
262 | 3. **[Medium]** [Coin Change](https://leetcode.com/problems/coin-change/)
263 | 4. **[Medium]** [Target Sum](https://leetcode.com/problems/target-sum/)
264 | 5. **[Medium]** [Tree Diameter](https://leetcode.com/problems/diameter-of-binary-tree/)
265 | 6. **[Hard]** [Longest Increasing Path in a Matrix](https://leetcode.com/problems/longest-increasing-path-in-a-matrix/)
266 | 7. **[Hard]** [Maximal Square](https://leetcode.com/problems/maximal-square/)
267 | 8. **[Hard]** [Burst Balloons](https://leetcode.com/problems/burst-balloons/)
268 |
269 | ### **Week 4: Advanced Greedy Algorithms & Special Topics**
270 | - **Topics**: Advanced Greedy Techniques, Miscellaneous
271 | - **Patterns**: Greedy + Dynamic Programming, Hybrid Patterns
272 | - **Practice**:
273 | 1. **[Medium]** [Minimum Number of Arrows to Burst Balloons](https://leetcode.com/problems/minimum-number-of-arrows-to-burst-balloons/)
274 | 2. **[Medium]** [Reduce Array Size to The Half](https://leetcode.com/problems/reduce-array-size-to-the-half/)
275 | 3. **[Medium]** [Divide Array in Sets of K Consecutive Numbers](https://leetcode.com/problems/divide-array-in-sets-of-k-consecutive-numbers/)
276 | 4. **[Hard]** [Minimum Cost to Hire K Workers](https://leetcode.com/problems/minimum-cost-to-hire-k-workers/)
277 | 5. **[Hard]** [IPO](https://leetcode.com/problems/ipo/)
278 | 6. **[Hard]** [Maximum Profit in Job Scheduling](https://leetcode.com/problems/maximum-profit-in-job-scheduling/)
279 | 7. **[Hard]** [Candy](https://leetcode.com/problems/candy/)
280 |
281 | ---
282 |
283 | ## Month 6: Tries, Advanced Data Structures, and Comprehensive Revision
284 |
285 | ### **Week 1: Tries and Prefix Trees**
286 | - **Topics**: Trie Basics, String Manipulations with Trie
287 | - **Patterns**: Trie Structure, Prefix Matching
288 | - **Practice**:
289 | 1. **[Easy]** [Implement Trie (Prefix Tree)](https://leetcode.com/problems/implement-trie-prefix-tree/)
290 | 2. **[Medium]** [Add and Search Word - Data Structure Design](https://leetcode.com/problems/add-and-search-word-data-structure-design/)
291 | 3. **[Medium]** [Word Search II](https://leetcode.com/problems/word-search-ii/)
292 | 4. **[Medium]** [Replace Words](https://leetcode.com/problems/replace-words/)
293 | 5. **[Medium]** [Design Search Autocomplete System](https://leetcode.com/problems/design-search-autocomplete-system/)
294 | 6. **[Hard]** [Palindrome Pairs](https://leetcode.com/problems/palindrome-pairs/)
295 | 7. **[Hard]** [Concatenated Words](https://leetcode.com/problems/concatenated-words/)
296 | 8. **[Hard]** [Maximum XOR of Two Numbers in an Array](https://leetcode.com/problems/maximum-xor-of-two-numbers-in-an-array/)
297 |
298 | ### **Week 2: Segment Trees and Binary Indexed Trees**
299 | - **Topics**: Range Queries, Lazy Propagation
300 | - **Patterns**: Segment Tree, Fenwick Tree
301 | - **Practice**:
302 | 1. **[Medium]** [Range Sum Query - Mutable](https://leetcode.com/problems/range-sum-query-mutable/)
303 | 2. **[Medium]** [Range Sum Query 2D - Mutable](https://leetcode.com/problems/range-sum-query-2d-mutable/)
304 | 3. **[Medium]** [Count of Smaller Numbers After Self](https://leetcode.com/problems/count-of-smaller-numbers-after-self/)
305 | 4. **[Medium]** [Kth Largest Element in an Array](https://leetcode.com/problems/kth-largest-element-in-an-array/)
306 | 5. **[Hard]** [Reverse Pairs](https://leetcode.com/problems/reverse-pairs/)
307 | 6. **[Hard]** [The Skyline Problem](https://leetcode.com/problems/the-skyline-problem/)
308 | 7. **[Hard]** [Maximum Sum of Rectangle No Larger Than K](https://leetcode.com/problems/max-sum-of-rectangle-no-larger-than-k/)
309 |
310 | ### **Week 3: Final Revision - Arrays, Strings, Linked Lists**
311 | - **Topics**: Comprehensive Review and Practice
312 | - **Practice**:
313 | 1. **Review** top 3-5 questions from Arrays and Strings sections
314 | 2. **Review** top 3-5 questions from Linked Lists
315 | 3. **Practice Mock Interviews** with a random mix of problems
316 | 4. Focus on any weak areas or topics that need additional review
317 |
318 | ### **Week 4: Final Revision - Trees, Graphs, DP, and Advanced Topics**
319 | - **Topics**: Comprehensive Review and Practice
320 | - **Practice**:
321 | 1. **Review** top 3-5 questions from Trees and Graphs
322 | 2. **Review** top 3-5 questions from Dynamic Programming
323 | 3. **Practice Mock Interviews** with a random mix of problems
324 | 4. Focus on polishing solutions for harder problems or any weak areas
325 |
326 | ---
327 |
--------------------------------------------------------------------------------