Lately I’ve been thinking about something that’s been bothering me for a while. On CF (and in competitive programming in general), it sometimes feels like there are two kinds of people.
There are those who see a problem once, and just get it. They read the statement, glance at the constraints, and somehow, within minutes, they’re already implementing a clean and elegant solution. And then there are people like me who read, think, test small cases, and still can’t quite reach that “aha” moment. Sometimes it feels like I’m grinding gears in my head while others are gliding.
So I started wondering: Is this “instinct” something you’re born with, or something you train? And will it be possible for normal people to eventually reach the same level as the “naturals” through enough deliberate practice, or is there just a limit we just can’t cross, no matter how hard we train?








123gjweq2 Brother, thou must needs tell them the truth.
It is unfair to say that there are just two types of people: those who get it and those who don't. The ability to solve problems is definitely more of a scale. Also, when you say that some people look at a problem and get it almost instantly, it's very likely that they have practiced a bit, especially if the problem involves some knowledge that really only relates to these types of problems.
Anyway, cf skill is a bit of both. I'm pretty sure that there are three major things that impact codeforces skill (listed in no particular order):
Practice. Of course, people get better through practice.
Early exposure to these sort of problems. It's kind of like how you can't speak English that well if you learn it at like $$$20$$$. But I think that this factor has a smaller effect on codeforces skill than it does on languages.
$$$IQ$$$. It also should not be surprising that people with higher $$$IQ$$$s do better, on average.
- Unfortunately, it's hard to say how important these factors are relative to each other, especially since they cannot really be compared directly. For example, you can't really say that $$$1000$$$
hours of practice is worth $$$10$$$ $$$IQ$$$ points because $$$1000$$$ hours would be worth way more than $$$10$$$ $$$IQ$$$ points if it were $$$1001$$$ hours of practice in total vs $$$1$$$ hour in total, but it would be worth way less if it were $$$11000$$$ hours of practice in total vs $$$10000$$$ hours in total.I think that you should think of it like this: your $$$IQ$$$ and the amount of early exposure you have both determine how quickly you will improve from practice. Also, gains from practice are definitely not linear. I'm not sure if they are logarithmic, but they definitely are at most like $$$y = \sqrt{x}$$$. And you can kind of imagine $$$IQ$$$ / early exposure as the coefficient of this equation. So it would seem like $$$IQ$$$ is a better predictor of skill for those who have practiced a bunch (since a lower $$$IQ$$$ person would need a hell of a lot more practice to catch up to a higher $$$IQ$$$ person, but, for various reasons, this might not be the case. It's hard to say anything beyond that.
If the naturals do not practice, yes. But if they are practicing as much as you, no.
Another thing that I think you should know is that what you consider "natural" and what you consider "normal" is relative to you. Some people below you might consider you a natural, and some above you might consider you less than normal, just because they judge from their own level of ability. That's just how it is.
You make a really good point tho. It’s definitely more of a spectrum than two categories. IQ and early exposure are def factors that mainly affect how fast we improve through practice, rather than whether we can improve at all.
In the end, maybe the real “instinct” is just the habit of staying curious long enough to connect all the different dots faster next time.
Yes, you can definitely improve by practicing more, especially if you are new. When you say instinct, I think that you are referring to being able to recognize a problem really quickly and solve it from there. That instinct can definitely be trained, but that instinct mostly comes into play when you're solving easier / more standard problems: problems you've more or less seen before / problems that combine techniques you've seen before. That's why I don't really get why companies are so insistent in using standard problems in their $$$OAs$$$ and technical interviews. Sure, they test if someone can code and has seen the pattern before, but they don't test much beyond that. They might as well administer something like the Wonderlic at that point, as it would be more beneficial to the company (general intelligence is the single best predictor of job training success / achievement in some role), and the candidates wouldn't need to grind out a few hundred leetcode problems to actually see all the problem archetypes. If they enjoy it, I guess it isn't that much of a problem, but it's just another thing you must do now to satisfy these companies. And there's another way to do it that's easier for both sides.
Yeah, that makes a lot of sense. “Instinct” probably shows up most clearly when problems overlap heavily with things you’ve already internalised. Once you’ve seen enough standard tricks, your brain just skips the conscious reasoning and jumps to the pattern.
I also agree about the interview point where most OAs don’t actually measure how someone thinks, only whether they’ve memorised the right archetypes. It’s kind of ironic that the best indicator of adaptability or long-term performance isn’t tested at all.
Maybe that’s also why CF feels more meaningful, because you can actually see improvement from pattern recognition to real creativity, instead of just solving for the sake of a checklist.
Yeah I used to think they did it to circumvent the $$$IQ$$$ test ban, but it turns out that you can just call them "tests of general cognitive ability" and you're good to go wrt the law. So they are probably doing it to virtue signal or at least avoid some type of boycott.