You may find this interesting to see how the above “thinking pattern”; which is typically earmarked for the elite “design thinking & creative” tasks; applies to even the most mundane (not so of course) of the jobs.

Coding is one of these tasks; where we typically visualize a coder typing vehemently on a computer; reducing coding to a skill of the hands…with hardly or no engagement of the mind!! Whereas it can’t be any further from the truth as we can see with the example above.

Coding starts exactly where every small & big inventions of the world come from…the human mind. It is a mental skill that is manifested with manual & digital tools. In fact a major part of coding is mental that requires “adequate engagement, understanding the problem at hand, considering several approaches, implementing an approach, testing the result; & continued iteration until the problem is solved most efficiently & consistently.”

The coder doesn’t sit down to code “without a problem at hand”, a good understanding of the constraints & requirements of the solution, & a tentative plan; making it a problem solving activity. This concept is very important to understand to fully appreciate & correctly approach the process of “coding”; a skill that is again commonly considered technical/manual & not creative.

Imagination is not confined to creativity & design. The process of coding takes hours & hours of imagination where one tries to visualize & comprehend several options/approaches to a problem. Most of the work here is mental; where several solutions are tried & tested (which actually takes loads of passion & perseverance) with help from one’s hands & IDEs; until you find that 1 solution that solves the problem most accurately & efficiently…for the time being!!

Appreciating & understanding that indeed coding is mostly a creative, design thinking & problem solving process; that really pushes one’s mind to its limits; can drastically improve the way one approaches to learn to code & practice.

Iftikhar A Khan | Program Leader, Creative Computing