Isn't the idea of competitive programming not about learning to be clever, but about being such a good programmer you can come up with these clever things, and have a fun outlet for it? Competitive programming isn't a goal per se, so much as it is being able to compete is a result of actually being good enough at something to <i>become</i> clever about it.<p>Runners tend to be <i>good</i> runners before they ever attempt to break world records. Chain saw jugglers tend to be good regular jugglers before they switch to chain saws and then attempt world records.<p>In a professional setting, clever is pretty much always stupid.<p>There's nothing wrong with competitive programming. But like juggling chainsaws, it isn't worth much outside of pub talk. It is something fun for those who have the skill, or enjoy seeing the skill demonstrated in crazy/entertaining ways.<p>And most importantly, "Programs must be written for people to read, and only incidentally for machines to execute." -- Structure and Interpretation of Computer Programs, MIT Press