codeburst

Bursts of code to power through your day. Web Development articles, tutorials, and news.

Follow publication

How to Learn to Code in 2021- Free and Fast Guide

--

So you want to learn to code but don’t know where to start and are possibly feeling overwhelmed by all the options available. You’ve probably read and heard about hundreds of different websites, courses, books, and other resources. Maybe you’ve spent hours looking at reviews but you still don’t know which programming language to learn or which learning resource to choose.

I know how it feels because I’ve been there before and gone through the struggle of learning how to code on my own and made a lot of mistakes that slowed me down on the way. This is basically the guide I wish I’d had when I was starting out. This guide will show you how to use ONE resource to learn how to code as fast as possible, easily, and stress-free.

A lot of the guides you see online are either people who have no clue what it’s like to learn on their own or are just websites trying to make money by selling you courses.

In this guide I’ll show you:

  • How to get started with learning to code
  • The single best resource for learning the basics of coding
  • How long it takes to learn to code
  • Destroy some common misconceptions about programming
  • How to stay motivated and push through the struggles while learning to code
  • Show you various learning paths for after you’ve learned the basics

If you prefer video you can also watch this guide in animated form!

Why do you want to Code?

Before you even get started learning I think it’s almost essential to have a solid goal or reason for learning.

In my experience helping others get started, the ones who say “I just think it would be interesting to learn”, rarely stick with it for very long. Learning to code is fun and it’s a useful skill, but if you don’t have a destination in mind it’s going to be tough to put in the work needed.

Some common goals I see are:

  • change careers/ get a new job
  • Become better at current job
  • Entrepreneur type who has an idea for an app and wants to make it

Knowing what you are aiming for is important because it will shape your learning path. The stuff you need to learn depends on your goal.

Want to get a new job

Lots of people want to switch jobs because they don’t like their current job or just want to make more money.

The good news is that you can get an entry-level job without needing to know a bunch of data structures and algorithms. Many smaller companies just need practical coding skills, which you can learn in a few months.

Once you’ve broken into the industry at a smaller company, if you want to advance further or go work for a major tech company like Google, Amazon, Facebook, or Microsoft, you will need to start learning more Computer Science fundamentals. My recommendation is to not worry about that, cross that bridge when you come to it. In the short term just prioritize learning practical skills.

Improve at your current job

This was my personal objective, although I ended up liking programming so much I ended up becoming a full-time software engineer.

I was doing digital marketing and wanted to be able to move data around, automate tasks, and just be a better marketer. I started off learning HTML, CSS, and Javascript and kept going from there.

If this is your goal you really only need to focus on the most practical skills with a versatile language like Javascript or Python. You probably won’t be working with anything that needs to scale much so CS fundamentals aren’t a priority, although you should feel free to learn them if you are interested.

With just a little bit of JavasSript, you can do some really cool things by connecting APIs and other services together that handle most of the heavy lifting.

Want to build an app idea you have

If your goal is to build an app you are in a similar position as above where you don’t really need to learn too many low-level details, in fact it would be a distraction and waste of time from creating your idea.

In this case, you should prioritize learning just enough to make a working prototype until you can recruit a true software engineer. Many of the most popular apps you use every day started off as a rough prototype with sloppy code, so don’t feel like you have to be a rockstar programmer to make something.

How to start

Now that you have your objective in mind, you need to know where to start. In short, the single best resource for somebody who wants to learn to code in my opinion is Free Code Camp. The main reasons are:

  • Free, so you have no risk or barriers to getting started
  • Teaches you Javascript, the most popular and versatile programming language around
  • Very practical teaching style gets you started and job-ready ASAP
  • Great community so you can always find help if you struggle on a challenge

Free Code Camp is Free

It May seem obvious from the name, but this is a big deal. Not having to risk any money makes it much easier to take the plunge and start learning.

Benefits of learning Javascript with Free Code Camp

In guides about learning to code the two most commonly recommended languages for beginners are Python and Javascript. Both are fairly easy to learn and beginner-friendly. Python is great but I think Javascript is the better option because it is more versatile, it is required for front-end web apps and can also be used to make mobile apps, desktop apps, and for back-end programming too.

Because Javascript is so versatile, that means there are way more job opportunities compared to other languages.

But you don’t have to worry if you still want to learn Python, because Free Code Camp recently added some lessons covering Python as well. Once you’ve learned the programming basics with Javascript you can quickly learn how to use Python too.

Practical Teaching Style

Free Code Camp doesn’t waste time with a bunch of theory, they get you started with real-world stuff right away. Making real projects makes it much more fun to learn.

One of the best aspects is their editor which lets you see the results of your code in real-time so you can see how changes you make affect what you are working on.

The additional benefit of this teaching style is it gets you job-ready sooner than a more traditional teaching approach that starts off with theory. Being able to get a job fast and learn while getting paid is ideal.

Free Code Camp’s Community

Probably the biggest factor for Free Code Camp. A lot of people give up on learning to code due to frustration. They get stuck on a problem or tutorial and decide that they aren’t cut out for programming.

With Free Code Camp tens of thousands of other people have gone through the same problems. That means you can always find help on the forum from somebody who has gone through the same struggles. Each problem also provides hints to help you solve it if you need a little nudge in the right direction.

For the project sections, you can look up what other people have made for inspiration and ideas so you can take your own project to the next level.

After FCC

That doesn’t mean you have to ignore everything outside Free Code Camp. Once you’ve learned the basics I think it is a good idea to start branching out to other resources. You can build your own project or follow other tutorials and blog posts that interest you.

The main thing is just making sure you have solid fundamentals to build off and for that, I FCC is the best option available.

How long does it take to learn to code?

One of the most common questions from people who are thinking about learning to code is how long it will take. It makes sense, nobody wants to start a journey without knowing how far away the destination is

The answer is: it varies on the person but the typical range is 3–12 months

There are several factors that go into how long it will take you to learn to code, they are:

  • Full time vs part-time learning
  • Past experience
  • Personal Aptitude
  • Learning Strategy

Full time vs Part-time learning

Fairly obvious but somebody who can dedicate almost their entire day solely to learning to code will learn a little bit faster.

Don’t let that get you down if you have a full-time job though, it’s not quite as big a factor as you think.

Coding can be mentally draining, most software engineers will admit they probably only have 2–4 hours of coding in them mentally per day while at work before they are drained. Past that point, there are some “diminishing returns” in terms of time invested, so putting in a bunch of extra hours won’t help you learn much more.

Think of your brain kind of like a sponge, it can only absorb so much knowledge in a day.

Related Experience

Even if you don’t have direct programming experience, there are some things that have a certain amount of crossover to programming and speed up the learning process. Typically you’ll see people with a math, accounting, or similar background, already have the right mindset in place so they are able to pick things up a bit quicker.

Personal Aptitude

It’s not really fair but some people just take to programming naturally like a fish in water. I’d compare it to sports where everybody knows someone who is just a natural and makes things look easy.

Most people will fall somewhere in the middle and there’s no point stressing over things you can’t control. Just do your best and you’ll make steady progress.

Learning Strategy and Goal

This is where knowing your goal will have a major impact on your learning timeline. If you just want to improve your skills at your current job or make an app prototype, it won’t take you long to learn all that you need to know. You can lean on numerous tools and services to handle complexity for you and not worry about low-level stuff too much.

On the other hand, if you are looking to become a full-blown software engineer you will have to learn that stuff because you’ll be expected to know it for your job.

Tricks and Tips to make things easier

In this section, I’ll go over some general tips to hopefully make things easier for you. These are mainly related to motivation and psychology to improve your chances of success.

Code at a specific time of day and create a routine/habit around coding

Relying purely on motivation can be dangerous. If you’ve ever tried and failed to stick to a diet or workout routine, you’ll know what I’m talking about

With that in mind, my recommendation is to try and schedule a time each day where you’ll at least sit down at your computer and code or at least read something related to programming. Establishing this as a rock-solid habit and routine is essential for long term success.

Consistency is key, you don’t need to make a massive effort every day. Some days you won’t be in the mood and that’s fine, put in 5–10 minutes of work and celebrate that, just solve a single FCC problem if necessary. Other days you will feel great and code for 2 hours straight.

Don’t let yourself get stuck

Getting stuck on some problem or tutorial is the reason many people give up on learning to code. They get frustrated and assume coding isn’t for them and they quit.

This is why following Free Code Camp is so important, if you get stuck you can always find some help.

Gamify your learning

Another thing FCC is great at is making learning to code as fun and enjoyable as they can. They do this by making problems very small and quick. Every time you solve a problem they show you a congratulations message and give you a checkmark to show you’ve completed that problem. They also show you a progress tracker to show how many days in a row you’ve completed a problem.

Free Code Camp progress tracker

It may not sound like a big deal and seem kind of silly, but this kind of stuff will help you keep making progress.

Your brain is designed to love these quick dopamine hits of success and you should do everything possible to take advantage of it to stack the odds in your favor.

Get used to feeling dumb

Finally, you need to mentally prepare yourself to feel dumb almost constantly and embrace it.

In most careers you don’t have to deal with this regularly, so people new to coding think there is something wrong with them. This is especially true for people who are learning on their own and have nobody to compare progress with.

Just keep in mind that programmers with 10+ years of experience have to look up stuff on Google and ask for help on a daily basis, so don’t get down on yourself.

Timeline for learning to code

1st month

During this time you’ll be learning the basics, starting off with HTML and CSS. These are used to design web pages and aren’t technically programming, but are necessary to know as fundamentals.

Once you’ve got the basics down when it comes to building web pages you can start learning Javascript which is used to make web pages interactive. Free Code Camp will start you off with learning the basic syntax of the language and understanding the fundamentals of programming in general.

Once you’ve got that down you can start working on putting those fundamentals into practice with the guided projects on Free Code Camp

Second Month

In your second month of learning, you’ll continue following free code camp, but you should also start looking into some big picture stuff surrounding programming. This is especially important if you want to become a full-time software engineer.

Additional topics to look at:

  • Learn how to Google and find solutions to your problems, Stack Overflow will become your best friend
  • How does the internet work — DNS, HTTP, Web Servers
  • Command line basics
  • Learn the basics of Git and version control
  • Google Developer Tools, Chrome developer console

Third Month

You should start feeling a bit more confident with the fundamentals here, depending on how far you’ve gotten with FCC.

Additional topics:

  • synchronous vs asynchronous programming
  • Making API calls with Javascript
  • Javascript Event loop
  • DOM manipulation

Fourth Month

Start moving beyond the basics and working with libraries to create projects. Choose a frontend framework like ReactJS and learn how to use it and why companies use it vs plain Javascript.

Additional Topics:

  • Create a portfolio website and deploy some of your projects live
  • Basics of web security
  • Modern CSS concepts
  • Learn a CSS framework like bootstrap for a project
  • Follow a backend programming tutorial with NodeJS and a database

Fifth month and beyond

At this point, if you are looking for a career change this is a good time to start focusing on interview preparation. You might not feel ready but there’s no way to know until you try, so start putting out some applications and see what kind of feedback you get.

Additional Topics:

  • Look into interview prep guides for frontend or Javascript jobs
  • Consider doing some basic learning of CS fundamentals
  • Create your resume

Benefits of Being a Programmer

If you need more convincing to learn to code, I’ll list out some of the more subtle benefits of being able to code.

Improved Problem Solving Ability

The same skills that go into analyzing a programming problem, planning, and implementing can be applied to pretty much any area of life.

Confidence and Mental Toughness

You will gain confidence from routinely running into trouble, figuring out what went wrong, and fixing it. The ability to not get down on yourself when you make a mistake is very valuable, and nothing teaches you that faster than learning how to code. Spending a few weeks programming is like getting a crash course in this.

Become the person everybody looks to for help

Even knowing a little bit about computers and programming puts you in front of about 99% of the population. You’d be surprised how many friends and favors I’ve earned because I helped people fix very simple problems they were having with technology. This is the kind of thing that can have a big impact on your career even if you aren’t working directly as a programmer.

Conclusion

Focus on making consistent progress and you’ll have minimal trouble learning to code. Making steady progress and seeing the results makes learning fun.

The crazy thing about learning to code is that the more you learn, the more fun you have because you can make cooler stuff every time you learn something new. Every day you need to keep in mind that you are building off what you learned the day before.

I hope this guide helps a lot of people out and saves them from some of the struggles and frustration I had when starting out. I’d love to see people post their results and progress over time so others can see that this works, so be sure to save this page and leave a comment in the weeks or months ahead!

--

--

Responses (7)

Write a response