The rating ladder: a deliberate-practice plan for CodeChef & Codeforces
Learn
Rating climbs through deliberate practice, not volume. The distinction matters: deliberate practice means working at the edge of your ability, on your weaknesses, with feedback — not comfortably re-solving things you already know. Grinding a hundred easy problems feels productive and teaches almost nothing. Three habits separate the people who climb from the people who plateau.
One: solve slightly above your level. Problems you can already do teach nothing; problems far beyond you only frustrate. The sweet spot is roughly 100–300 rating points above your current standing — on Codeforces, where every problem carries a numeric rating, you can target this literally. Hard enough to make you think, close enough that you can get there.
Two: upsolve every contest. The problems you could not solve during the round are, by definition, your exact weaknesses — a personalized diagnostic the contest just handed you for free. After it ends, go back and solve them. Read the editorial only after a real attempt, never before; an editorial read cold teaches you to recognize a solution, not to produce one, and production is the skill that scores. The contest is the diagnosis; upsolving is the treatment.
Three: drill identified weaknesses by topic. When the same theme keeps killing you — DP, say, or geometry — stop practicing at random and grind a themed set until the pattern becomes automatic. This is exactly where reflex matters: some moves have to be in your fingers, not reconstructed from first principles under a ticking clock. (The site's Repertoire is built for precisely this kind of rote, scales-on-an-instrument practice.)
Which practice habit most efficiently raises your competitive-programming rating over a season?
The loop, then: compete → note what you could not do → upsolve it → drill the theme until it is reflex → compete again. Each turn of that loop targets your real weakness with immediate feedback, which is the entire definition of deliberate practice — and the reason it beats raw problem-count every time.