TL;DR: I have been doing Competitive Programming for over two years and reached Expert, though I believe I could have done even better. In this post, I share my thoughts on why some people improve faster than others, how strategy, structure, balance, and mental energy affect CP progress, and why spending more time doesn’t always lead to better results.
Hi everyone, I want to share some thoughts and questions based on my personal experience in Competitive Programming (CP). This post is more like a reflection and small research rather than a guide with guaranteed answers.
My background
I have been doing CP for over two years. My current Codeforces rating is Expert, and my results in olympiads are still modest.
I’m proud of my achievements, but I know I made some mistakes in my preparation. Had I followed a well-structured plan from the start, I could have achieved even better results, especially since I actually had enough free time for competitive programming.
I also know other CP students from my country who progressed at different speeds. Some practiced only around two hours per day on school days, yet their results were very impressive. I’m curious about how they managed to achieve such outcomes.
This made me think about why growth speed in CP varies so much between people and what factors contribute to faster or slower progress.
What I want to understand
Periods of fast growth
Some people experience rapid improvement during certain periods — at the beginning, in the middle, or even later in their CP journey.
Questions I am curious about:
- What exactly changed during that period?
- What strategy did you follow?
Did you:
- Solve problems close to your rating daily?
- Participate in contests regularly and upsolve seriously?
- Follow a strict or structured plan?
- Which habit or decision gave you the biggest return?
- Why do you personally think your growth accelerated at that time?
Periods of slow growth or stagnation
On the other hand, many people experience very slow growth, frustration, and the feeling that nothing is improving.
Here, I am interested in:
- What do you think went wrong during that period?
- Where do you think you made mistakes?
Was it because of:
- Lack of a clear plan?
- Random problem solving without direction?
- Avoiding difficult problems?
- Not analyzing mistakes deeply enough?
Understanding what does not work seems just as important as knowing what works.
Time, lifestyle, and mental energy
There is another interesting observation:
- Some people are very busy (school, university, work, hobbies), yet they still find a small amount of time for CP and keep improving.
- Others have a lot of free time and focus almost entirely on CP, but still do not get great results.
Possible explanations could be:
- CP is more “for fun” for some people, and other activities help keep their brain sharp.
- Doing only CP every day can lead to mental fatigue, boredom, and loss of motivation. Activities like:
- sports,
- other hobbies,
- or simply having variety in life might actually help CP performance instead of harming it.
So the main question here is: Is balance an important factor for long-term CP growth?
If yes:
- What would you recommend to someone with very limited time?
- What would you recommend to someone with too much free time?
More generally:
- What helps keep your brain active?
- What increases your motivation and learning speed?
- What helps you think more clearly during contests?
Why I am writing this
The motivation behind this post is a friend who is just starting CP, and I wanted to give her good advice. To do that properly, I first needed to reflect and research myself.
I hope this post is useful not only for that friend or for me, but also for:
- beginners,
- intermediate CP students,
- and anyone feeling stuck or confused in their preparation.
Please feel free to share any thoughts, experiences, or opinions, even if they do not match my situation. The goal is discussion, not absolute truth.
Note: English is not my first language, so I used ChatGPT to help improve wording and structure. All thoughts and experiences described above are my own.








in the words of 123gjweq2 — IQ
That definitely seems to be the main factor for rate of improvement. I really think that there are only two big factors that contribute to one's rate of improvement, which are:
A small one might be the quality of practice, but that doesn't seem to be too important, and I get the impression that very experienced users also don't think it's incredibly important, as long as you're not literally wasting time on $$$800$$$ s.
But I think it is important to point out though that not all mind games (chess, competitive programming, go) correlate so highly with $$$IQ$$$. It seems that the general wisdom is that if you can play chess well, you are smart. But, in reality, chess has a very weak correlation with general intelligence, especially in ranked players (around $$$r = .3$$$ for all players and like $$$r \le.2$$$ for ranked players). Imo, the reason for this weak correlation could be because more specific mental abilities (that aren't necessarily too related to general intelligence) play a larger role in chess skill than some would expect. And the reason why general intelligence plays a smaller role in ranked players than in unranked players is just because of Spearman's law of diminishing returns, and we can assume that something similar is in play for codeforces skill.
But I would be surprised if cf skill had a correlation below $$$r = .45$$$ with general intelligence (in the general cf population), just cuz cf involves a lot of math (and math subtests are some of the most g-loaded subtests out there, usually about as strong as vocab tests). Also, the one study done on cf vs $$$IQ$$$ found a correlation of $$$r \approx .43$$$. And I am almost certain that this underestimates the actual correlation in the general cf population by quite a bit because:
So I would not be surprised if the correlation were as high as $$$r = .6$$$ (which would mean that general intelligence by itself would account for $$$36\%$$$ of the differences in cf skill).
Given that CP is a mental sport, realizing that forcing yourself to work when unmotivated is very bad because very easily you get burned out. Also I improved very much when I started taking competitive math a bit more seriously
Answers?
So there is my reflection:
I do programming for 4 years, yet I am just specialist, because I didn't focus on it. All I did was relying on math knowledge + personal intuition to solve problem with greedy or brute approach. Once I took CP for serious I kept trying to solve problems that were at least on my rating, like 1500+ It took a lot of time, actually it helped to learn better and efficiently enough, but drained motivation as progress was slow
I have a friend, on the other hand unlike me he solved only problems of rating 900-1100 while I was solving 1300, it was obvious he also could solve more than 1100 rating problems, but he trained by quantity
Despite short period of time the difference was, he surpassed me
The conclusions is that building strong fundamentals is important. While harder problems help learning better, it is not as efficient as solving for quantity in improving performance.
seems like you improved a lot, I'm curious about your focus nowadays
Wish me luck, today and tomorrow is IOI selection stage 3 I have no way to not focus when I am so close to a spot in national team
overthinker
4 years specialist and master in 3 months
4 years ago there were not C#@t G%t and G$mi%i