Originally posted as a gist
All tips fall into one of two categories: practice, and learning from your mistakes.
The first category is pretty easy: do a lot of problems and spend a lot of time on CP. You’ll automagically see improvements.
The second category is much more interesting. There are people out there who have done 1000+ problems and are still newbies. Why? Because they are making the same old mistakes over and over again when solving problems. One useful tip might be to record yourself solving problems and doing contests, so it’s easier to see when you are wasting time, what makes you stuck, etc. You don’t even need to go to this extreme of recording yourself. If you make sure to reflect after solving problems and doing contests, such as what areas you are weak on, which types of problems cause you to get stuck, etc, you can fix these mistakes with pretty easy fixes like doing more problems of a topic if you are weak in that topic. You’ll automagically see improvements.