This post was originally published on

Does this story sound familiar?

You’ve decided to learn to code! Filled with excitement at finding a new career, you quickly sign up for a Udemy course and register at freeCodeCamp.

Feeling optimistic and eager, you sit down and start going through the material that evening.

In the next several weeks, you fall into a pattern of studying coding till late at night, then waking up early the next morning to go to work. But you’re starting to get confused by some of the concepts, and there isn’t anyone to ask for help.

You’ve sacrificed your free time, and haven’t watched TV to unwind in a while. Also, having to miss nights out with friends sucks.

After a couple of months, all the late nights and lack of sleep are starting to weigh down on you. You bitterly come to the realization that you won’t be anywhere near landing a new job in 6 months. The thought is incredibly discouraging.

Finally, you decide to take a break. You’re feeling burned out and frankly exhausted. That break extends out for further months.

Later that year, you realize you haven’t cracked open your tutorial for a really long time. Sighing, you shove the thought of someday having a job you love into the back of your mind.

Maybe next year.

Staying motivated while coding

Is this story similar to your own? If you’re trying to teach yourself how to code, you are probably pretty familiar with the struggles in the story.

Learning coding or any skill on your own is way different from being in a classroom with a teacher. You don’t have mandatory classes, tests, grades, or the fear of failing to keep yourself motivated.

When you’re learning to code by yourself, you have to generate your own motivation.

So how can you accomplish this? How can you make sure that you keep learning, and don’t give up?

It’s tough, but it is possible. This article will share some tips and strategies that you can use to stay motivated when learning to code.

Here’s a quick outline of what we’ll be going over:

  1. Have an end goal in mind.
  2. Be realistic about your goals.
  3. Choose consistency over speed.
  4. Build up your willpower muscle.
  5. Avoid burnout and get rest.
  6. Don’t let impostor syndrome get you down.
  7. Find a community of peers.
  8. Get involved with local meetups.
  9. Don’t compare yourself to others.
  10. Stay curious and keep it fun!

Hope you find these tips helpful!

#1: Have an end goal in mind.

This might seem obvious, but have a concrete goal in mind when you’re starting out. Take a few minutes to really think about what your #1 goal is. What’s the most important part to you?

It could be to find a full-time job as a web developer so you can support your family financially. Or to have a flexible career where you can live anywhere. Or to work for yourself, without having a boss.

In all this, know what your “why” is. What’s the one goal that will get you out of bed in the morning, and makes you want to continue?

Once you’ve figured out what it is, write it down in a place where you’ll see it often.

Yeah, this sounds cheesy, I know. But it’ll help remind you of your goals and the whole reason that you’re giving up your free time.

It doesn’t have to be a super nice, designed poster. It can just be a post-it note or a piece of paper. One Instagrammer, Marie on @girlknowstech, creates her own simple motivational posters with posterboard. She hangs them on the wall above her computer so she can always see them.

What’s your end goal in learning to code?

#2: Be realistic about your goals.

Staying motivated essentially means not getting so discouraged that you just give up.

One really big pitfall in getting good at anything is having unrealistic expectations. Why is this?

Well, when you get discouraged, it’s often because your expectations don’t match up with reality.

If you’re jumping into learning to code, thinking that you will go from complete newbie to professional web developer in 6 weeks or 12 weeks, you may be setting yourself up for failure.

I’m not saying that it’s impossible to land a job after learning for a couple months, but it’s really, really hard.

(And I’m not a huge fan of proponents of the “learn to code in X weeks!” mentality, because they’re usually trying to sell you something. But that’s a whole ‘nother story ? )

Personally, I think it may take you more like 1 - 2 years to get good enough at coding to apply and land jobs. Of course, a lot depends on your own circumstances. If you are working part or full-time, or you have children, you will have less time than someone who is in high school or doesn’t have to work at the moment.

It also depends on how fast you learn, and pick up new concepts. This is simply something that varies from person to person.

Ultimately, just know that everyone moves at their own pace. Try to gauge how your progress is going and don’t set up yourself for failure by having unrealistic expectations.

#3: Choose consistency over speed.

On the same note, the rather cliched saying, “Slow and steady wins the race” is very true.

When you are just starting out, you might want to rush into things and spend hours each day dedicated to studying and practicing coding.

However, like I mentioned in the previous tip, that may be a somewhat unrealistic expectation, and you may well end up burning out and giving up.

You’ll be more likely to continue if you figure out how much time you can realistically and sustainably spend each day or each week studying coding. Once you find that out, stick to it.

Even if it’s only 30 minutes per day, if you do this for seven days a week, you’ll have studied for 3.5 hours that week. In one month that would be about 14 hours, and in one year, almost 200 hours!

Even small efforts, when combined with consistency, can lead to big accomplishments.

Take brushing and flossing your teeth, for instance. You might spend 4–5 minutes per day on brushing and flossing. A tiny amount of time!

But doing that every single day means the difference between having great teeth, and having no teeth.

This is why consistency is more important than trying to go as fast as you possibly can.

#4: Build up your willpower muscle.

Have you ever heard of the idea of willpower being an actual muscle?

I recently learned about how to develop it, through household chores (yes, exciting, I know).

At home, my husband and I divided up the chores. In the kitchen, my husband would wash all the dishes from that day in the sink, and put them in the dishwasher rack to dry overnight.

The next morning, first thing, I would put the dishes away while my morning tea was steeping. It only took a few minutes to do, but I haaaated doing it. It’s kind of a boring chore.

But I just kept forcing myself to do it, because I knew that it was my responsibility.

And the interesting thing was, over time, it got easier to just start putting the dishes away!

Now, I didn’t enjoy it any more than I did at the beginning. Yeah, still boring.

But my disliked chore had become a habit.

How does this relate to willpower being a muscle?

Well, if you start working out a muscle that’s really out of shape, it’s obviously really difficult at the beginning to do a workout.

But over time, working out will actually increase the size of your muscle, and you’ll get stronger. The workout will become easier to do. (This is why weightlifters continue increasing weights, to keep challenging their muscles.)

When I first started with my dishes chore, my willpower to put them away was very weak. At that point I would much rather not put them away.

But over time, as I kept just forcing myself to do it, I was working out that muscle for dishes and creating a new habit in my daily routine.

After a while, the habit became so ingrained in my brain that it was actually easier to go ahead and complete that chore, than to put it off until later!

To successfully become a coder, you have to develop your willpower muscle to spend time learning to code.

Even though coding can be really fun, it sometimes sucks to have to make yourself sit down and code, instead of doing other, more fun things in your life.

But just know that it will get easier over time, the longer you discipline yourself to do the work.

If you have a realistic, concrete goal, aim for consistency in your time spent learning, and understand that your will to code will get stronger over time, you’ll be much less likely to give up midway through.

#5: Avoid burnout and get rest.

Overworking yourself is a pretty common temptation if you’re trying to achieve something in your nights and weekends.

I’ve also noticed on Instagram, which has a vibrant community of programmers, there are many people who post about how late they stayed up, or how early they woke up to do coding.

While this plan may work in the short term, it’s really not good for you in the long term.

In my own experience, I’ve been working nearly full-time hours doing freelance web development, and then working on this website in my spare time.

There was a point I hit where I would work a full day, then stay up until midnight or 1am working on writing a tutorial or article.

I remember one weekend where I’d spent all day and night working on the website, and by Sunday evening, I felt simply exhausted.

Knowing that I would have a full day of work the next day was discouraging.

I realized then that I had probably burnt myself out. And I really needed to make time to rest and rejuvenate myself.

So one day that week where I didn’t have any projects due, I just lay on the couch and read a book for most of the day. It was glorious. At the end of the day I felt so wonderfully rested!

In your pursuit of learning to code, make sure that you carve out time to not just work, but to rest, if possible. It’ll help you in your progress in the long term.

#6: Don’t let impostor syndrome get you down.

Ah, the dreaded impostor syndrome. It’s something that plagues all beginners. Even more advanced programmers sometimes find it hard to shake off that feeling of not being good enough.

I’ve said this before, but when I first started working in web development, I was completely terrified of being found out as a faker. This was pretty constant in my first two years at my first job.

It took almost five years before I actually started feeling more confident in my own skills. So don’t feel discouraged if you’re feeling impostor syndrome. You are most definitely not alone!

One reason that I think this is such a common fear for coders is because the fields of programming and web development are just so broad. There are several programming languages, many different technology stacks, new frameworks seeming to come out every few months, and any number of tools.

It’s so easy to get overwhelmed by the vast number of skills that you “need” to know. It’s no wonder that so many aspiring developers struggle with impostor syndrome!

Conquer impostor syndrome with patience and focus.

You’re never going to learn every single thing there is to know about coding. To be honest, no one knows every single thing. Most programmers become experts in one programming language, maybe two, and may be moderately proficient or just familiar with others.

There’s nothing wrong with learning more than one language, but try to not jump around too much. You’ll spread yourself too thin.

Instead, try to focus on one main language and one stack, and get good at it.

Over time, as your skills grow, your confidence will also grow. And the best part is, you will have picked up many of the core principles about programming, which you can then apply to learning other languages, frameworks, and tools more quickly.

Another tip is to simply be patient with yourself (this is related to being realistic about your goals). Understand that learning coding is a marathon, not a sprint. It will likely take years before you are very proficient in it.

Now, that doesn’t mean that you will never be good at programming - it will just take time.

If you can be patient with yourself and your progress, and focus on one or a few skills to build up, you will be more equipped to battle impostor syndrome.

#7: Find a community of peers.

Another common struggle of people learning web development is that you feel alone.

When you’re learning in a physical classroom, you have fellow students who are doing the same thing as you. And you have a teacher that you can talk with and ask questions about the material.

If you’re learning coding online or with books, you often don’t have that luxury.

Finding peers and mentors can be very difficult, but there are some resources online that you can take advantage of. If you haven’t found any coding communities yet, I highly recommend that you take some time to look into them.

Being part of a community can really help with that feeling that you’re alone.

Reading about other people with similar experiences, who may be struggling with the same issues that you are, can be hugely encouraging and motivating.

Here are a few suggestions for places where you can find peers and/or mentors about coding:

  • Instagram: There are a lot of programmers on Instagram, of every skill level. While it’s not exactly the place to ask for help on coding questions, it’s an amazing place where you can see what other coders are working on or struggling with. I’ve personally really liked it because I feel like I’m part of a greater community of coders worldwide. Check out or take part in the #100DaysOfCode challenge that is really popular there.
  • freeCodeCamp: It’s not only an online full-stack bootcamp, but also has a very helpful message board and Facebook groups that can help out their students.
  • A vibrant online message forum for programmers where you can find discussions, articles, and get support for your questions.

One word of advice! If you join any of these communities, try to help others, and don’t just ask others for help.

While it’s great to get support and assistance, these communities only work if there are people who are willing to donate their time and energy helping answer questions.

When you help others, you’re doing your part to help these places continue to work and help people!

#8: Get involved with local meetups.

While you find coding communities online, don’t forget about networking in person!

Look for meetups or other networking events related to programming in your local area. There are many benefits of regularly attending events.

Meeting other coders who may be in the same position as you can be really fun and also encouraging! You’ll be able to talk about common struggles and share strategies for how you are overcoming them.

In addition, many tech companies looking to hire web developers often attend or even co-host meetups. If you get to talking with some of these company reps, you may be able to eventually land a job through them.

All in all, it doesn’t hurt to get involved with communities, and it can only help you.

#9: Don’t compare yourself to others.

As you start getting more involved in the coding community, please try to remember not to compare yourself to other coders.

Obviously it’s impossible to not see what other people are doing or accomplishing. But try (as much as possible) to not feel like you have to keep up with everyone else.

It’s not bad to see the drive that others have in their own journey, and to transfer some of that energy and excitement to your own. But if you start feeling down if you see someone talking about learning or doing things that you don’t have experience in, or feeling jealous if someone seems to be more ahead of you, you may end up just feeling discouraged.

Everyone has a different situation and progresses at different speeds. Some people will have more time than you, or may be faster at learning certain things than you are. Others will have less time or learn slower than you. No one is better than another person.

Ultimately how fast or slow other people are (or seem to be) doesn’t have any direct effect on you.

Although it may be difficult, don’t worry about someone else’s journey, just worry about your own ?

#10: Stay curious and keep it fun!

One of the best characteristics of us coders is that we are curious about how things work. It’s one reason that I love programming and computers!

While you’re learning, you may, for one reason or another, start feeling weary if you’ve been focused on one narrow area for a while.

Feel free to change gears every so often. If you’ve been slogging away at a JavaScript tutorial and your brain is starting to feel fried, try taking a step back and working on a random side project. Or watch a video or read an article about a different area in programming from what you’re working on.

Mixing things up every so often can help keep things fresh.

There are so many things that are possible with coding – CSS animations, fun API integrations, even just making silly mini apps for fun.

One random app I built for fun was a “lorem ipsum” generator. It was a relatively simple tool that randomly chose words and phrases from a list that I had put together. Not the most complicated thing in the world, but it was incredibly fun to make and to show my friends!

In closing

Learning to code is a really difficult thing to do, and if you’re somewhere on that path, I commend you!

Even if you feel like you are completely lost and you’ll never be good at programming, just know that it will come with time.

I really hope that these tips are helpful to you. Any of them strike a chord in your particular situation? Feel free to leave a comment below!

Want more?

? Read more tutorials on my blog,
? Sign up here to get emails about new articles.
? Join 25,000+ others — Follow @thecodercoder on Instagram.
? Check out coding tutorials on my YouTube channel.