I'd say if your goal is competition, then the best thing you can do is find people to compete against. You and them would bounce ideas and information off each other and progress towards that goal faster than trying to imagine what competition feels like with regards to programming.
Check out meetup.com and see if there are any local meetup groups that share your goals or more generally just revolve around programming.
Outside of that, check out Code Kata for problems and combine those with the Pomodoro Technique if your goal is speed.
When practicing I like to set up a Practice folder and create a subdirectory for each day I Practice. You can even create sub-subdirectories for the pomodoro periods with which you work on a problem. After the day or period is up, that directory is frozen and you should only go back to it for review or reference. Basically start fresh on a problem each day or period.