
Competitive Programming Roadmap Complete Step by Step Guide
This roadmap is designed for absolute beginners as well as intermediate learners who want to master Competitive Programming in a structured and practical way. The focus is on building strong fundamentals, practicing the right problems, and gradually moving toward advanced concepts.
You do not need any prior Competitive Programming experience. Basic programming knowledge, patience, and consistency are enough to start this journey.
Phase 0 Foundation Setup Week 0
Choose Programming Language
Choosing one language and sticking to it is extremely important in Competitive Programming because speed and familiarity matter more than syntax variety.
Recommended
C++ for fast execution and powerful STL support
Java if you prefer object oriented programming
Python only for early learning and logic building
C++ resources
Learn C++
CPlusPlus Official Tutorial
C++ YouTube Playlist
Setup Environment
Set up your local development environment so you can code comfortably and quickly.
Install a compiler and code editor
VS Code or CLion are widely used
Learn fast input output techniques to handle large data
Fast IO reference
Codeforces Fast IO Guide
Phase 1 Programming Basics Weeks 1 to 2
Concepts to Learn
This phase is about becoming comfortable with writing basic programs without hesitation.
Variables and data types
Loops and conditional statements
Functions and modular code
Arrays and strings
Basic mathematical operations
Practice Resources
HackerRank C++ basics
HackerRank 10 Days of C++
Beginner problems
CodeChef Basic Math Practice
Codeforces Implementation Problems
Goal
Write simple programs confidently without worrying about syntax errors.
Phase 2 Core Data Structures Weeks 3 to 5
Topics to Master
Data structures are the backbone of Competitive Programming. Understanding when and why to use each one is critical.
Arrays
Strings
Stack
Queue
Linked List
Set
Map
Priority Queue
Learning Resources
GeeksforGeeks DSA
GeeksforGeeks Data Structures
CP Algorithms reference
CP Algorithms
Practice Links
Codeforces DS problems
Codeforces Arrays Problems
CodeChef DS practice
CodeChef Data Structures Practice
Goal
Understand how data structures affect time and space complexity.
Phase 3 Algorithms Fundamentals Weeks 6 to 9
Must Learn Algorithms
This phase introduces common algorithmic patterns that appear frequently in contests.
Sorting algorithms
Binary search
Recursion
Two pointers technique
Sliding window technique
Prefix sum
Greedy algorithms
Learning Resources
Sorting and searching visualization
VisuAlgo
Binary search guide
CP Algorithms Binary Search
Greedy concepts
GeeksforGeeks Greedy Algorithms
Practice Links
Binary search problems
LeetCode Binary Search
Two pointers problems
LeetCode Two Pointers
Goal
Recognize patterns quickly and apply the correct algorithm efficiently.
Phase 4 Competitive Programming Platforms Weeks 10 to 12
Primary Practice Platforms
What to Do
Solve beginner rated problems regularly
Participate in Div 3 or beginner contests
Try virtual contests to simulate real pressure
Read editorials after contests to learn better approaches
Goal
Get comfortable with the contest environment and time pressure.
Phase 5 Intermediate Topics Weeks 13 to 18
Topics to Learn
These topics introduce mathematical thinking and deeper recursion concepts.
Bit manipulation
Number theory basics
Modular arithmetic
Recursion and backtracking
Math based problems
Learning Resources
Bit manipulation
GeeksforGeeks Bitwise Algorithms
Number theory
[CP Algorithms Algebra]https://cp-algorithms.com/algebra/binary-exp.html)
Backtracking
GeeksforGeeks Backtracking
Practice Links
Math problems
Codeforces Math Problems
Bit manipulation practice
LeetCode Bit Manipulation
Goal
Become comfortable solving problems that mix logic with math.
Phase 6 Advanced Data Structures Weeks 19 to 24
Topics to Learn
Advanced data structures are often required for medium and hard problems.
Trees
Binary search trees
Heaps
Segment tree
Fenwick tree
Learning Resources
Tree basics
GeeksforGeeks Trees
Segment tree
CP Algorithms Segment Tree
Fenwick tree
CP Algorithms Fenwick Tree
Practice Links
Tree problems
LeetCode Tree Problems
Goal
Handle complex data efficiently and optimize solutions.
Phase 7 Graph Algorithms Weeks 25 to 30
Topics to Master
Graphs are a major part of Competitive Programming and interviews.
Graph representation
Breadth First Search and Depth First Search
Shortest path algorithms
Topological sort
Disjoint set union
Learning Resources
Graph basics
GeeksforGeeks Graph Algorithms
Graph algorithms
CP Algorithms Graph
Practice Links
Graph problems
LeetCode Graph Problems
BFS DFS practice
Codeforces DFS Problems
Goal
Visualize graph problems and solve them confidently.
Phase 8 Dynamic Programming Weeks 31 to 40
Topics to Learn
Dynamic Programming is considered the hardest topic but becomes easier with practice.
DP basics
One dimensional DP
Two dimensional DP
Knapsack problems
DP on trees
DP optimizations
Learning Resources
DP introduction
GeeksforGeeks Dynamic Programming
DP patterns
LeetCode DP Patterns
YouTube reference
Errichto YouTube Channel
Practice Links
DP problems
LeetCode DP Problems
Codeforces DP
Codeforces DP Problems
Goal
Learn how to break problems into states and transitions.
Phase 9 Structured Practice and Sheets Weeks 41 to 50
Recommended Sheets
Striver DSA Sheet
Take U Forward
Goal
Cover all common patterns and strengthen weak areas.
Phase 10 Contest Mastery and Optimization Weeks 51 Plus
What to Focus On
Participate in contests regularly
Upsolve every contest problem
Improve time management
Read constraints carefully
Optimize solutions
Advanced Practice
Virtual contests on Codeforces
Upsolve using editorials
Maintain a mistake notebook
Goal
Increase rating and long term confidence.
Daily Competitive Programming Routine
One hour concept learning
Two hours problem solving
Thirty minutes revision
One contest per week
Consistency matters more than the number of hours.
Final Advice
Competitive Programming is a long journey.
The initial months feel slow but improvement compounds over time.
Focus on learning patterns rather than memorizing solutions.
Enjoy problem solving and stay consistent.
Join the discord community for any doubts!
🧰 Useful Resources for Your Placement Prep
Lets Code
Contributing Writer