Competitive programming is often seen as a skill anyone can master with enough practice. While this is true to an extent, there is a limit to how far pure effort alone can take someone. This is similar to athletics, no matter how much training an average person undergoes after 18, they will never be able to run 100 meters in under 10 seconds like elite sprinters.
Natural Ability Matters
Just as not everyone is born with the genetic potential to be an Olympic level sprinter, not everyone has the natural aptitude to become a red coder in CF. Some people grasp algorithms, data structures, and problem-solving patterns much faster than others. It’s true a talented 10 yo primary school student in China might learn faster and more effectively than a typical college CS student. They can see solutions intuitively, make quick connections, and debug with remarkable efficiency. This is akin to how elite athletes have superior muscle composition, reflexes, and biomechanics.
Acceptance
In sports, most people don’t expect to become world-class sprinters, yet they still enjoy running, competing in local races, or simply staying fit. Similarly, in CF, the goal doesn’t have to be reaching the red rank. Many people use CP to sharpen their coding skills, train their problem solving ability, or maybe just have fun. Becoming a specialist in certain topics or reaching an CM level, even without being a grandmaster, is still a worthwhile achievement than nothing.
Conclusion
The idea that "anyone can become a red coder if they work hard enough" is as misleading as saying "anyone can run 100m under 10 seconds with enough practice." Natural talent plays a significant role, and the top ranks are often dominated by those with an innate aptitude for problem solving without exception. However, this doesn't mean CP isn’t worth doing just like sports tennis or football, it can still be rewarding and enjoyable at any level.