What’s the best way to handle frustration when learning to code? Knowing that all developers face frustration at times is a big help. You’re not alone. And it doesn’t mean that coding is not for you. Treat it as a learning opportunity and stick with it until you solve the problem. Keep trying ideas until one works. Remember the satisfaction waiting for you when your code works.
This episode describes how we try many things before we finally find a solution. And why is that solution the last thing we would have thought of?
It happens to us in other situations too. When you can’t find your keys and you’ve searched everywhere, what do you do? You keep looking and eventually find them where? In the last place you would have thought of.
This happened to me once. I could not find the key to my tractor. Yes, I used to have a tractor. It was a single key and was nowhere to be found. I finally gave up and just didn’t use my tractor for several weeks. I didn’t really give up. I would look for that key sometimes but it was nowhere to be found. One day, I was moving my boots and saw the key inside one of the boots! I must have dropped it and it fell into my boot. Who would have guessed that’s where the key was? It really was the last place I would have suspected.
Or was it? Listen to the episode or read the full transcript to understand what I mean.
That’s the last thing I would have thought of!
You’ve probably heard some people say things like this before. And maybe you use this expression too. What does it mean?
Well, we usually say something like this when we try something for a long time before finally succeeding.
Maybe you lost something and after searching for an hour, you find it where? In the last place you would have expected.
I read a book once where the main character was looking for a guru to help with his quest. He was searching when he came across a person sitting on a rock. He asked the person if he knew where the guru could be found. The person on the rock told him to keep looking because this will be the last place the guru will be found.
Most people take this to mean that they should look somewhere else. But the main character sat down in front of the rock and waited. When the other person asked why he hadn’t left yet, he answered that he was in the right location. After all, if this really was the last place the guru will be found, then why would he continue looking after he had already found the guru.
I always like this example because it applies so much to programming.
You will encounter problems that need to be solved when programming.
These are like puzzles sometimes. There’s not always a single correct answer to programming challenges and many times, we’ll be glad to find any solution that meets our needs.
Now, when you’re looking for a solution, where do you start? Do you go straight for the most unlikely or difficult solution?
We start first with simple attempts and work our way to more elaborate solutions.
What do you do when you find something that works?
You complete that task and move on to the next challenge. In other words, it doesn’t matter if the problem is simple or hard. We always stop at the last thing we think of.
Okay, maybe that’s not entirely true for simple problems. I can usually think of several approaches to solving something and if I decide to start with the second of three possible solutions and it works, then technically, I didn’t stop at the last thing that I thought of.
But we tend to forget about simple problems and remember only the big ones. The ones that take a week to solve or more. In those cases, you quickly go through all your initial ideas and reject them for one reason or another.
This is when frustration sets in.
We’ve tried everything we can think of and so far nothing has worked well enough.
Now, when a new idea comes to mind, we try it right away. And if it works, and if the problem was difficult enough, then we remember that it was the last thing we would have thought of.
The important thing to remember is that these problems will arise. Especially when you’re starting to learn how to program.
Treat them as learning opportunities because that’s when your skills will improve.
Don’t think that just because you struggle quite often with programming challenges that you’re not meant to be a programmer. Or that you’re not cut out to be a programmer. Or that surely somebody with more experience never needs to struggle anymore.
We all face challenges that are difficult.
And if you ever find something is no longer challenging, then that’s a sure sign that you’ve stopped growing.
I remember when I was in grade school, and we had this concept of a reading level. We were told to select books that were in our reading level so they wouldn’t be either too easy or too difficult. I forget when exactly, but it wasn’t until much later that I came across a better gauge of a proper reading level.
When you’re reading a book, you can tell if it’s at your reading level if there’s about 2-3 new words on every page. That’s actually a bit of a challenge for most people and they tend to stay with books where they already know what all the words mean.
These people are no longer advancing. They’re stuck.
The same thing applies to programming in a slightly modified way. The way I see it, you should be encountering new ideas and ways to express yourself for every few pages of code that you write. And at least once a week, encounter something that makes you think that was the the last thing you would have thought of.