17 Mistakes Self-Taught Programmers Make When Learning to code

17 Mistakes Self-Taught Programmers Make When Learning to code

And how to avoid them!

I want to start by saying that if you took the initiative to start learning to code, you should pat yourself on the back. No matter what you’re doing, just taking the first step and improving 1% daily is better than all those people sitting on the couch.

Many people fear starting something new, thinking it will be too hard, and never giving themselves a chance to succeed.

Yes, we all learn through mistakes, but to help you ease in on your journey, I want to outline some roadblocks people face when starting to learn to code and actionable steps on how to avoid them. Ok, so let’s jump right in…

Mistake #1 - Not having a plan and a goal in mind

First, you have to envision where you’ll be when you’ve mastered a new programming language and all the new opportunities you’ll have with your new skills. If that seems too far away, you can focus on finding a project you’re excited about. This first step will help you stay motivated and engaged in your learning.

It’s also worth keeping in mind that finding the time to learn any new skill ultimately comes down to discipline. Look at your schedule, find a good time to study, and stick to it. Learning only when you can find the time never works. You have to make the time. And remember, this will be your time for strictly studying and building a bright future, not for chatting or tweeting.

Mistake #2 - Skipping the basics

When you’re learning to code, you have to crawl before you can walk. Too many learners bite off more than they can chew and want to soar before they have wings, so they fall flat on their faces.

Remember — you’ll get there, but you need to learn the basics and build your skills. Many of the courses that I mention in this video are designed for beginners and will make sure you start your coding education with a firm foundation, making you a better developer.

Mistake #3 - Trying to learn multiple things at once

Don’t get me wrong, it’s good to understand different topics across the technology spectrum. It’s also good to be curious and want to learn as many things as possible. However, if you’re learning 3 programming languages simultaneously, you’re doing it wrong.

Software development is a deep ocean of languages, frameworks, and tools. If you try to learn everything, it will only create more confusion and slow you down. Many people who multitask become so overwhelmed that they call it quits.

Start by learning one language that has a need in the market and will help you get hired so you start getting real-life experience. Once you’re fluent in it, you will find it much easier to learn the next one. So simply pick one language and run with it.

Mistake #4 - Relying on too many resources

When I started learning to code, I felt I needed to check all blog posts, YouTube videos and online courses that taught JavaScript so I didn't miss out on anything (heard of FOMO, right?). But I was going nowhere because my head was in so many places at the same time.

With this in mind, it’s much better to stick to just a few resources; otherwise, it can get VERY overwhelming. Split your time between a couple of resources and personal projects that appeal to you and focus on those.

Mistake #5 - Not coding enough and being stuck on tutorial hell

This is the single biggest mistake people make when learning to code. They sit back and passively read or watch tutorials, thinking they are learning a lot like that. It's a trap! The fastest way to learn is by jumping straight in and playing with the code. You will find that a language’s syntax will get easier with time, and you can always refer to the reference material.

Breaking things, debugging, and learning from failure is why working on projects while you learn is so effective. So start with something small and build on it as you go. You should aim to spend 20% of your effort on theory and dedicate 80% to practicing.

Mistake #6 - Being afraid to break things

Following the last point, the quickest way to discover how something works is to break it and then try to fix it. Sometimes, you’ll break things you don’t want to, but it’s OK if you do. The worst mistakes tend to leave the biggest impressions, so you’ll probably never forget them.

Mistake #7 - Trying to memorize the code

Learning to code is slightly different than learning other topics that require a lot of memorization. Programming is a very abstract subject where you’re turning text into actions and graphics on the computer, representing something in the physical world.

With every new concept you learn, put it into practice immediately. Gradually, you will grasp complex ideas without struggling with memorization. Writing code is hands down the best way to learn and retain your new skills.

Another thing you can do, especially if you’re preparing for job interviews, is using the active recall technique.

Mistake #8 - Writing Code Without Planning

Always remember this mantra: Think. Research. Plan. Write. Validate. Modify.

Programming is mostly about reading previous code, researching what is needed and how it fits the current system, and planning to write features with small, testable increments. Writing lines of code is probably only 10% of the process.

So create a habit of going through each of these activities. Doing this will simplify coding for you and instill a problem-solving attitude.

Mistake #9 - Copy and Pasting Code Without Seeking To Understand

Some tend to fall into the trap of laziness and copy and paste lines of code without understanding why it is used and how it works. While copying and pasting code is not wrong, it’s a poor way of learning how to code.

Reading other people’s code, understanding, and writing it again yourself (preferably in your style) will help you will help build your muscle memory and learn more effectively. So when you can, take the time to learn from others' code.

Mistake #10 - Forgetting to test your code regularly

This is sad but true: your code won’t always work as intended. Check it regularly, and don’t let the subsequent errors pile up. Instead of exhausting debugging and figuring out what and when’s gone wrong, you’ll deal with a smaller amount of problems at each stage.

Mistake #11 - Being a lone wolf

I can't stress enough the point about surrounding yourself with a community of others who code. There are a bunch of supportive online communities on Twitter, discord, slack, Reddit, stack overflow, etc, with great people ready to give guidance and support.

Don’t hesitate to reach out, ask for help and engage with others. Interacting with other coders raises your chances of success significantly. It can even help you find a job, whereas a lonely learning experience will only lead you to abandon your learning path.

Mistake #12 - Giving into imposter syndrome

When coding becomes a struggle, you might think you aren’t cut out for a career as a developer. This lack of confidence is common, especially when starting. It even has a name — imposter syndrome.

But don’t give up! It's ok if you fail. You may even find that you learn more from your mistakes. Even when I encounter errors and bugs, I get discouraged, but I gladly have people that help me keep going.

Mistake #13 - Giving Up When The Going Gets Tough

As I mentioned, there can be many challenges along the path to becoming a programmer. Many people lose interest, get distracted, and give up when they encounter a tricky concept.

Sometimes life gets in the way, but it’s important to remember WHY you wanted to learn to code. Having a reason will help you to push through the hard times. So find your source of motivation. Diligence, patience, and persistence are essential to succeed in this field. When you hit a brick wall, keep pounding at it by rereading the concepts and practicing multiple times. You will be elated when the concept finally clicks, giving you the energy to tackle the next challenge.

Mistake #14 - Not being consistent

Many people fail at learning to code because they choose to take a few days off when they encounter a particularly tricky concept. Doing this increases the likelihood that they will fall off the wagon.

It's not necessary to code every day, since your body and brain also need a break, but you have to create a routine. Schedule your study time and show up even when you don’t feel like it. Even 20 minutes a day will go a long way.

Mistake #15 - Striving for perfection

There is no perfect programmer. Everybody makes mistakes. Everybody has flaws. We all write buggy software. There is no perfect code. So don’t be intimidated. Your project will never be a masterpiece. In 2-3 years, it will most likely be outdated anyway. Just build things that work even if the code isn’t clean. Mistakes are ok and are encouraged, they are the best way to learn.

So stop waiting for perfection and start applying to jobs, ship that project, or get started on that project you were thinking of. The people that do things and ship code will always win out over people that wait.

Mistake #16 - Labeling yourself

Do not, I repeat do not call yourself a beginner, apprentice, or newbie. When you use these words, a few things happen: 1) The person you’re addressing instantly recognizes you as inexperienced. 2) You subconsciously start believing(after some time) that you’re someone with less or no expertise in the domain and either of the above isn’t good for you. 3) If you somehow land a job or a project(can be freelance), you don’t get paid according to your expectations because you’ve established your inexperience by acknowledging yourself as a beginner, apprentice, or newbie.

Everyone is a learner; we are always learning; new technology, new ideas, and new skills. The more you learn, the more you realize how little you know. Once you understand that you are simply a software developer and compare yourself to your last project (and not to others), you are not a beginner. So just think of yourself as a professional and be confident in your skills.

Mistake #17 - Not following me

Lastly, if you liked this article, feel free to follow me on Hashnode and Twitter (where I share my coding journey) daily, and make sure to subscribe to my Youtube channel for more amazing content!!

I hope this article was helpful and would love to hear your opinion about it. I’m rooting for you, happy learning 💙