Update: Thanks for all the downovtes! Keep them coming! The more the better as they'll only serve as fuel for this uphill climb that lies ahead of me. I will happily prove you all wrong in a year :)
Sorry for the pretentious title and rant; it's mostly a note to myself although I'm happy if it fires up some of you. I am someone with limited competitive programming experience and zero contests so it's all words at this point. But I just have to make a public commitment of reaching red in 6 months and LGM in 12 months. It sounds like a joke, but I am taking it seriously and have all the time and resources so I don't see why it's not possible. I do have some CS background from MIT but that doesn't mean anything because I didn't really commit myself to studying while in college. In fact, I thought I was hot shit and slacked off in classes and ended up getting kicked out earlier this year due to my abysmal grades. So I do have enough reasons to prove myself and thus the ambitious claim that seems somewhat delusional. But I understand what I am getting myself into and the effort it's going to take to pull it off.
That said, it doesn't matter whether I accomplish the boastful claim or not; by the end of 2020, I will at least have rediscovered my interest in problem-solving which I have locked away for the past 10 years. And I will probably have become good enough to the point that I can say that I have acquired a new hobby of learning algorithms which I actually find fun and rewarding. And hopefully give back to the community once I am competent enough. And I hope to ace my CS classes once I head back to college because I pretty much bombed every single exam. It absolutely sucked.
I am inspired by all of you who have made incredible progress in their CP journey, particularly Benq (who btw as good as he is today didn't solve a single problem on his first contest) and also a more recent one by tzuyu_chou who managed to reach LGM in just 18 months after yesterday's contest, who also started out by solving 0 problems in their first two contests and bounced back with probably one of the steepest climbs to red in just a couple of months. I am not competing against anyone and rating is just a number but if results like these don't inspire you, I don't know what inspiration means. It shows that remarkable improvements are possible and you never know until you give it your all and let it consume your life. Not to the point of exhaustion or sickness, but definitely beyond what is considered possible.
All the top red-coders have reached where they are today through sheer hard work. While you were doing something else, they were busy getting stumped by problems during their early days as well. And now that they are at the peak of their powers, we dismiss YEARS of effort as TALENT (which btw is highly overrated). Instead of trying to understand how they got there, finding that SECRET, why don't we try to appreciate the time and patience they invested to get there? And then put maybe half of that effort ourselves. I guarantee that will make you red if you care so much about rating like myself.
I have held back myself from CP due to a lot of self-doubt and fear of competing against so many talented problem-solvers. Instead of spending time solving another problem or learning an algorithm, I have spent hours searching "how to become red in 1 year" or "how to get better at CP" or "how long to think about a problem" or "which book to study" i.e. focusing my time on the completely wrong things. Finding a reason to NOT solve a problem. But all that BS must now end and I hope everyone who has similar questions will practice the art itself instead of trying to get the "answer".
As for training, I have been going through the USACO Training Gateway along with the CP3 book for the past 2 weeks and while I am nowhere near ready to start competing in contests, I have learned a ton already. I hope to at least make a single pass through the following resources before Google Codejam in 2020:
1) USACO Training Gateway (I hear it's outdated but really like the problems so far. I have almost completed the first chapter.) 2) Competitive Programming 3 (I bought the book 3 years ago but was daunted by the material and never touched it. I really like the coverage of the book so far and the direct relevance of the topics and approach in general to CP. Currently solving the starred problems and tracking myself on uhunt: https://uhunt.onlinejudge.org/id/1100020) 3) Art of Problem Solving Vol 1 and 2 (I suck at competition math and have heard that many red coders have benefitted greatly from a competitive math background) 4) CLRS (This was our prescribed textbook for the algorithms courses but I never took the time to carefully read it)
I think this should be enough for reaching red and I have other resources in mind once I get there. But I would like to focus on quanity rather than quality at the moment and committing to just these four books should give me a good foundation. Please let me know if you have any other resources in mind that you have found useful in your training, although most of them are widely known already.
That's pretty much it. If you have already given years to CP and have hit a plateau that makes it seem impossible to progress then please feel free to call me out on my delusions; I will probably still tell you that you are still limiting yourself in some way, whether that's through your beliefs about what's possible or through not challenging yourself with problems that seem impossible to solve. If you are an accomplished coder today and were once in my shoes, then feel free to leave any words of encouragement, although I don't expect anything because at this point it's all talk.
But if you are someone like me looking to start after much deliberation and careful planning, gathering resources and exhausting every single quora question on competitive programming, you are probably waiting for the right moment to dive into CP. It's never going to come with that attitude. Trust me. I've given it a thought for three years and did absolutely nothing assuming that things would just fall into place. It wasn't due to not having an interest but just being indecisive and resisting the deep drive to want to explore that interest. You need to discipline your mind and not give into whatever thought that comes into your head that tells maybe it's not possible for these following reasons because this is what the scientific research says or this is what my friend told me the other day. That's all hearsay and belief. Reasons to stop you from being better. Stop being a spectator and get in the game. Give your life to CP and CP will give its life to you (metaphporically, not literally).
And if it doesn't work out for me, I will probably have made a fool out of myself but it doesn't matter because I will make it happen.
(Sorry if this came off as an arrogant post. It's mostly just to keep myself on track.)