An open API service indexing awesome lists of open source software.

https://github.com/hamza-rafique/foundations-of-problem-solving

A complete roadmap to build strong problem-solving and debugging skills with structured phases, resources, and daily practice plans.
https://github.com/hamza-rafique/foundations-of-problem-solving

algorithms bug-fixing coding-interview coding-practice competitive-programming daily-coding data-structures debugging developer-roadmap dsa javascript learning-roadmap leetcode logic-building problem-solving programming-basics software-engineering technical-skills typescript

Last synced: 2 months ago
JSON representation

A complete roadmap to build strong problem-solving and debugging skills with structured phases, resources, and daily practice plans.

Awesome Lists containing this project

README

          

# 🧠 Problem Solving & Debugging Roadmap

Welcome! This roadmap is designed to help you build a strong foundation in **problem-solving** and **debugging**. Whether you're a beginner or aiming to sharpen your skills, follow this structured path step-by-step.

---

## πŸ“ Phase 1: Fundamentals (Week 1–2)

### 🎯 Goal:
Understand programming basics and learn to think logically.

### πŸ”§ Topics to Cover:
- Variables, Data Types
- Loops and Conditionals
- Functions and Recursion
- Arrays, Strings, and basic Input/Output

### 🧩 Practice:
- [HackerRank: 10 Days of JavaScript](https://www.hackerrank.com/domains/tutorials/10-days-of-javascript)
- [LeetCode Easy Problems](https://leetcode.com/problemset/all/?difficulty=Easy)

### πŸ“š Resources:
- [freeCodeCamp - JavaScript Basics](https://www.freecodecamp.org/)
- Book: *Eloquent JavaScript* (First 4 chapters)

---

## πŸ“ Phase 2: Learn Data Structures & Algorithms (Week 3–5)

### 🎯 Goal:
Grasp essential data structures and common algorithms.

### 🧰 Topics:
- Arrays, Linked Lists
- Stacks, Queues
- HashMaps, Sets
- Binary Trees, Graphs (Intro)
- Sorting: Bubble, Selection, Merge, Quick
- Searching: Binary Search, BFS, DFS

### 🧩 Practice:
- [NeetCode 75](https://neetcode.io/)
- [GeeksforGeeks – DSA for Beginners](https://www.geeksforgeeks.org/data-structures/)

### πŸ“š Resources:
- Book: *Grokking Algorithms*
- Visualizer: [VisuAlgo](https://visualgo.net/en)

---

## πŸ“ Phase 3: Master Problem Solving Patterns (Week 6–8)

### 🎯 Goal:
Apply techniques to solve unknown problems efficiently.

### πŸ”„ Patterns:
- Sliding Window
- Two Pointers
- Fast & Slow Pointers
- Divide & Conquer
- Backtracking
- Dynamic Programming (Basics)

### 🧩 Practice:
- [LeetCode Patterns Sheet](https://seanprashad.com/leetcode-patterns/)
- [AlgoExpert Pattern List](https://algoexpert.io/product)

---

## πŸ“ Phase 4: Real Debugging Skills (Week 9–10)

### 🎯 Goal:
Identify and fix bugs confidently in real-world code.

### πŸ› οΈ Techniques:
- Read error messages carefully
- Use print/console.log debugging
- Use IDE tools (VS Code Debugger, breakpoints)
- Binary search in code (narrow down)
- Rubber duck debugging
- Unit testing

### 🧩 Debugging Practice:
- Solve buggy problems: [Codewars](https://www.codewars.com/), [Exercism](https://exercism.io/)
- Create intentional bugs in your code and fix them

### πŸ§ͺ Tools:
- Chrome DevTools
- VS Code Debugger
- Node.js Debugging
- Python `pdb` / JavaScript `debugger` keyword

---

## πŸ“ Phase 5: Competitive Programming & Deep Dive (Ongoing)

### 🎯 Goal:
Tackle complex problems under constraints and improve speed.

### 🧩 Platforms:
- [Codeforces](https://codeforces.com/)
- [AtCoder](https://atcoder.jp/)
- [LeetCode Weekly Contest](https://leetcode.com/contest/)

### 🧠 Learn:
- Time & Space Complexity
- Mathematical Problems
- Advanced DP & Graph Problems

---

## πŸ—ƒοΈ Tools for Practice

| Tool | Purpose |
|------|---------|
| [LeetCode](https://leetcode.com/) | Problem-solving platform |
| [GeeksforGeeks](https://www.geeksforgeeks.org/) | DSA learning & practice |
| [VS Code](https://code.visualstudio.com/) | IDE for writing/debugging code |
| [Codeforces](https://codeforces.com/) | Competitive programming |

---

## πŸ“ˆ Tips to Improve Consistently

- Practice daily β€” consistency is key.
- Solve at least 2–3 problems per day.
- After solving a problem, explain it aloud.
- Revisit problems you failed after 2–3 days.
- Join developer communities like Discord, Reddit, StackOverflow.

---

## πŸ“… Sample Weekly Plan

| Day | Task |
|-----|------|
| Mon–Fri | 2 Problems + 1 Debug Challenge |
| Sat | Learn a new pattern/technique |
| Sun | Revisit wrong problems + contest |

---

## βœ… Final Checklist

- [ ] Know basic data structures
- [ ] Comfortable with problem patterns
- [ ] Debug efficiently using tools
- [ ] Solve medium-hard LeetCode problems
- [ ] Participate in coding contests

---

**Start now β€” even 20 minutes a day can create a big change. Good luck, coder! πŸš€**