Hello Codeforces community,
I've been doing competitive programming for almost four years now, starting in May 2022. Before that, I had no prior experience with programming. Despite that, my progress has been steady:
- Reached
Pupil
after 8-9 months - Reached
Specialist
in August 2023 - Reached
Expert
in February 2024
Now it's February 2025, and despite practicing regularly, I haven't been able to stabilize in Expert. Sometimes I gain rating, sometimes I lose it, but overall, I feel stuck.
I know consistency is key, and I’m putting in the effort. But recently, I'm feeling confused about my practice approach. Am I solving the right problems? Am I missing something important?
Here's what my current training looks like:
- I solve problems from past Codeforces contests, mostly
Div. 2 B/C/D
and sometimes harder problems. - I try to
upsolve problems
that I couldn’t solve during contests. - I
participate in most rated contests
and alsodo Gym contests
sometimes. - Sometimes, I practice problems from diiferent platforms like
LightOJ, CSES
.
Despite all this, I don’t feel like I’m improving significantly. Sometimes, I solve a problem and feel like I just memorized a trick rather than truly learning something new.
I’d love to hear your thoughts and advice! Looking forward to learning from your experiences.
Thanks in advance!
oops I think I was wrong.
Identify what are you struggling with most and practice that aspect.
Maybe you need solve problems within some "timelimit". Just like solve div2-C within 30 mins when practice. If the problem you have solved are mostly solved by your own, I suppose that it is easy to reach blue and keep it. If you feel hard to solve div2-C in the Codeforces Rounds, I recommand you practice problems between 1500 and 1800.
Just start solving 3000+ rated problems. After a dozen of them you'll easily reach a master.
An overlooked part to stay in the middle of expert is speed. There are many experts, and typically, there is an expert or lower problem, and then the next problem is a master level problem. This means many people will have solved the same amount of problems. The tiebreaker is determined by speed. Speed is what carried me to where I am so far. Speed doesn't just mean typing fast. Coming up with the idea fast is a very important step. This comes with practice. You should do virtual contests and emphasize speed, or even just time yourself. Another method I tend to use is "duel" someone, which is racing someone to solve a problem. This increases speed. I hope this helps!
solve 3500 rated problems bro
Strictly demand yourself, and you will also reach the pinnacle like me.