&gt;&gt;Meanwhile, my friend wrote his code only after thoroughly understanding the problem. He used almost all the allotted time to think about the problem. He did not write code until minutes before the deadline.<p>I fully appreciate this. Indeed, coming up with good idea of exactly what the problem is and then getting an idea of a computational solution are the most crucial steps to programming. Once you get a fairly clear picture of a computational solution, you can very easily write the code.<p>But coding is what must be done ultimately. If you do not write code that can be executed on an electronic (till now) computer, you haven&#x27;t actually solved the problem, period. No amount of hand waving can do away the coding. I think, a child who learns to code can get many cognitive benefits out of it.<p>Of course, jumping right into coding without giving a thought as to what the problem is is a sure-shot way to frustration and other ill-effects. It&#x27;s like getting a soldering gun and trying to build a complex circuit without doing any analysis and design first.