Hi everyone, this is my first blog.
I have done competitive programming on and off in past few years, but never break the pupil barrier. Most of this time I was on job so didn't get much time after the work hours. I am trying to get back.
I always had this question about how some people are able to jump quickly through pupil -> specialist -> expert (and so on), and other people struggle to transcend these levels. I initially believed it might be because they have practiced more than me and know more pattern matching, it is a common answer.
But now I believe that practice might not be the only reason. There might be something specific about their thinking process and metacognition that makes them better at competitive programming. I want to ask this question to all the coders >= specialists, especially red coders.
- Is it a different way of thinking about problems (when solving them)?
- A strong ability to find invariants and generalise better?
- More effective post-contest analysis?
- A better method of learning from failures/mistakes?
- A mental framework that help you improve rapidly?
- Mathematical fundamentals that help you think logically? (not the trivial divide and conquer)
You can all drop your precious advice in this thread so others can enlightened. I want to understand the metacognition behind elite competitive programming.
Along with these questions, I want to share a list of resources that I have collected/found online. You can add/share your resources/blogs too for others to read.
- Competitive Programmer's Handbook (Book)
- https://cp-algorithms.com/
- https://usaco.guide/
- https://oi-wiki.org/
- Discrete Mathematics and Its Applications by Kenneth Rosen (Book)
- Cormen (of course! though academic)



