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
Pupilafter 8-9 months - Reached
Specialistin August 2023 - Reached
Expertin 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/Dand sometimes harder problems. - I try to
upsolve problemsthat I couldn’t solve during contests. - I
participate in most rated contestsand alsodo Gym contestssometimes. - 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!








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.
are you serious ?
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!