Skip to content

Roadmap — basic → advanced শেখার ক্রম

এই file হলো বড় ছবি: কোন topic আগে, কোনটা পরে, আর কোনটা কীসের উপর দাঁড়িয়ে। "আজ কী করব" জানতে চাইলে STUDY-PLAN.md (সপ্তাহ-ভিত্তিক রুটিন); "আমি কোথায় আছি, এরপর কোথায়" বুঝতে চাইলে এই file।

দুটো roadmap আছে, কারণ এদের কাজ আলাদা:

  • STUDY-PLAN.md = সময়ের ম্যাপ (Week 1, Week 2 … ৪ মাসের deadline ধরে)।
  • roadmap.md (এই file) = নির্ভরতার ম্যাপ (কোন idea কোন idea-র জন্য দরকার)।

মূল নীতি

  1. ভিত্তি আগে। Array আর hashing শক্ত না হলে graph/DP কিছুই দাঁড়াবে না।
  2. প্রতিটা topic আগেরটার কাঁধে দাঁড়ায়। নিচের তীরচিহ্ন (→) সেই নির্ভরতা দেখায়।
  3. Interview-first। ৪ মাসের জন্য কিছু গভীর CP topic ইচ্ছে করে পরে রাখা — নিচে "পরে" বলে চিহ্নিত।
  4. পড়া ≠ শেখা। প্রতিটা topic-এ অন্তত ৮-১৫টা problem নিজে solve না করলে এগিয়ো না।

নির্ভরতার ম্যাপ (এক নজরে)

            ┌─────────────────────────────────────────────┐
            │  01 Math fundamentals (Level 0-8)            │
            │  সংখ্যা, mod, bit, prefix sum, two pointer,  │
            │  binary search, greedy — সব pattern-এর বীজ   │
            └───────────────┬─────────────────────────────┘
        ┌───────────────────┼───────────────────┐
        ▼                   ▼                   ▼
   02 Arrays/Strings   05 Hashing         06 Recursion
        │                   │              & Backtracking
        ▼                   │                   │
   03 Linked List           │                   ▼
        │                   │              07 Trees
        ▼                   │                   │
   04 Stack/Queue ──────────┘                   ▼
        │                              08 Heap / Priority Queue
        ▼                                       │
   (monotonic stack)                            ▼
        └──────────────────────────────► 09 Graphs ──► 10 DSU
                                    12 Dynamic Programming
                                 13 Interview Master Problems
                          11 Segment/Fenwick Tree (CP, পরে)

ধাপে ধাপে ক্রম

ভিত্তি (এখান থেকে শুরু)

  1. 01 Math fundamentals — Level 0 থেকে 8। সংখ্যা নিয়ে কাজ, %//, prime/GCD, modular arithmetic, bit manipulation, prefix sum, two pointers, sliding window, binary search on answer, greedy — এই শেষ পাঁচটা সরাসরি interview-এর রুটি-রুজি। Level 9-11 (geometry, advanced number theory, hard mixed) interview-এর জন্য পরে
  2. নির্ভরতা: কিছু না — একদম শুরু।
  3. নিজস্ব roadmap: 01-…/roadmap.md (১৫০টা problem-এর পূর্ণ তালিকা)।

  4. 02 Arrays & Strings সব কিছুর ভিত্তি data structure। two pointers, sliding window, prefix sum, Kadane।

  5. নির্ভরতা: Math Level 5 (prefix), 6 (two pointers), 7 (binary search)।

  6. 05 Hashing O(1) lookup-এর জাদু। frequency count, complement (Two Sum), grouping, prefix-sum + hashmap।

  7. নির্ভরতা: 02।

রৈখিক (linear) data structure ও recursion

  1. 03 Linked List pointer-এ হাত পাকানো; slow/fast pointer, reversal, merge।
  2. নির্ভরতা: 02।

  3. 04 Stack & Queue bracket matching, monotonic stack (next greater), monotonic deque (sliding window maximum), BFS frontier।

  4. নির্ভরতা: 03; সামনে graph (09)-এ queue লাগবে।

  5. 06 Recursion & Backtracking call stack, "leap of faith", subsets, permutations, combinations, N-Queens। DP-র সরাসরি পূর্বসূরি।

  6. নির্ভরতা: Math Level 3 (counting); সামনে tree (07) ও DP (12)।

অরৈখিক (non-linear) data structure

  1. 07 Trees traversal (in/pre/post/level order), BST, height/diameter, LCA।
  2. নির্ভরতা: 06 (recursion), 04 (level order-এ queue)।

  3. 08 Heap / Priority Queue top-K, k-way merge, two heaps (running median)।

  4. নির্ভরতা: 07 (tree-আকৃতির ধারণা), Math Level 8 (greedy)।

  5. 09 Graphs BFS, DFS, connected components, Dijkstra, topological sort।

  6. নির্ভরতা: 04 (queue/stack), 06 (DFS = recursion), 08 (Dijkstra-তে heap)।

  7. 10 Disjoint Set Union union-find, cycle detection, Kruskal-এর সাথে সংযোগ।

    • নির্ভরতা: 09।

advanced ও interview রূপান্তর

  1. 12 Dynamic Programming interview-এর #1 ছাঁকনি। state → transition, memo vs tabulation, 1D/grid/knapsack/LIS/LCS/edit distance।

    • নির্ভরতা: 06 (recursion), Math Level 4 (bit, bitmask DP-র জন্য), 09 (DP on DAG)।
  2. 13 Interview Master Problems ২-৩টা idea মেশানো cross-topic problem; mock format (clarify → brute → optimize → code → test), Amazon/Google/Microsoft-style।

    • নির্ভরতা: উপরের প্রায় সব।

CP-গভীর (অফার পাওয়ার পরে)

  1. 11 Segment Tree & Fenwick Tree update-সহ range query। competitive programming-এ দরকারি, কিন্তু ৪ মাসের interview timeline-এ optional — পরে এসো।
    • নির্ভরতা: 02 (array), 06 (recursion), Math Level 4-5।

Interview-critical বনাম পরে-রাখা (৪ মাসের জন্য)

অবশ্যই (core) পরে রাখো (অফারের পরে)
Arrays, strings, hashing Segment tree / Fenwick (ch 11)
two pointers, sliding window Math Level 9 (geometry)
binary search (on answer সহ) Math Level 10 (advanced number theory)
linked list, stack/queue, monotonic stack Math Level 11 (game theory, Burnside…)
recursion, backtracking SCC, flow, string matching গভীরতা
trees, heaps matrix expo, digit DP, DP optimizations
BFS/DFS/Dijkstra/topo sort, DSU
dynamic programming (গভীরভাবে)

সপ্তাহ পিছিয়ে গেলে আগে bitmask/tree-DP/Dijkstra-র গভীরতা কাটো — কিন্তু কখনো binary search, sliding window, DP-core, বা mock কাটবে না। বিস্তারিত কাট-লিস্ট: STUDY-PLAN.md


কীভাবে অগ্রগতি মাপবে

  • প্রতিটা level/topic-এর problems/README.md-তে tracker আছে — solve করলে planneddone
  • প্রতি মাস শেষে milestone (cumulative solved সংখ্যা) STUDY-PLAN.md-এর Milestones টেবিলে।
  • লক্ষ্য সংখ্যা নয়, নির্ভুলতা ও গতি — একটা Medium ৩০-৪০ মিনিটে পরিষ্কার ভেবে, কথা বলতে বলতে solve করতে পারা।