September 9th 2020
There's no grey area in your mental state when programming. You either feel like a genius or an idiot, and everyone, even the most experienced coders, feels this way. Here's how to set yourself up to stay motivated. Plus, learn what the five common mistakes people make when learning to code.
One of the most important things to remember when learning to code is that it’s accompanied by two mental modes, idiot and genius, often with nothing in between. I’ll talk about why this happens.
First a warning: this feeling may never go away. Coders new and old can feel alternately totally brilliant or utterly stupid when writing code. It’s hard to believe that a coder of 10 or 20 years experience would feel like an idiot but it happens.
When you’re coding, you’re in a creative state of mind. You’re building sections, features or even sites that have never been created in this way before. You might feel like it’s been done previously but maybe not in this way.
Being in the flow of creativity gives a great feeling of achievement. Everything is going well and you’re so good at this coding malarkey. It feels unstoppable and you lose track of time.
Then. You. Get. Stuck.
Why is this code not working? It should be so simple but it’s just not working.
Here’s the thing. Computers are dumb. They just carry out the instructions we give them, so if something’s going wrong, it’s not the computer’s fault. It’s yours. It’s incredible how quickly the high of productive coding can turn into a low of confusion and anger.
Usually, it’s a tiny mistake that can be easily solved. Sometimes you fix it and you don’t really know what you did but it worked. But as soon as it works again, the high comes back. I fixed the code. I did it. It was me.
I. Am. A. Genius.
Code is built on the foundation of the binary system. A light that goes on or off. Ones and zeroes. If this happens, do this, if it doesn’t, do something else.
Learning to code is also binary. It’s two moods: genius mode on or genius mode off.
A few months after teenage me started learning to code, I had a belief that I could tackle brand new projects I was imagining from scratch. I wasn’t able to sleep because I was thinking about the social networks I could create with my coding knowledge.
Now, some may be laughing at a then-17-year-old not being able to sleep because he was thinking about how to structure a comments section rather than sports or girls, but I was inspired. When it came to making what I wanted, however, the mountain of code was too big for me as a beginner. I took on too much.
Some students have grand plans for what they want to do when they learn to code. We like to work with them to make a plan to get to that point, by breaking the project down into small sections, rather than taking on a huge single task. Keeping it simple and building up your knowledge works better than taking on a massive task too early and getting disillusioned. You don’t start weightlifting with the heaviest weight.
Learning to code will feel both exciting and hard.
Since learning to code, I’ve gone on to start SuperHi to help other creative people like me get in on the code train. Code shouldn’t just be for Marks and Bills; the idea of designing the web and using code as a tool for creativity can be for me and you too.
We’ve taught tens of thousands of people how to code and we see students making the same mistakes over and over again. The thing is, many people get stuck into a mode of imposter syndrome, especially when starting out. And when they get stuck, that can eat at their confidence and they may feel like it’s a sign that coding isn’t “for them”.
But everyone makes these same mistakes (even me, really!).
Here are some of the most common ones, probably in order of how often we see them from new coders:
- Spelling mistakes. You will constantly make spelling errors and typos. This is something I’m particularly guilty of. Make sure your “function” isn’t “functon” or “funtcion”. Coding doesn’t come with spellcheck, so everything needs to be exact, down to the letter.
- Using different words for the same thing. If you’re calling a list something like “restaurants” and plan to use it later in your code, make sure you don’t call it “places” or “stores” later on. Keep it consistent. I once spent two days fixing a bug caused by me using “confirmed” in one place and “completed” in another. It was a two second fix that took two days to spot.
- Not saving your files after you’ve changed them. Ever wonder why something hasn’t updated on your site? Some times you just forgot to save it.
- Not keeping code clean. In most languages, it doesn’t really matter about the white space in your code. If you do everything on one line or on 50 lines, it doesn’t usually make any difference. But when your code is starting to look messy, it could make it a lot harder to spot a mistake.
I hope that by just knowing what the common mistakes when learning to code are, that you’ll be better equipped to watch out for them and realize that when you get stuck or something’s not working, it’s just a matter of reviewing and troubleshooting, and looking very closely at your code, sometimes line by line.
Don’t worry if you feel dumb when you make these mistakes. Even professionals make the same ones daily, you just never hear them talking about it because they want to seem reliable and faultless.
It’s all part of learning. One quick way to find a solution to any problem is to google it (if you’re not sure what to google, just type a bunch of keywords of whatever seems to be wrong—something’s sure to come up!). And if you’re still having difficulties, you can turn to communities like StackOverflow or the SuperHi community.
As you start your learning to code journey, remember that if your code isn’t working, it’s most likely you (nope, we’re not going to do the “it’s not you thing”—this is real talk and you can handle it). But that doesn’t mean you shouldn’t learn to code or that you can’t get good at it. It’s mostly a matter of mindset and having the patience and the will to find and spot those mistakes without throwing your computer at the wall or giving up, even when you really want to.
Imposter syndrome is a thing, and you’ll probably bump up against it many times before you start learning to code, when you start, and during. You may never really escape it, but that doesn’t mean you should let that stop you from learning and making things.
Illustration by: André Cândido