This post was originally published on Coder-Coder.com.

If you’re teaching yourself how to code, you may have more questions than answers when you’re starting out.

What do you need to learn? How do you figure out how to fix bugs? And how do you stay motivated when it just seems like an impossible task?

If you’re worried about your chances of success in coding, don’t fret. Check out these 10 tips — I hope they will encourage and motivate you!

1. Have a concrete goal in mind.

One of the most common questions I get from people who want to be coders is, “What language should I learn?”

It’s understandable, but this is ultimately the wrong question to start with.

The first question you really should be asking is, “What is my end goal in learning to code?”

It’s like taking a vacation — no one goes on vacation without having a specific place that they want to go. And no one is learning to code just for the sake of learning to code. There’s always a reason.

You want to learn to code to… what?

Take some time and think about what your final goal is. Once you have it, you can then work your way backward and figure out what you need to do to accomplish it!

Still not sure what your goal in learning to code is? Here are some common ones:

  • I want to get a job at a company in my city to make a stable income.
  • I want to start my own business making websites for small businesses.
  • I want to make money by building mobile apps.
  • I want to work at a tech startup.

If you don’t want to waste time, and don’t want to wander aimlessly, you definitely need to determine what your #1 goal in all this is.

2. Pick a plan and stick to it.

One awesome part about teaching yourself coding online these days is that there are SO many tutorials and articles that you can learn from! You can learn anything by searching for videos or articles on that topic.

However, the downside of that is that because there are so many resources available, it can be hard to find the best one. The sheer number can be understandably overwhelming.

My advice? Don’t worry about spending a ton of time looking for the number one absolute best tutorial on learning X, Y, or Z.

Just pick one.

Even if it’s not the best in the world, it’s very likely to be at least reasonably good! It’s way more important that you go through and complete it, than making sure you have the best one.

And, let’s be honest — spending time buying online courses and jumping around can be thinly veiled procrastination and lack of focus.

Just pick something, and stick to it until the end (unless it’s truly terrible). You can always go through another tutorial video if you didn’t like the last one!

3. It’s a marathon, not a sprint.

There are a lot of blog posts and videos out there that promise that you can learn programming and land a job in 3 or 6 months. Now, it might be possible, but there are a lot of if’s.

If you don’t have to currently work full-time, if you have the money (coding bootcamps in particular cost upwards of $10,000), and if you can keep up with the pace… then yes, you might be able to land a full-time job as a web developer.

My problem with this is that over-promotion of this gives people a very optimistic picture of how easy it is to get into coding. And they are in for a rude awakening when they realize how difficult it actually is.

I do have friends who went through a bootcamp and were able to get a job as a programmer in a matter of months. But from the people I know or have heard who didn’t have the bootcamp experience and instead taught themselves, it took them much longer, like 1–2 years.

If you want to hear a real-life story of someone teaching themselves to code, read my interview with Owen. He had a full-time job and a toddler but taught himself to code by waking up before the crack of dawn almost every day and grinding it out for two years.

He did recently land a full-time web developer job, but it was after a long time of very, very hard work.

I’m not at all trying to discourage you but want to give you a more realistic picture of what learning to code is like. It’s definitely possible! But expect that it will take you a year or more to get where you want, not just a few months.

4. Slow and steady wins the race.

Now you know that learning to code is a pretty difficult process. But also try to avoid burning out as you burn that midnight or 5 am oil.

Some people want to learn everything as quickly as possible, and start trying to put in 5 hours per day after getting off of work.

Again, while this might be possible for some people, it may be too much for others. There is a real danger of exhausting yourself and ending up quitting. And quitting is exactly what you want to avoid doing!

So how do you learn to code without burning out and quitting?

Aim for a sustainable amount of progress. Start slow, 30 minutes or 1 hour per day. Or something like 1–2 hours a few times a week.

Of course, the more time you can put in the more progress you can make. But if you start slow, you can progressively increase the amount of time you spend on coding.

And once you develop that habit, it will be easier to keep going on your path of learning, without giving up and quitting.

5. Don’t compare your progress to others…

This is difficult advice to follow, but when you’re striving for a goal, try not to compare yourself to others.

On the one hand, it can be good to see how you stack up with other people doing the same thing as you. But on the other hand, in the age of constant social media, comparisons often leave you feeling discouraged.

The key for succeeding is to keep your head down and not to worry about other people’s progress. Just worry about your own.

Other people may learn faster or slower than you, and that’s fine. Everyone has a different life situation and a different pace of learning.

The less you think about how you compare with others, the more you’ll be able to focus on your own path.

… but make friends with your peers!

Even though you shouldn’t constantly compare yourself to others, I’m not at all advocating that you completely shut yourself off from the rest of the world.

In fact, if you’re learning to code online by yourself, it can quickly get very lonely.

Finding others who are doing the same thing you are, and making friends with them, can be an important source of motivation.

Why?

Well, for one thing, knowing that there are others out there who are struggling with the same issues you are can be hugely encouraging.

And friends can help each other out with problems. Having more than one point of view can help find a better solution, rather than only being dependent on yourself.

If you’re learning to code in a physical school, try to study together with other students. If you’re learning online, try to find coding communities, whether in Meetups, Facebook groups dedicated to web development, or on social media like Instagram.

Building friendships and connections will help you to stay motivated while you’re pursuing your goals, and you can help motivate others as well!

6. Make a habit of fitting coding into your daily schedule.

It can be really hard to find the time to code. After all, we all lead very busy lives, right?

But if you can develop the habit of coding every day or a few times a week, you will be on the right path.

Developing habits (whether good or bad) is like blazing a trail in the wilderness. The first time you walk down that trail, it’s difficult because there’s no clear path. But the more times you walk down that trail, the clearer it will get over time. Finally, after a long time, the trail will be clear, flat, and easy to walk on.

Creating a habit is like that — the first few times you sit down to code it will probably be very difficult. But if you keep at it, your brain gets used to the pattern. And our brains like routines, so you’ll find that over time it will feel easier to start the habit.

There are a few ways you can try to get habits to stick.

One main one is to set a “trigger” that will happen right before your new habit. For example, you could try to fit coding into your morning routine by sitting down at your desk to code right after you make your first cup of coffee or tea for the day.

Or, in the evening you could start working on coding right after finishing cleaning up after dinner time.

Whatever it is, the key to continuing a habit is to keep repeating it over time.

7. Learn how to research topics and solve problems.

Knowing how to problem-solve on your own is one of the most important, if not THE most important skill you can have as a web developer.

You might think that experienced web devs know the answers to everything right away. That’s not true at all!

While of course they may know some things by heart, there is a lot that they still look up on Google (or DuckDuckGo). This is definitely true for myself, and I’ve been in the industry for 7 years now!

So now that you know the secret of web developers, how can you become good at this all-important skill?

Practice!

When you get stuck, before you try asking for help, spend some time searching for the problem you’re having or the error message you’re getting.

I’ll often search for “X doesn’t work” because it will turn up Stack Overflow posts of people who’ve run into the same problem as I have.

Another tip is to look up and read through any documentation of the tool or software that you can find.

And, even once you find the solution, if you have additional time, do some research in the general area. By doing this, you will turn every annoying bug fix into an opportunity to enhance your skills.

Think of it this way — the first time you have to look up a problem, it might take you 3 hours to finally find the solution. If you remember how you got there, the next time you encounter the same problem, it should take you far less time.

Learning how to fix the most frequent issues that you get stuck on will make you a faster and more efficient web developer.

8. Don’t just watch tutorials — build stuff!

One of the most tempting pitfalls when learning to code is reading lots of tutorials and watching lots of videos, but never actually practicing the actual skills you’re learning.

Consider this — if you talked to someone who said they were training to run, but it turned out that they almost never run, you’d start thinking they’re all talk, right? Sure, you can spend some time learning techniques and figuring out what types of shoes you need. But at some point, the rubber has to hit the road.

It’s the same with web development. Yes, it’s of course very important to learn coding skills and maybe even get some tools and software that will help make it easier. But if you’re spending all your time passively going through tutorials, you’re actually not learning anything.

I learned web development on the job — I didn’t actually have the option of browsing YouTube for cool coding videos. No time for that! I had deadlines to meet, and I had to figure out how to get my webpage working before then.

It was a trial by fire, and it was definitely stressful. But in retrospect, it was the best way that I could have learned. In a couple of years working as a web developer, I had learned a ton of practical skills. And it was all by building stuff!

So, my advice to you is:

Tutorials and books are fine, even great things. But once you’ve finished a section or chapter, press pause. Crack open your code editor, and go back through what you’ve learned. Try to replicate any of the examples that the material was teaching you.

It’ll be much harder than reading or listening, but I promise you, practicing in real life will make sure that the concepts will stick.

9. Be open to failure.

Failure sucks. We all want to do well, and not to make mistakes.

But avoiding failure and mistakes is actually a terrible way of moving forward. Because it’s only through messing up that we will learn how to do the right thing.

When I was starting out as a junior web developer, I had a huge fear of messing up. If I got stuck on something, I hated feeling like I had to ask my boss for help, because it meant admitting that I had failed to do it on my own.

Or even worse, if I made a mistake, especially if it affected a live website, that was one of the worst things. Because then I had really made a huge mistake!

In those situations, my immediate reaction was that I didn’t want anyone to know that I had failed.

But, I knew even more, that the quickest (and most honest) way to fix the situation itself was to come clean and talk to my boss to get help.

Obviously, this will depend on your work environment, but in my own experience, I never got into trouble even when making mistakes or admitting I didn’t know how to do something.

Being afraid of failure can lead you to try to stay “safe” and avoid situations where you could potentially make a mistake. However, this will lead you to not grow as much as you could.

Even though it’s difficult, keep pushing through and keep trying. If you make a mistake, it’s ok! For coding, it’s very unlikely that you’re in a literal life and death situation. The most probable outcome is that you will be left feeling foolish or getting criticism.

And that’s your ego. Put your ego to the side and embrace failure. (This is advice I’m also trying to follow myself — it’s not easy!) If we can be open to failure and making mistakes, we will be much better for it in the long run!

10. Always be learning.

Never stop learning.

When you’re beginning, the world of web development can seem extremely overwhelming, because there are seemingly hundreds of skills that you need to learn.

Once you’ve been learning and practicing for a while, you may start to feel more comfortable. While that is a good thing, because it means you’re growing more skills and developing more confidence in yourself, don’t become stagnant!

The industry we’re in is constantly changing. And if you don’t change with it for a long enough time, you may make yourself obsolete.

As an example, I had gotten pretty good at building layouts using the CSS float property. I had heard about flexbox, and co-workers of mine had even talked about how great it is.

But I was hesitant to spend time learning about this new technology. If I’m honest, it was because I was too lazy to learn something new if I didn’t absolutely have to.

Finally, I did end up learning flexbox. It didn’t take very long and the second I got it, I was kicking myself for not learning it a long while ago.

Now, I’ve understood the importance of staying up to date with technologies. While delaying learning flexbox didn’t really hurt my career, imagine if I never learned it at all! At some point, I wouldn’t be very marketable as a web developer.

Now, don’t feel like you have to learn every single language, tool, and skill that exists in the world (unless you really want to). What you can do is try to learn the new tools that have become so widely used that they are in the mainstream.

For instance, React.js and Node.js came out years ago, and are now dominating the industry. Those would be good stacks to learn right now if you haven’t already.

So how do you find out what’s popular?

Here are some of the ways that I keep up:

  • Syntax.fm is a podcast by Wes Bos and Scott Tolinski. Really fantastic — they talk about what’s new in web dev, as well as other relevant topics.
  • CSS Tricks has tons of articles and tutorials on using CSS. Its creator, Chris Coyier, also helped created Codepen.io, a web development playground.
  • Stack Overflow releases a survey on the state of web development every year. It’s a good way to keep up to date on what’s doing well and what is getting obsolete.
  • Smashing Magazine talks about all sorts of topics in web development, UX/UI, and web design.

Just do it!

I hope these tips have helped you feel less anxious and more excited about learning web development!

The last tip is to just do it. Even if you don’t know exactly what you’re doing, don’t let that stop you. Start somewhere, and you’ll figure out more as you go along.

Want more?

? Read more tutorials on my blog, coder-coder.com.
? 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.