The practice mindset
Competitive programming is a skill — and like any skill, it improves with deliberate practice. Here’s how to make the most of your training time.Practice strategies
1. Solve problems slightly above your level
If you solve every problem easily, you’re not learning. If you can’t solve any, you’ll get frustrated. Aim for problems where you need to think for 20–40 minutes before finding the solution.2. Upsolve after contests
After every contest, solve the problems you couldn’t finish during the contest. This is where the real learning happens.Upsolving means solving contest problems after the contest ends. Read the editorial, understand the approach, and implement it yourself without copying code.
3. Learn topics systematically
Don’t just randomly solve problems. Follow a structured path:- Learn the concept (read a tutorial or watch a video)
- Solve 5–10 problems on that topic
- Move to the next topic
- Revisit weak topics periodically
4. Time yourself
Practice under time pressure. Set a timer for each problem (30–60 minutes for practice, 2–5 hours for virtual contests).5. Read editorials and others’ solutions
After solving (or failing to solve) a problem, always read the editorial. Look at top-rated users’ solutions to learn cleaner approaches.Recommended practice schedule
| Day | Activity | Duration |
|---|---|---|
| Saturday | Virtual contest on Codeforces | 2 hours |
| Sunday | Upsolve contest problems | 1–2 hours |
| Monday | Topic study (e.g., DP) | 1 hour |
| Tuesday | Solve topic problems | 1–2 hours |
| Wednesday | Topic study (e.g., Graphs) | 1 hour |
| Thursday | Solve topic problems | 1–2 hours |
| Friday | Mixed practice / rest | 1 hour |
Useful resources
- Codeforces Problemset — Filter by rating and tags
- CSES Problem Set — Excellent curated problems
- AtCoder Beginner Contests — Great for beginners
- CP-Algorithms — Algorithm and data structure tutorials
- Competitive Programmer’s Handbook — Free PDF book
What’s next?
Start solving
Begin with our curated beginner problem sheet.
Learn sessions
Dive into our structured Level 0 training sessions.