Hello,
By no means, am I a very successful programmer or something, if you don’t want to read it its alright and also, if you think I am not qualified to write stuff like this, I will say that it’s just personal thoughts. In a hope that I will be helping some of the people here I will continue.
So, I was selected for the IPC Camp this year. I don’t know how, I thought I won’t because of my codeforces rating. I am just a green there. Thing is the topics that were taught in the lectures mostly consisted of rare topics that bridge the gap between purple and red. Things like palindrome trees and suffix automata were taught, many people did not even understand(Except a handful who are really good programmers). They almost never appear in any short contest. Yes, some topics like geometry and maths are actually helpful for the short contests but most weren’t.
I thought maybe this wasn’t the right camp for me, but then I came to a realization that this camp was really great, teaching us so many new stuff(Isn’t that the whole goal behind organizing any camp?), the problem is with me. I am a big-time procrastinator and never practice. All I do is look at the other “How to be better in competitive programming” type of questions on quora, codeforces and codechef. Most of the times while practicing, I open a problem, think of a solution, if I think of it, I look at the editorial and see if my thinking was correct and then if I can’t, I go to the editorial read it and leave it. I almost never implement and submit because of laziness. And I realized, this way it won’t work. Just cheating myself and doing long contests more than short contests is only hampering me. Even learning new topics now is not as important as practice. If you solve till div2 D on codeforces, you are a purple/high blue. New topics are only needed for div1 C/div2 E and if you solve them fast, you have a high chance of being a yellow or red.
I was having a talk with kevinsogo the other day, I told him that this is my last try for the IOI this year and asked him about how and what I should practice. Firstly, he told me about how, he said,“You are worrying about it too much. Even I didn’t qualify for ICPC World Finals, but I don’t care, all that matters is that I enjoyed solving the problems and will continue enjoy solving problems.” I asked when to see the editorials, he said,“If you really enjoy solving problems, you will never see the editorial and ruin the joy of problem solving. And if you don;t enjoy problem solving then what’s the point of programming competitively? It’s ok to see hints or the topics that are needed to solve the problem from editorial only. But that’s just how I have practiced.” He was really inspiring to me as a competitive programmer.
To sum it up, there is really no new advice, just to the procrastinators and the skeptics, there is no way to get better without practicing; even if you learn all the topics in the world, you will never be able to apply them in problems unless you practice problems. Just take it from someone who was the second lowest rated coder in the camp.
Please do comment and tell me if something I said here was wrong, I can assure there is no wrong intent from my side.
Hope you have a good day and happy coding
P.S. When I said “Short contest” I meant if you want a good ranking in the short contests, or else if you want to be among the top 10, of course topics like centroid decomposition and fft appear as div1 D or E many a times.