How to become a skilled programmer?

TL_DR:Just one piece of advice, please develop the attitude to learn to design programs that work as intended always. How to achieve the same? Start writing Requirements and their Test Cases.A long time ago, in a cubicle farfaraway an experienced computer sage uttered these pearls of wisdom during a Debug session “The more things change, the more they stay the same”. No doubt that while learning to program by using any language, learning the syntax for declarations, definitions, conditional statements, loops are all important. What iscrucialis the attitude to learn to design programs that work as intended always.Programming is and always will be a skill and “Skill is myelin insulation that wraps neural circuits and that grows according to certain signals.”[1]. The last part of the previous sentence explains scientifically that any skill can be mastered using Practice and Perseverance.Q:So how do we design great programs?A:Start with Requirements written in a plain human-understandable language.Q:How do we check if the Program does whatever is written as Requirements?A:Write Test Cases in a plain human-understandable language that tests the program for completenessand make sure you execute themall.Yes, it is easier said than done. What we are aiming for is not mastery of another language but for mastery of a new skill. A skill that will enable us to communicate with computers and make them obey our commands. A skill that will reward us enormous satisfaction at the end of the day. Persist, persevere and practice.May the source code be with you! Reference: 1.http://danielcoyle.com/the-talent-code/Author: MohammedSagheerT M