1-**Brainstorming**: Write all the ideas that comes to your mind and discuss it with yourself that. 2-**Keep solve problems**: Don't stop, try to solve harder problems than your average from time to time to know if it's the time to move to harder problems, ex: now solve problems with hardness 1000 when that be easy for you move to 1100 and so... 3-**See other's solutions**: You can see another idea, learn how to perfectly employ the language and the most important thing is to learn how experienced programmers write code. 4-**Learn new topics**: This increases your knowledge, but don't learn a little of a topic then move to another, you should be experienced with it, you can learn the topics at USACO guide, just search USACO guide then write the topic. 5-**Divide the problem**: Make the problem easier by dividing it into small problems. 6-**Participate in contests**: To see how much you have evolved. Good Luck