A brain is a lot like a computer. It will only take so many facts, and then it will go on overload and blow up.
– Erma Bombeck
One could argue that writing code can be boiled down to writing a series of AND, OR, and NOT statements. Anyone who has seen assembly language knows the fundamental commands do not vary a whole lot. So why is it that tutorials advertise “no coding necessary?”
There is an art to coding that is hard to pick up without doing the work. I learned this from my own experience of coming from a humanities background and expecting it to be like picking up a language. Learning the programming language is an important aspect, but the language has far less bearing compared to understanding the underlying technologies. It’s like needing to know how acids and bases interact before you invent a new recipe.
1. Play logic and math puzzles
If you’re not a puzzle type (I’m not), seek out opportunities to challenge that part of your brain. Puzzles will teach you an intuitive grasp of the underlying math and logic so essential to the function of computers. They will also train you to be thoughtful and persistent, qualities that will make you a successful coder in the long haul. Check out http://www.mathplayground.com/logicgames.html for a nice selection.
2. Break the task into higher level chunks
It’s tempting to start off a coding project by drilling down into the nitty gritty of how each and every function will work. Learn to leave stub functions and classes for later and focus on the overall structure first. Raise your view from the 1,000 foot level to the 10,000 foot level. See the whole, then map out finer grained sections.
3. Limit your use cases
Take on a specific type of coding when you’re beginning, such as website or app development. You will become familiar with a small spectrum of tools, and that in turn will get you started on the thought process needed to build software. By all means branch out once you’re bored, but when it’s new to you, avoid tackling Arduinos, ActionScript and APIs all at once.
How do you condition yourself to approach the ultimate coding mindset? Or is there a way to bypass the limitations of the coder?