DSA & Competitive Programming Roadmap

A structured roadmap for getting good at DSA and competitive programming from scratch.

May 5, 2026updated June 5, 20269 min read

This is my public roadmap to go from shaky foundations to:

  • Solving most Leetcode Hards, all Mediums and Easys independently
  • Reaching 1600–1800 rating on Codeforces
  • Crushing every DSA round in placements — no blanking, no hesitation

3 months. No excuses. I'm posting this publicly to stay accountable. Every checkbox gets a date when it's done.


Resources I'm Using

These are the only resources I need. Seniors and people who've done this before all point to the same things — so I'm trusting the process.

  • NeetCode YT + NeetCode 250 Sheet — primary problem list. If stuck on any problem, watch his video. He explains the intuition, not just the code. Use the sheet but submit on LeetCode so the count goes up.
  • Codestory with Mik YT — watch for problem-solving mindset and contest strategy. His thinking-out-loud style builds intuition fast.
  • LuvDSA YT — additional problem walkthroughs for practice reinforcement.
  • LeetCode Top 150 — milestone target. If I can do all of these, I'm placement-ready.
  • cp-algorithms.com — for deep dives on graph and DP algorithms.
  • Codeforces problem filter — daily grind for CP rating.

Daily Schedule

Weekdays — 2.5 hours

  • 1 hour morning: 1–2 LeetCode problems (topic I'm currently on). Minimum 30 min struggle before any hint.
  • 1 hour evening: theory if new topic, OR 1 more problem.
  • 30 min: review solution, understand alternate approaches, note patterns.

Weekends — 4 hours

  • 2 hours: 2–3 problems, slightly harder than weekday target.
  • 1 hour: CF contest (live or virtual) on Saturday.
  • 1 hour: upsolve everything missed in the contest. Non-negotiable.

Daily problem target: 3–4 problems. On slow days (GSoC heavy), minimum is 2. Zero is never acceptable.


Phase 1 — Foundation Repair

Target: Weeks 1–3

C++ STL Mastery

Complexity Analysis

  • Big-O notation — O(1), O(log n), O(n), O(n log n), O(n²) — 26-02-2026
  • Can look at any loop structure and instantly state its complexity — 26-02-2026
  • Understand when a solution will TLE based on constraints (n ≤ 10^5 → O(n log n) max, etc.) — 26-02-2026

Arrays & Strings

Recursion & Backtracking

Linked Lists


Phase 2 — Core DSA

Target: Weeks 4–10

Stacks & Queues

Heaps (Priority Queue)

Trees

Graphs

Dynamic Programming


Phase 3 — NeetCode 250 Grind

Target: Weeks 7–12 (overlaps with Phase 2)

Start this alongside Phase 2 theory from Week 7. Use the NeetCode 250 sheet. Submit on LeetCode. Watch NeetCode's video only after 30+ min of genuine struggle.

  • Arrays & Hashing
  • Two Pointers
  • Sliding Window
  • Stack
  • Binary Search
  • Linked List
  • Trees
  • Tries
  • Heap / Priority Queue
  • Backtracking
  • Graphs
  • Advanced Graphs
  • 1D DP
  • 2D DP
  • Greedy
  • Intervals
  • Math & Geometry
  • Bit Manipulation

LeetCode Top 150 — Placement Milestone

  • Complete LeetCode Top 150 by end of Month 3 — this is the placement-ready checkpoint

Milestones

  • End of Month 1: Can solve 80% of Leetcode Easys in under 15 minutes independently
  • End of Month 2: Can solve 70% of Leetcode Mediums in under 35 minutes independently
  • End of Month 3: Attempted at least 15 Leetcode Hards independently (no hints for first 45 min)
  • Can explain every data structure and algorithm out loud without notes

Phase 4 — Codeforces Rating Grind

Target: Week 4 onwards, ongoing in parallel

Current rating: 1072 (max 1077). Target: 1600–1800.

Rating Ladder (Codeforces problem filter grind)

  • Solve 20 problems rated 1100
  • Solve 20 problems rated 1200
  • Solve 20 problems rated 1300
  • Solve 15 problems rated 1400
  • Solve 15 problems rated 1500
  • Solve 15 problems rated 1600

Live Contests

  • Participate in first Div. 4 contest (live)
  • Participate in 5 Div. 4 contests total
  • Participate in first Div. 3 contest (live)
  • Participate in 5 Div. 3 contests total
  • Upsolve every problem missed in every contest — non-negotiable, every single time

Rating Milestones

  • Reach rating 1200 (Pupil)
  • Reach rating 1400
  • Reach rating 1600 (Specialist) 🎯
  • Reach rating 1800 (Expert boundary) 🎯

Rules — Non-Negotiable

  • 30–45 minutes of genuine struggle before looking at any hint. Pain builds intuition. There's no shortcut here.
  • No copy-pasting solutions. If I can't solve it, I upsolve it properly — read the editorial, understand it fully, then code from scratch without looking.
  • Every new topic: theory first, then minimum 10 problems on that topic before moving on.
  • After every CF contest: upsolve every problem I couldn't solve during the contest. Read the editorial. Code it. No exceptions.
  • NeetCode 250 is the primary sheet. If stuck on any problem, watch NeetCode's video for that problem. Submit on LeetCode so the count goes up.
  • Zero days are not allowed. GSoC heavy day = minimum 2 problems. No day is a zero.
  • Update this post with dates every time a checkbox gets ticked. Public accountability is the point.

Written by Yash (xevrion)