Best approach for competitive programming
Beginners ( < 2 months)
For beginners, it’s important to learn basic concepts. As such participating in many competitions won’t really help.
- Read about an important DS / Algo concept from a book or a blog.
- Find a question that can be solved using that concept.
- Code and Submit.
- Repeat 1 - 3.
Medium-level Competitors (2 - 10 months)
You already know the basics so what really helps here is taking part in real competition (especially long challenges). You should learn to solve problems that require an understanding of multiple concepts.
- Take part in competitions. Try to solve problems.
- Read editorials and solve problems you couldn’t solve during competition.
- Read other’s solutions and learn various tips and tricks.
- Learn all small optimizations and hacks (which reduces implementation time).
Pro ( > 12 months)
You are already good at this point in time.
- Take part in teams. Learn weakness of your team members. Fill the gap.
- Take part in many short contests. Reduce implementation time.
- Learn extremely advance concepts and corresponding mathematics. You should try to solve the hardest problems in contests at this point.
The key to becoming a good competitive programmer is persistence and practice.