Competitive programming communities are built upon a deeply appealing idea: that performance is earned. The premise is straightforward. Those who study more, practice more, and persist longer will eventually rise. Ratings, in this view, are not merely measurements of skill but reflections of effort, discipline, and commitment. It is a narrative that resonates because it feels fair. Everyone enters the system under the same rules, and the number beside their name appears, at least on the surface, to reflect what they have achieved.
Yet beneath this narrative lies a question that is rarely discussed directly, perhaps because it is uncomfortable to even phrase correctly. To what extent do ratings reflect improvement over time, and to what extent do they simply reveal what was already there in the first place?
Anyone who has spent enough time in the community has witnessed a pattern that is difficult to ignore. Two participants may begin learning at roughly the same time, use similar resources, and devote comparable amounts of effort, yet their trajectories diverge almost immediately. One seems to “click” with problems early on, recognizing patterns, compressing statements into familiar templates, and moving from insight to implementation with surprising ease. The other does not. And from that point forward, the gap rarely closes in any meaningful sense. It may fluctuate, it may narrow temporarily, but over time it tends to stabilize.
The standard explanation is that one simply needs to practice more. Solve more problems. Upsolve more contests. Repeat this long enough, and improvement will follow.
This explanation is emotionally satisfying because it preserves a clean meritocratic structure: effort in, rating out. But in practice, it often fails to match what participants actually observe. Many users report spending months or even years practicing consistently without experiencing proportional improvement in contest performance. They become familiar with patterns, they recognize editorial ideas after seeing them, yet under contest conditions those same ideas do not reliably appear in time.
There are also a small number of widely cited outliers whose trajectories reinforce this perception of non-uniform skill distribution. Players such as Tourist and Jiangly are often brought up in discussions not simply because they practiced extensively, but because their problem-solving speed, structural insight, and consistency at the highest difficulty levels appear qualitatively different from even very strong competitors. In these cases, the gap is not just one of experience or exposure, but of how rapidly complex structures are recognized and manipulated under contest conditions. While deliberate practice is still a necessary component of reaching elite levels, these examples are frequently interpreted as evidence that the very top of competitive programming may include cognitive ceilings that are not uniformly attainable, and that a small number of individuals occupy an extreme tail of performance distribution rather than a point along a smooth continuum.
This is where a more uncomfortable interpretation emerges, not that practice is useless, but that practice alone is frequently insufficient once certain cognitive gaps exist. Competitive programming is not just repetition, it is real-time compression of problem statements into abstract structures under time pressure. If a participant does not naturally form those abstractions quickly, repeating similar problems does not always close the gap, because the bottleneck is not exposure, but the speed and stability of internal pattern formation.
In that sense, “just practice more” is not wrong, but it is incomplete to the point of being misleading.
The reality is that competitive programming is not merely a test of knowledge. It is a test of how quickly prior knowledge can be activated, how rapidly new problems can be mapped onto existing mental templates, and how efficiently abstract structures can be recognized under time pressure. These capabilities are tightly coupled with what people informally call “intuition,” but which in practice reflects a mixture of exposure history, cognitive processing style, and differences in pattern recognition speed.
What makes the system feel deterministic to many participants is not that improvement never happens, but that improvement appears heavily front-loaded. Early performance tends to set expectations. Expectations influence confidence. Confidence influences participation. Participation determines exposure. Exposure determines learning speed. And learning speed determines future performance. In this sense, the system behaves less like a neutral ladder and more like a trajectory that stabilizes early and becomes increasingly hard to deviate from.
Once a participant crosses a certain threshold, they are exposed to entirely different distributions of problems, ideas, and peer groups. They begin solving problems that implicitly assume familiarity with advanced concepts, while lower-rated participants remain in environments where those same concepts are rare or delayed. Over time, this creates the impression that participants are not converging toward a shared skill distribution, but instead separating into stable bands.
From this perspective, rating does not feel like a measurement of current ability. It feels more like a projection that becomes more accurate the longer it runs.
What makes this especially striking is how quickly the system appears to “sort” participants. Within a relatively small number of contests, patterns begin to emerge. Some users consistently read problems correctly and translate them into solutions. Others consistently miss the key observation. These differences are then reinforced through rating changes, which further stabilize participation in different segments of the ecosystem.
As a result, many participants develop the intuition that ratings are not something you improve toward in a purely linear way, but something you gradually discover about yourself through repeated exposure to competitive conditions.
Of course, this interpretation is rarely stated explicitly, because it clashes with the preferred narrative of universal improvability. The community tends to emphasize effort, more upsolving, better discipline, stronger consistency. And while effort undeniably matters, its explanatory power weakens when confronted with cases where sustained practice produces diminishing returns in actual contest performance.
This is where the tension becomes difficult to ignore. If practice were fully sufficient, then long term convergence would be the norm. Instead, what is often observed is partial convergence followed by long periods of stagnation, even among highly motivated participants. This does not imply that improvement stops, but that it often slows dramatically after initial gains.
None of this implies that improvement is impossible. Competitive programming contains many examples of participants who rise significantly through persistence and deliberate practice. But the distribution of outcomes suggests that practice is not a universal equalizer. It interacts with underlying differences in how quickly individuals process and internalize problem structures.
This is where the uncomfortable ambiguity lies. If early differences in performance are strongly predictive of long-term outcomes, then the system begins to resemble something less like a learning environment and more like a sorting mechanism. Not perfectly rigid, not fully deterministic, but sufficiently stable that participants often interpret their early experiences as highly informative about their future ceiling.
The difficulty arises when ratings begin to acquire meaning beyond performance measurement. A number intended to reflect contest results becomes entangled with assumptions about reasoning ability, learning speed, and general competence. Participants who improve quickly are often treated as inherently talented, while those who struggle are often told to simply “practice more,” even when their practice volume is already substantial.
In this sense, ratings begin to feel less like a record of improvement and more like a slow revelation of constraints that were present from the beginning.
Ultimately, the question is not whether effort matters. It clearly does. The more difficult question is whether effort alone is sufficient to overcome differences in how people process problems under pressure, and whether the “just practice more” explanation, while well-intentioned, sometimes obscures more than it explains.
A community that acknowledges this tension may become more honest about what practice can and cannot do. It may also become more careful about interpreting ratings as purely behavioral outcomes rather than reflections of deeper structural differences.
Of course, this discussion will probably be ignored because the first response will inevitably be something along the lines of:
"That just means you need to practice more. Everyone improves if they actually try."
And after several hundred comments debating intelligence, effort, education, exposure, neuroplasticity, deliberate practice, and the philosophy of meritocracy, the thread will eventually converge on the same practical conclusion that nearly every competitive programming discussion reaches:
"Just practice more. You're overthinking it."
Perhaps that is the most stable equilibrium of all.








Auto comment: topic has been updated by evergreen1124 (previous revision, new revision, compare).
Imagine downvoting my post when all I was trying to do was argue that differences in performance on Codeforces can reflect underlying differences in ability and IQ, along with other factors that influence competitive results.
Maybe people are downvoting because of the way you have written this blog . I think its very long and looks uninteresting to read.
No offense, but it seems like the blog is teetering on the edge of being gpt-generated, like when I was reading it, it really did sound like chatgpt could've come up with something like that. But I think you should have the benefit of the doubt. Maybe you just used $$$AI$$$ to translate it or something. fwiw, the blog $$$100\%$$$ brings attention to something that isn't talked about nearly enough here. But the content isn't too groundbreaking, and it's mostly just general observations.
But your main point is right. $$$IQ$$$ correlates with everything to some extent, so it's really unreasonable to expect cf rating to be any different, especially since math / math-like things are usually highly correlated with general intelligence.
Another reason why you might've been downvoted, though, is that you didn't provide any evidence. There really isn't much direct evidence here, in your defense, but there is one study about it here, which shows that cf rating has a correlation of $$$r \approx .43$$$ with the $$$IQ$$$ test they used.
This is actually pretty remarkable, since the sample had a mean $$$IQ$$$ of $$$120$$$ or so (according to that $$$IQ$$$ test), and because of something called Spearman's law of diminishing returns, this correlation is actually a bit of an underestimate vs if the sample were representative of the general population ($$$100\,\,IQ$$$). But maybe it's not fair to consider the general population here, since there is evidently some self-selection going on here.
But this correlation is still an underestimate since the $$$IQ$$$ test they used is actually not that great. The $$$IQ$$$ test they used may only have an $$$r = .6$$$ correlation with general intelligence, vs a professional $$$IQ$$$ test having maybe an $$$r = .9$$$ correlation with general intelligence (no test perfectly $$$r = 1$$$ measures intelligence). If the only thing in common between the test and cf rating is general intelligence (which isn't too far off, judging by the content of the test), then you'd expect a significantly higher correlation to be seen if a better $$$IQ$$$ test were used.
Then you also have to account for the fact that the sample was maybe $$$1700$$$-rated, on average, and since cf has an average rating well below that, you would expect the correlation to go up in a representative sample of the cf userbase (this again follows from Spearman's law of diminishing returns).
Also, maybe some indirect evidence that cf has a pretty high correlation with $$$IQ$$$ is that math subtests on real $$$IQ$$$ tests are usually some of the most g-loaded subtests out there, for example the math subtests on the $$$WAIS$$$ and $$$SBV$$$ have g-loadings around $$$.7-.8$$$. So, given all of this, it's probably the case that cf has a correlation of $$$r = .55-.6$$$ or so with $$$IQ$$$ if the reference population is the cf userbase.
But ofc you were also downvoted because people hate when other people bring things like this up, because it basically says that intelligence is not something so latent and unmeasurable, but you can actually measure it to some extent. But people were able to measure intelligence much better than cf rating way before cf even existed, so I don't know what's up with that.
I feel like IQ tests in general are ineffective because you don't know what truth is, and thus have no way of measuring how close you are to it. In LLM training for example, you can ask people, and thus know which response is better, or in image classification, you can have humans label training data to definitively know what is "correct".
There's no single measure of intelligence. On a scale of "what matters for CF rating most to least", I'd say pattern recognition, memorization, and motor learning last, whereas in sports I'd put motor learning closer to the top. Every activity requires its own specific blend of "different classes of intelligence" and a single test that tries to output a summary statistic is pretty bad at best.
Also, the practicing effect is real, someone who has learned how to do mnemonics properly (which takes more practice than skill) would get an insanely better score on those IQ tests where it's just memorize numbers (not claiming these are good ones but you get the idea).
I view things as
CF rating (or really any competitive skill for that matter) = a * intelligence + b * effort. I don't claim to know what the hyperparameters $$$a$$$ and $$$b$$$ are, but what I do know is that the only variable you can change is effort and thus that's the only one worth caring about. I think nearly everyone can reach a respectable level (CM or even M in my opinion) solely fromb * effort, but of course getting to the very top like high GM / LGM / Tourist level requires a bit ofa * intelligenceeven if you haveb * effortmaxed out.Also also also remember that people love trash talking cyans/blues on CF but even if you are 1200 you will rock your typical undergrad CS major in anything related to CP.
Also also also also remember that you are more average than you think. P(you are not trying hard enough or not practicing correctly) is much higher than P(you are stupid), even if you condition on (stuck in pupil).
Also also also also also remember that the people who are good probably have put a lot of effort too. Like over the spring semester I kinda nolifed CP and probably had an average practice time of 2.5+ hours per day every day. That's probably part of how I got decently good quite quickly.
In my opinion, this is a bit unclear, but I think that I get what you're saying. You are saying that there is no single true way of measuring intelligence, right? I would agree with you, since intelligence really isn't something like height that is plainly visible.
However, I think that psychologists have stumbled upon a good definition of intelligence (I'd argue that they've stumbled upon the best definition of intelligence we have so far), and now we can get pretty darn good at measuring this definition of intelligence.
Basically, if you take any two mental tests that have right and wrong answers, let's say a math test and a history test, but they can really be any two random tests, and give both of them to a sample of people, you will find that the scores on these two seemingly unrelated tests are pretty much always positively correlated with each other. Why are any two random tests (with correct and wrong answers) almost always positively correlated with each other? People really don't have a good genetic explanation for it yet, but psychologists just called the factor responsible for these unwavering positive correlations "general intelligence".
Of course, you can't measure how much of this "general intelligence" factor a person has directly (basically, how well you can expect them to do on any arbitrary cognitive test), but with factor analysis (tbh don't ask me about the technical details, you'd have to do some research on it by yourself if you were really interested), you can approximate how much a single test correlates with general intelligence. And, from that, you can specifically design tests that correlate very highly with general intelligence, in the $$$r \ge .9$$$ range for the general population — professional $$$IQ$$$ tests.
I hear what you're saying, but for mental activities, it's usually the case that the ability that best predicts skill is general intelligence, not any more specific skill like fluid reasoning or pattern recognition (but you have to keep in mind that specific mental skills are often highly related to general intelligence, so they will often be very predictive of skill due to that).
Definitely, yeah, but this practice effect isn't on general intelligence itself, it's just on that specific subtest (I guess you are referring to digit span here). To measure someone's intelligence that has these sort of strategies, you'd just have to use different tests, and you'd still get an accurate reflection of their $$$IQ$$$. But yeah, this is a problem with measuring intelligence in general, there will always be some noise.
Also, just because you can't really change your $$$IQ$$$ doesn't mean that you shouldn't take it into consideration. Like if you have a goal of reaching $$$2400$$$ or something, then that goal is going to vary in size by a giant amount for someone with $$$100$$$ $$$IQ$$$ vs for someone with $$$140$$$ $$$IQ$$$. Like imo, I think that you have a point that you shouldn't needlessly worry about your $$$IQ$$$ and what it means for your progression if you already know it, but I believe that it definitely is something to keep in mind so you can keep more or less realistic expectations.
I would respond that what you're actually measuring is the correlation between (good at math) and (good at English). This effect can't be completely attributed to inherent intelligence, it's likely that people who find getting good at academic topics fun are likely to get good at both of them, for example.
At the end of the day, I'd say that every IQ test is non-specific, and the IQ test that most accurately measures your ability to do CF is your CF rating. So why waste your time to do IQ tests when you can just practice the actual skill you want to be good at and actually find out how good you can get.
Also, expectations affect your results (placebo effect style) and I wouldn't want people to artificially choke their own progress via some self-imposed limit on their progress. I always thought my genetics for sports were horrible but when I actually put effort into improving at it I got my name on the state powerlifting records list so... (oops I'm doxxing myself but whatever) (also for the record I do not deserve to be on there but I am so whatever lol)
Definitely, yeah, there are some factors that contribute to both math skill and English skill that aren't general intelligence, like as you stated, some people are just more interested in academics.
More generally, consider some random right/wrong mental test $$$X$$$ and another random right/wrong mental test $$$Y$$$. The tests could be totally (seemingly) unrelated, but you can pretty much always expect a positive correlation between the two because, on average, some people just do better on mental tasks than others. And so psychologists just called this general ability to do well at arbitrary mental tasks general intelligence. So just think of $$$IQ$$$ as one's ability to do arbitrary mental tasks (like a person's average "score" across many, many unrelated mental tasks) and this ability can actually be measured quite accurately.
You are correct in your first point, good $$$IQ$$$ tests aren't specific, as then they wouldn't be capturing all facets of intelligence, and there would be a lot more noise if $$$IQ$$$ tests just measured one or two things (specific factors / unreliability would account for much more of the variance in test scores vs general intelligence accounting for most of it on a more comprehensive test). The $$$IQ$$$ tests that have the highest correlations with general intelligence measure all sorts of things.
But I might disagree with the second part. I believe that an $$$IQ$$$ score could be a better predictor of "final" cf skill than one's current cf rating. Like if a high $$$IQ$$$ person is just starting, they don't know how to code that well, they will be $$$1200$$$ for a bit, but then their rating will increase. But I could definitely be wrong here.
Also, I assume that you're the only guy named Eric there, I don't know how good those stats are for powerlifting, but I guess you have like a $$$290$$$ lb bench or so? I remember a few years ago I was working out a bit, and I could do around $$$150$$$ lbs, but I could do it twice, so I guess my bench would be $$$300$$$ or so, and it didn't take too long to get to that point.
Uh yeah so 150lb for 2 reps is not the same as 300lb :sob: by that logic me taking 92.5 for 5 reps yesterday would be a bench of 462.5kg which is well in excess of the world record
I think that's interesting
With that explanation i think i should quit CP, i've been solving problems for 8 months now, more than 1200 problems, and still im newbie :(
maybe your methodology for solving is holding you back?
This is mostly a useless debate I think. You can observe differences in capability in pretty much every academic field. No wonder some people cannot reach pupil in 100 contests while others can become CMs in <10. Thinking about it actively will only pull you down. No matter how smart you are, there is always a bigger fish. Though I agree with one of your points — "just work harder" is not always practical advice. One should always consider the ROI and feasibility of the challenge before undertaking it.
More imp than practicing more is to identify bad thinking practices. i think that is what people hardly do after contests. and another problem is that the point where u have practiced tremendously and the results arent improving that much is not even reached by most of the people in the first place.
100% agree, solving 1 problem but learning the trick > 2 hours of grinding but you forgot everything that happened during it
yeah thanks for the encouragement. even i have been struggling in my contests, and what i have observed is my assumptions are very bad, or test case fixated, or sometimes i am just less creative to figure out why my soln is not exhaustive enuf. i think its like creativity comes with doing a lot of boring stuff, practise, but inference building is what will take people ahead. i think thats where the high iq guys are quick. so yeah i think for me i still got lot of problems to practise, and adding to it improving my thinkning practices. (i can tell they have improved ever since i do contests and practise leetcode) one last thing practicing with one guy (smarter or similiar level at u always helps :))
Also this reminds me. I think there are also some (practiceable) meta-skills that extend over many things you want to get good at and may fall under the blanket of "IQ". Things like managing emotions, finding your weaknesses, how to practice effectively, etc.
Oh yeah very true. Like while dfs-ing my thoughts process I realise I am just just bad at thinking about prime factors lmao. Very true
brutal blackpill
whats dat
https://journal-exit.de/wp-content/uploads/2021/06/Incels_-A-Guide-to-Symbols-and-Terminology_Moonshot-CVE.pdf
Sisyphus puts a huge effort that yields nothing. And you seem to be very surprised to realize that effort without proper application or channelling usually doesn't yield much.
Define practice. During my times of actively practicing CP almost full time apart from participating in competitions, writing contests and upsolving I was also learning math, learning programming languages, learning about different templates for CP and styles of writing code, problemsetting and helding competitions, researching specific A&DS topics, writing tutorials on them, giving lectures on programming, discussing and editing team reference book, discussing and trying different contest and training strategies, developing online judge, reviewing old problems from archives, meeting and talking to different people related to CP. You may say that isn't really a practice for competitions, but I would say that in a broader sense it is -- it is spending time in way that is related and helps you to improve.
Like in any sport, skill or craft finding a better ways to practice and apply your effort is essential. Funny enough sometimes practicing less will give you more -- having proper rest, sleep and well-being is also an important part of improving in anything. And if you are really sure that you're really putting tremendous effort that yields little result and you are unable to resolve it by yourself, you should seek for coaching (or probably different coaching).
preach
The problem with "just practice more" is that it is directionally correct but often operationally useless.
Two people can both practice for 1000 hours and get completely different results depending on what they do during those 1000 hours.
Now, the important thing to consider is: how much asking such question impacts your ability?
When you think "I'm not good enough anyway", "This is just not meant for me", your brain, even subconsciously puts less effort. You procrastinate more, starting feels like a huge burden.
Allow me to give you an IRL example, recently very widely talked about: Elon Musk Mr. Musk's Zip2 was a pretty succesful company, he sold it for 180 million dollars. A decent pay, right?
But Musk didn't go live on Hawaii, instead he reinvested almost everything into SpaceX, Tesla and Solarcity.
Economists at the time were saying it's a complete mistake, that he won't make it.
But he didn't care, he had a dream and was willing to pursue it, even if it meant risking everything. And it wasn't easy, rockets crashed 3 times. Only last launch, made with last money turned succesful. Was it a rational decision? Absolutely, the fuck not. But he'd never become a trillionaire without it.
So, next time you see a master, CM, expert, GM, think: did they just join and achieve it without any problem? Or did they pursue something they love so relentlessly, and so carelessly that they actually did it? Remember, how many things we consider normal, were considered impossible and utopic not so long ago.
Now, back to CP. It says you solved 44 problems all time. A lot of it are probably easy ABC problems. When you look at a hard OI problem, is your first thought: I can't do it, I'm too dumb? And just go straight to the editorial?
That is the likely answer. It was for me at least.
And about "studying the same". It may seem like it, because you solve the same problems at school, roughly equal codeforces problems, but actually one of them may: participate in EVERY single contest there is, study why something works exactly, spend night or during walks thinking about an interesting problem they saw.
So, in conclusion: Just do it. Participate in all contests you see, solve as many problems as you can. And like Elon Musk, be a dreamer. Even if some problem seems impossible, you'd be surprised at how much you can solve when you're dead set on something and believe you'll do it, no matter what. And it's also recommended to have some nice friends, who you have common topics with (let the main one be CP). That helps in staying motivated.
Best of luck!