Getting into competitive programming can feel overwhelming. There are thousands of problems, dozens of topics, and no clear starting point. This guide gives you a structured roadmap specifically designed for Bangladeshi students targeting the BdOI and eventually the IOI.
Phase 1: Learn a Language (2-4 weeks)
Pick C++. Not Python, not Java — C++ is the standard in competitive programming for good reason: it's fast, the STL is powerful, and virtually all editorials and resources use it.
Focus on: - Basic I/O (cin/cout, fast I/O) - Control flow (if/else, loops) - Functions and recursion - Arrays and strings - STL basics: vector, pair, sort, map
Practice: Solve 30-50 easy problems on Codeforces (difficulty 800-1000).
Phase 2: Core Algorithms (4-6 weeks)
- Sorting algorithms and when to use them
- Binary search (on arrays and on the answer)
- Two pointers and sliding window
- Prefix sums
- Basic number theory: GCD, primes, modular arithmetic
Practice: Codeforces problems rated 1000-1400. CSES Problem Set "Sorting and Searching" section.
Phase 3: Graph Theory (4-6 weeks)
- BFS and DFS
- Shortest paths (Dijkstra, Bellman-Ford)
- MST (Kruskal's, Prim's)
- Topological sort
- Union-Find (DSU)
Practice: CSES Graph Algorithms section. Codeforces problems rated 1400-1700 tagged "graphs."
Phase 4: Dynamic Programming (6-8 weeks)
This is the most important topic for competitive programming. Take your time.
- Classical DP (knapsack, LIS, LCS)
- DP on grids
- Tree DP
- Bitmask DP
- DP optimization
Practice: AtCoder DP Contest (all 26 problems). CSES DP section. Codeforces problems rated 1500-1900 tagged "dp."
Phase 5: Advanced Topics (ongoing)
- Segment trees and Fenwick trees
- String algorithms (hashing, KMP, Z-function)
- Advanced graph algorithms (SCC, bridges, 2-SAT)
- Computational geometry basics
- Game theory
Recommended Online Judges
- Codeforces — Best for regular contests and problem archive
- AtCoder — Clean problems, excellent for learning DP
- CSES Problem Set — Structured topic-wise problem set
- USACO Guide — Excellent for BdOI-level problems with editorials
Consistency beats intensity. Solve 2-3 problems per day, every day, for 6 months. That's how you make the national team.