Programming is similar to knitting? Well, for our brain it is.
As Emmy Cao (Developer Advocate, Wix) says, our brain is plastic and fantastic – it’s really good at changing and adapting.
Also, it’s very efficient—if you do something every day, that behavior will become automatic.
Let’s apply that to programming.
Do, repeat – and be intentional!
What’s the best new programming thing to learn or the best framework to use at the moment?
Well, maybe that’s not THE question. For Emmy, the number one skill for developers is not tactical but the ability to learn. And for learning, repetition is the key.
When thinking about repetition and practice in programming, it’s important to be intentional. Consider the difficulty and context of your tasks. Are you challenging yourself? Are you improving within the same context or trying new ones?
A common issue is getting stuck in ‘tutorial hell‘, where you keep doing tutorials because they’re easy. To truly grow, you need to apply your knowledge, not just repeat it.
In programming, adds Emmy, it’s often said, “If your GitHub doesn’t look like this, what are you doing?” But the best approach depends. “Are you focusing on one repository or multiple projects? Working long-term on one project hones specific skills while tackling various projects broadens your experience across different contexts.”
Find the right challenge for your brain
In addition to repetition, we should use proven methods from psychology and cognitive science to learn: test our knowledge, add new challenges, and practice in varied contexts.
“Pair programming is beneficial because it exposes you to different workflows and thought processes. Rubber duck programming works because explaining your code linearly helps you understand it better”, says Emmy and adds:
Flow and focus states are crucial for productivity, and creativity often comes passively. Flow usually occurs when you’re really good at something but also find it challenging. It’s about finding the right challenge for your brain. Other factors include well-defined challenges, time constraints, and personal interest.
The brain has two states of thinking: the default mode network and the task-positive network, or focus and diffuse states. Focused thinking is good for solving highly technical problems, while diffuse thinking allows for creativity and random thoughts. Taking breaks is important because it allows for diffuse thinking, leading to creative solutions.
And don’t forget the Dunning-Kruger effect: the loudest, most confident people often lack experience. As you go deeper, you realize how much you don’t know. Beginners tend to be the most confident, while experts and intermediates often feel they’ll never master it all.