Why people fail to learn complex skills like coding

Source: Photo by Liza Summer from Pexels (2021)

Practice (not always) makes perfect

“Practice makes perfect” is how the saying goes: the more hours you put into your work, the better you will become. But does the amount of effort put in always lead to a guaranteed outcome of success? Of course not, you can still fail.

The different stages of coding

Learning to code is not a linear path. The practice of learning how to code is far more complex than that. In fact, while learning a complex skill, like coding, you constantly switch between different stages of an emotional rollercoaster before you are really job-ready.

Source: Learning to Code 2020

11 Reasons to fail and quit coding

In order to be able to avoid future failure,we need to understand why people fail to learn to code in the first place. It is not because they are not smart enough, as many smart people fail to code. There are in fact many reasons why people fail to learn a complex skill like coding and therefore quit. At Code Sherpas, we put the main reasons to fail and quit coding together.

1: Confusion

Starting to Code is easy, stay Coding is hard. After a relatively easy start, you start to realize “Learning a complex skill like coding is very challenging”. You will often get confused. That is what learning is about. If you are not getting confused, you are not learning. Instead, you just replay in your mind what you already knew. So, in order to learn complex things, confusion is a good thing. However, in order to manage the amount of confusion, you should limit the scope of the skill you are learning, to not let the confusion take the overhand. One of the most important things to do when learning a complex, new skill, is narrow the learning scope. To take one small step after the other, until you really understand what you need to do and why. So, confusion is oké, but only in chunkable bits. You can always expand the learning scope later, when the lesson is learned and understanding has taken over.

2: Frustration

You are starting to understand a bit of coding, so you continue learning and you are leveling up by picking something that is even harder to practice. Coding becomes harder and you´ll get frustrated again. But, that is also how it is supposed to be when learning a complex skill. Practicing to code is supposed to frustrate you. The idea of practicing and keeping on practicing is not only to get enough practice, but also to reduce frustration. It´s along the way of constant practice and frustration, as part of the process, that you will become better. Sometimes if the frustration gets too much, give yourself a break but always make sure to come back later, as coding is hard to learn and easy to forget.

3: Boredom

After learning yourself to code for a few years in a row, learning can also become a bit boring. If the skill you are learning is too complex and you do not have a broader goal in mind, it is easy to get bored when learning how to code. The software engineering field is an extremely challenging field with lots of boring aspects that need to be assimilated, before you will be able to make any fun coding project. So start with the end in mind. And motivate yourself to reach that end goal. If I learn how to do asynchronous functions, I will be able to create my own Weather Application. Coding can be hard, but if you know why you are doing it and what you want to achieve or which fun projects you want to build for yourself, the boring parts will be easier to take in, as you know the reward will come.

4: Promising lies

Become a professional developer in 8 weeks, Join our Bootcamp to Learn to Code on your free weekend and a Tech job is guaranteed, or Learn JavaScript in a Weekend.” The promises Bootcamp and online courses make sound great, but they are just impossible to realize in reality. In other words: they just sell promising lies to you.

5: Humans learn in different ways

Coding can be highly challenging and very complex. In order to really understand what you are doing, starting with abstraction and complexity is not the best way. Instead you should start easily and level up bit by bit. So, it is better to ignore the advice of the experienced programmers to start at a complex level. Instead, start simple and you will be more likely to succeed by adding up your level bit by bit at your own pace.

6: You learn how to code instead of coding

If you learn coding by focussing on syntax and details and not by focussing on how to solve problems, you are learning how to code instead of coding. If you want to learn how to, you should go beyond the theory and create a practical project in which you apply all the learned theory. In coding, theory is not enough, it takes constant practice to truly assimilate what you are learning. Building projects is where your real learning takes place.

7: The wrong mindset

There are two kinds of mindsets people can have when learning how to code: the fixed mindset or the growth mindset. In order to learn to code well, you need a growth mindset. In this mindset you focus on how much better you are getting in something in a few days, instead of how good you currently are (fixed mindset).

8: Coding is a teamsport

Although the myth exists that engineering is a place for loners, the opposite is the truth. When coding, you are part of a team. Even if you learn to code, you will be part of a team that helps and supports you to learn to code. You need people in your team to support you both on technical skills to get a second pair of eyes and on emotional support to help each other keep on going and improving yourselves. You need their encouragement, coffee and care. Their support is critical to your success. Even as a freelancer, you need like minded people to help you out when you are stuck. Coding communities, stack overflow, reddit, and open course universities are all great places to keep like minded individuals.

9: Stuck in tutorial hell

You are stuck in “tutorial hell”, going from one tutorial to another, without being able to code on your own, when you get discouraged and feel like it is too hard to learn. You are not going to get closer to mastery, until you write your first lines of code without any help. Practice sites like CodeWars will help you get this practice to code on your own, because that is where the learning starts.

9: Coding is not for everyone

“Anyone should learn how to code.” Although it comes in handy to be digitally literate, if you don’t like to code, stop it. Life is short and Coding is not for everyone. You need to be truly passionate about it or you will always be behind. The tech world changes rapidly and there is just too much relearning for you to hold on if you do not like what you are doing.

10: Specialize

If you still like to code, specialize. Companies are generally hiring you to solve a business need. If you can’t solve that, they are going to have to train you from scratch. So, you know the foundation of programming, but if you can’t solve the problem from day 1 and someone else can, then why should they hire you? Programming as a whole is way too broad. You need to focus on one specific skill and learn to keep going deeper and choose a specific niche stack to build projects in.

Don´t quit

Now you know the main reasons to fail and quit learning to code. If coding is what you want to do in your professional life, avoid these pitfalls. In fact, there is just one piece of advice to keep in mind:



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Diana Vilé

Diana Vilé


A passionate Digital Communication Professional from Barcelona, Spain. Experience: Content, UX-design, Frontend. https://dianavile.github.io/AllDigitalAgency/