Our brains are a lot like computers. We collect inputs, make calculations, then respond with outputs. Part of what makes our brains different, however, is their power to change biological composition. This process of adaptation is called neuroplasticity, and it’s something we should all know a little more about.
Neuroplasticity occurs most heavily during infancy and adolescence, but even as adults our brains are constantly rewiring themselves based on challenges and habits. The reason you were able to learn multiplication tables, for instance, is because your brain physically created neural pathways over time to make this process easier.
Perhaps, like me, you had distaste for mathematics growing up. My response was always “I’m not good with numbers, so math isn’t for me.”
Inherent strengths and weaknesses do exist — it’s part of what makes us each unique. In many cases, however, you can overcome those weaknesses by training your brain to work differently.
So why bring this up alongside programming? Because many believe that it is a skill reserved for the computer savvy geek archetype and that’s simply not true. There’s a massive learning curve, and getting over that hump takes a tremendous amount of time, patience, and support.
Programming is a unique skill that doesn’t borrow from many other disciplines. Sure, you’ll use math, but being talented at one doesn’t mean you’re talented at the other. Because programming requires a different state-of-mind, it will take your brain time to adjust. This process occurs alongside practical skill development.
It’s a lot like playing an instrument. You start with the simplest songs, scales, and progressions. For many, picking up an instrument feels unnatural for a long time. It can be discouraging to see others play so effortlessly. But with enough practice, you begin to form habits. Your fingers become comfortable creating the right notes with the right emphases. You also begin to understand music theory, figuring out which combinations work together and why. It simply takes time. Music has some profound effects on neuroplasticity, and interestingly, studies now support the idea that programming works in a very similar way:
“Students learning programming showed increases in connectivity between the prefrontal regions and the anterior cingulate cortex, which is associated with conflict avoidance and resolution. Anticipating and avoiding conflict between different software artifacts is a large part of what MIS professionals and computer scientists do in their jobs. We will go so far as to say that one of the primary factors that separates skilled computing professionals from the unskilled is the ability to anticipate and avoid creating conflicts among software artifacts.”
– (Computational Thinking: Changes to the Human Connectome Associated with Learning to Program, 11)
With this in mind, please don’t use “I’m not good with …” to justify holding back. If you think that building software might be something that makes you happy, go for it and trust your brain to lead the way.