Competitive programming (CP) is one of the best ways to sharpen your problem-solving skills and prepare for technical interviews. Here's our recommended roadmap, designed for students with basic programming knowledge.
Month 1-2: Foundations
Focus on understanding basic data structures and implementing them from scratch: - Arrays, Strings, and Matrices - Linked Lists, Stacks, and Queues - Basic Sorting and Searching algorithms - Time and Space complexity analysis (Big O)
**Weekly target:** 15-20 easy problems on LeetCode/Codeforces
Month 3-4: Intermediate Concepts
Build on your foundation with more complex structures and algorithms: - Trees and Binary Search Trees - Graphs (BFS, DFS, shortest paths) - Dynamic Programming (1D and 2D) - Greedy algorithms - Two pointers and sliding window
**Weekly target:** 10-15 medium problems
Month 5-6: Advanced Topics
Push into contest-level problem solving: - Segment Trees and Binary Indexed Trees - Advanced graph algorithms (network flow, strongly connected components) - String algorithms (KMP, Z-algorithm, Trie) - Number theory and combinatorics - Advanced DP patterns
**Weekly target:** 5-10 hard problems + 1 virtual contest
Resources We Recommend
- CSES Problem Set — Comprehensive and well-structured
- Codeforces — Best for contests and editorial quality
- CP-Algorithms — Excellent reference for algorithm implementations
- LeetCode — Best for interview preparation overlap
Join Our CP Study Group
Our Technical domain runs weekly CP sessions every Saturday. Drop by to practice with peers, discuss approaches, and learn from experienced competitive programmers.