Back to Blog
Tech Insights

A Competitive Programming Roadmap for Beginners

Dhruv BajajFebruary 28, 202610 min read

Competitive programming is useful for improving problem solving and preparing for technical interviews. The following plan is aimed at students who already know basic programming.

Months 1 and 2: Foundations

Start with the structures and algorithms you will use most often: - Arrays, strings and matrices - Linked lists, stacks and queues - Sorting and searching - Time and space complexity

**Weekly target:** 15 to 20 easy problems on LeetCode or Codeforces.

Months 3 and 4: Intermediate Topics

Move on to: - Trees and binary search trees - Graphs, BFS, DFS and shortest paths - Dynamic programming - Greedy algorithms - Two pointers and sliding windows

**Weekly target:** 10 to 15 medium problems.

Months 5 and 6: Advanced Topics

When the basics are comfortable, work on: - Segment trees and binary indexed trees - Network flow and strongly connected components - KMP, Z-algorithm and tries - Number theory and combinatorics - More advanced dynamic programming

**Weekly target:** 5 to 10 hard problems and one virtual contest.

Useful Resources

  1. CSES Problem Set: A good set of problems for structured practice
  2. Codeforces: Regular contests and editorials
  3. CP-Algorithms: Reference material for algorithms
  4. LeetCode: Practice for interviews and problem solving

Practice with Others

The Technical domain runs weekly competitive programming sessions. Working through problems with other students is a good way to compare approaches and find gaps in your understanding.