Hello there. I was thinking of buying a course on CP. The course is taught by a popular competitive programmer. The course's description says: "the problems will cover all types of stuff from various difficulties to various topics to various types of thinking, and most importantly I will teach you how to think and how to attack the problems".
My question is: do courses even help?
I have a friend who is a better competitive programmer than me and they have told me to self-learn CP. I am doing CP as a hobby and to become a better problem solver. I usually can pick up on new topics fast, but I have been struggling with problems, especially on "what to think" and "how to learn what to think" and similar stuff (Maybe it's because I am thinking I am absorbing the material while actually it's just passive consumption?). I have been through some blogs in the catalogs too, but I haven't been able to implement the advice properly either. I don't think anyone can specifically teach you these things, you have to pick up on them on your own — but if I see the lectures, I think I will be able to see and learn how they approach a problem. Is this a good enough reason to buy the course?
Also if anyone has any advice or any link to articles, blogs or videos about "how to think", your kind gesture would be most appreciated! Thank you in advance.
According to my past experiences, I can confirm that Self Learning is the best way(in my opinion) to learn something(including math, cp, etc.)
Honestly , I agree with your friend. Most of the content till expert or even candidate master is available for free. The major point is how much effort you are putting in and I dont think it is worth spending money at this stage.
The course would just give you a structured road map with some additional benefits which would indeed help you but I think the effect it would have would be minimal at this point of time. I also believe that exploring topics on your own is also a part of the journey and it would help you a lot.
Regarding the "how to think" part, thinking is an abstract concept and differs from person to person , so you would have to find your own method. The best advice I can give you would be to explore more problems and tackle them on your own without outside help, this would broaden your horizons which should be your goal.
This blog by Dominater069 might be close to what you want : https://codeforces.me/blog/entry/133289
What do you mean by "explore more problems and tackle them on you own without outside help" ? Does it mean I shouldn't jump to editorials once I realize I can't solve the problem and instead keep thinking about how else to approach it? What if hours pass and I still can't solve it?
The goal is to explore more ideas, as long as the problem does not need some data structure or technique you do not know, you should try to solve it completely on your own. I cant guarantee that this is the right approach but it worked for me.
If you cant solve a problem just put it aside for now , take a small break, do some other problems, come back to it later. This has happened to me more than once that when I came back to the problem after some time I could see it differently and eventually reach the answer.
As long as you have brainstormed to solve a problem, you would have improved your "thinking" aspect in way or another. After you exhaust all your ideas and cant think of anything new , only then you should open the editorial. Also , even if you solve a problem by yourself you should look at the editorial's solution as well, it might have some other approach and since you have already solved the question you might be able to grasp it better and quicker.
Ah I see! TYSM