Wise coding is a way of working through typical stumbling blocks with a greater sense of ease by using outside-the-box methods and “working smarter.” It includes the idea of giving yourself permission to make mistakes and permission to feel confusion. It also aims to make the experience of coding “smoother,” with fewer starts and stops and more ways to respond to the inevitable frustrations that are part of coding.
What are some common misconceptions about coding?
To make this idea more specific, first I’ll introduce three common misconceptions that cause people to write code in a “non-wise” way and then show the wise way to respond.
Common misconception #1: Mistakes are bad. Typically people assume that mistakes are bad. This is understandable, because most everyone wants to judge their rate of progress. Doing things correctly signifies progress, while mistakes seem to mean backward movement. But mistakes are actually a good part of the process. We’ll examine this below.
Common misconception #2: Writing a lot of code is always good. Again, as people want to judge their rate of progress, it seems like a lot of new code must mean a lot of progress. This is not always true, as we’ll see.
Common misconception #3: Confusion is bad. Confusion is a really unpleasant emotion. It’s completely understandable that people would want to avoid it. However, it’s a necessary part of the process, as we’ll see.
Now we’ll look at what’s really true about these three misconceptions.
#1: Actually, mistakes are good.
People learn from mistakes. If you’re going to go forward in a new area, you’re going to make a mistake. There’s a nice quote from Albert Einstein: “Anyone who never made a mistake never tried anything new.”
Coding is complex. Mistakes are inevitable. For this reason alone, it makes sense to relax around them so you don’t sap your mental energy.
Beyond that, mistakes are actually good when you treat them as learning opportunities. I can show you how to respond to a mistake by examining why it happened and what can be learned from it. You’ll find not just a fix for that particular mistake, but a deeper understanding of coding in general.
#2: Actually, writing a lot of code isn’t necessarily good
If you write code quickly, you might assume you are making good progress.
But, if we aren’t going to judge mistakes as bad, then we shouldn’t get too excited about a lot of code. The process of coding has its ups and downs. Sometimes you make a lot of mistakes and sometimes on the other hand you write a lot of good code. It’s best to keep an even keel.
There are other problems you should think about when you write a lot of code. Some or all of these may be issues:
- Your code may not be a good solution to the problem.
- You might not be learning anything from it.
- It might be poorly organized.
- You might be writing code thoughtlessly on auto-pilot.
I’m not saying that writing a lot of code is always bad. Sometimes it’s good. The point is not to assume it’s necessarily good and to be aware of issues that can be present.
#3: Feeling confused is actually normal and okay
Just like mistakes are an inevitable part of the process, confusion is too.
Confusion is an unpleasant feeling. For some people, it may be the most unpleasant feeling they have while learning to code. Never underestimate the lengths someone will go to in order to avoid feeling confusion.
But confusion is normal. In fact, trying to avoid confusion is a sure way to prevent yourself from reaching deeper insights and levels of understanding.
I like a quote from a corporate mindfulness trainer, Michael Gelb: “Confusion is the welcome mat on the door of creativity.”
I can help you to relax with confusion by guiding you through it one step at a time.
Wise coding makes a real difference
It’s hard to learn to code. You want every advantage you can get. As we work together, I’ll teach you wise coding, and you’ll find that this makes the process less stressful and promotes easy learning.
To learn more about the wisdom of tiny steps, see “All Tiny Steps Lead to Rome.”
To learn about the type of problem solving involved in coding, see “Coding is Problem Solving.”