0% found this document useful (0 votes)
67 views

Competitive Programming Roadmap

The document provides advice for effective competitive programming practice. It warns against superficial practice and emphasizes practicing to learn rather than just solving problems. Spending significant time immersed in challenging problems is important for developing creative problem-solving skills. Motivation comes from a genuine interest in problems, not external factors, and self-deception is a major hindrance to improvement. The goal should be learning, not just the number of problems solved.

Uploaded by

balexa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
67 views

Competitive Programming Roadmap

The document provides advice for effective competitive programming practice. It warns against superficial practice and emphasizes practicing to learn rather than just solving problems. Spending significant time immersed in challenging problems is important for developing creative problem-solving skills. Motivation comes from a genuine interest in problems, not external factors, and self-deception is a major hindrance to improvement. The goal should be learning, not just the number of problems solved.

Uploaded by

balexa
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Competitive Programming Roadmap

Warning

No RoadMap is going to work for you until you practice individual


problems correctly. Don't practice just for marking of problems as
solved instead of really learning from them. Things like daily routine
forces you to hit a certain mark everyday instead of practicing to
learn.

Remember

You aren't practicing to solve a problem or to prove that you are


capable of solving a problem but to learn how to solve a problem.

Spending a small amount of time on a problem means you will get very
little out of it. You need to immerse yourself in solving harder problems,
that's where real creative thoughts happen. When you try all the obvious
stuff and you don't have any immediate option available for the problem,
you actually have to take time to train your brain to think of new ideas.
The immersion and deep thoughts are the main way that you really
improve practice to maximize that.

How much time to spend on a problem


You can only think of solutions when you have a good past experience of
efficient ways to solve such problems. For that you need to Unlock Your
Intuition by practicing problems and understanding the solutions posted
by others. Quality of insights and intuition gained from a problem is
always important than Quantity of questions practiced.

You really have to have CP in your mind. After solving a problem, it


doesn't mean that it's gone and you have to forget about it. Maybe
you'll find yourself thinking about some interesting aspects of some
task and you'll invent a harder one?

If you can't solve a problem which is really interesting/important for you,


you'll try for a few days — the pleasure and self-satisfaction after solving
a problem for a few days with success is one of the best feelings.

Let CP get into your mind and find a true desire to practice. Don't try to
force yourself to practice in an organized way.

Self Deception
It is easy to lie to yourself about practicing and spend time without
actually doing meaningful practice.
From the outside it is impossible to tell the difference: no one can
look at your practice and tell you for sure that you are deceiving
yourself.

According to my latest hunch, self-deception is the single biggest cause of


not improving. I want to boldly put forward three hypotheses:

The best practice method is any reasonable method that doesn't let
you deceive yourself.
If you are sufficiently motivated, almost anything satisfies the criterion
above.
If you are not motivated, then almost nothing satisfies the criterion
above.

The only motivation that matters here is a deep interest in the problems
themselves. If you just watched a video from Steve Jobs or Elon Musk
with a bunch of genericisms about success or read some motivational
poster and got some kind of inspiration — I don't think that will get you
very far. Interest in the problems is what matters here.

Are editorials evil?


A popular method of practice is the following:
Pick a problem with difficulty rating f (your rating) and start solving it. If
you haven't solved it after n minutes (or n minutes with no ideas), read
the editorial.

In principle, I think that is a reasonable way to train. Here's what I think


will really happen with a lot of people.

Pick a problem with difficulty rating f (your rating). Pretend to solve it for
n minutes, then read the editorial. "solve" means "come up with the
solution (and possibly, implement it)", not "implement the solution".

Forget editorials. Start solving problems with no intention to ever read the
editorial. Stop asking "how many minutes" and start asking "should I read
the editorial at all?": not "when" but "if".

Remember

How many problems you have solved is an OK measure for how


much effort you have put in, but if it becomes your goal, then you are
by human nature likely to solve a lot of problems in the easiest way
possible which of course defeats the purpose of practicing.

Goodhart's law, "When a measure becomes a target, it ceases to be a


good measure".

Reference
1. indexed_at::31 July 2023 Monday
2. https://www.youtube.com/watch?v=bSdp2WeyuJY
3. https://codeforces.com/blog/entry/91114

You might also like