Programming is hard — Part 1: The Journey
You know that hackneyed saying about how the journey of a thousand miles begins with one step? Well, my friend Godfred Boateng says the journey of a programmer begins with a thousand pages. He had spent three months of the vacation reading a thousand-page book on the fundamentals of C# programming.
He was sharing this information with my roommate and I. My roommate also agreed that he had read an equal measure or even more before grasping the fundamentals of programming. As they talked, I was on my bed laughing because I had also done my fair share of reading as well. The journey had begun for the three of us and we knew in our hearts that the road ahead was going to be long and stressful. Now, these two young men and I, not to toot my own horn (which I am actually lol), are arguably the best programmers in my class. On the surface, we seem to grasp programming logic seamlessly. However, what people don’t know is that we spent long nights and countless hours reading in order to understand the fundamentals of programming.
This brings me an important focal point. Nobody is specially born to code. I’ll repeat it to allow it sink in - NOBODY IS SPECIALLY BORN TO CODE. As kids we are told by our parents or teachers that we were special or gifted. In a sense it is true, some have a general disposition to math and logical reasoning others don’t seem to get it on the first try and have to work harder. This usually leads to an anti-pattern where people with a disposition to a particular field don’t put in the work and are bested by seemingly average but hardworking peers and hence feel inadequate or inferior [A. Fabbro]. For example, playing of a musical instrument can be made simpler if the natural skill is there. However, excellence can only be attained by perfecting the skill.
Programming broadly consists of two parts: logical reasoning and implementation. The former is affected by your math background, the way you tend to process information and ability to solve complex problems. The latter is basically how well you can interact with a computer. In order to communicate with a computer you need to speak its language (or a variation it understands) this process is programming. Assume you travel to Ibiza, Spain you could attempt to speak English in order to communicate with locals but it would be better to learn Spanish prior to your visit in order to better communicate with the natives.
I’ll admit that some people naturally tend to grasp a language faster than others. For example there was always that French whiz in Junior High whom we all felt was taking secret lessons or something. It is the same with programming. However if you are ready to walk through the murk you will tend to see a bit clearly as you forge on persistently.