Congo, btw participate in Google codejam and kickstart, If you haven't they're underway right now but registrations are open. P.S. I don't know much about interview preparation but for competitive coding I know having a target to be among top rankers in competitions or reaching to 4,5 * user level gives you the reason to do a lot of coding. For knowing better approaches you can view top users solution after trying on problems at codechef etc. I think you should already be having the "mindset"or "right-approach-thinking " for problems, you just need to see hard problems.