This post was originally published on GoDaddy.com by Canupy writer Justin Hein.

It took me more than a decade of “trying to learn” how to code to actually learn to code.

Starting in high school I had a burning desire to learn the exotic languages of computer programming. Like most, my interest began in a computer class while playing around with HTML. But it was only about a year and a half ago that I finally felt competent coding. Maybe I’m not going to blow the doors off, but man, does it feel great to say “I can code.”

This post is dedicated to those who truly want to learn to code — to understand the fundamentals — using free online coding classes and tools that are available to everyone.

A word about formal education

Before we jump into the free courses, I would be remiss not to mention formal training. When I first attempted to become a competent coder, I signed up for a community college course around the corner from my office. It felt like I was in an episode of Community.

While I enjoyed the physical presence of a professor, plus the structured time commitment and grading pressure, I found the biggest challenge with this approach is that most college curriculum is far behind commercially used languages and frameworks. I understand this statement paints colleges with a very wide brush, and I’m sure there are some excellent programs out there, but I’m an advocate for the “teach yourself” method. So, onto the reviews.

Note: I’ve personally used all the courses listed below. There are far more out there, which you can find here.

Learn to code: Getting started

What should you learn first? Backend? Frontend? What’s the difference? This is super-basic stuff, but here’s a quick refresher so that we’re all on the same page. Here’s how I am using these terms:

Backend development is all about creating the “brain,” which does all the processing of your website or app. If you’re using Facebook, the backend is the part that tells the user-facing web page what to show.

Frontend development is what you “feel and touch” when it comes to the website or app. It’s the color and operation of a button, or the way a picture is displayed and what a user can do to it.

If you’re just getting started, I recommend learning frontend development first, for the simple reason that you can easily see changes and updates as you make them. For example, you alter the spacing on a window, then refresh the page and boom — see if the changes occurred as you expected.

I’m not embarrassed to say that I took a coding course aimed at young grade schoolers, all thanks to Code.org. The website pairs their online courses with live demonstrations happening around the United States. As such, you’re given a really simple, graphical way of understanding code and computer science. You’re not going to learn functional languages here. But if you’re looking to grasp the basics of coding, it’s a great introduction to how computers “think.” Try the accelerated course for 6- to 18-year-olds.

Pros of Code.org:

Learn the basics of basic computer programming

Great to understand how computers think

Cons of Code.org:

You’re not going to learn web languages

3. Harvard’s CS50

A few years ago Harvard offered their seminal Introduction to Computer Science course online for free, which you can now find here. This is a great combination of Codecademy’s focus on learning usable languages with Code.org’s theoretical approach. Plus, you almost feel like you’re attending Harvard. At least when I took it a few years ago, the course ran the same time as spring and fall semesters, so a bit of time scheduling is required.

Pros of CS50:

Good balance between theory and practice

Great videos of the lectures (not boring at all)

Harvard…‘nuff said?

Cons of CS50:

It can move quickly at times

The course was designed for full-time students so be prepared to put in the work

4. Khan Academy

Khan Academy is probably my favorite of all coding courses. It was also the most recent one I took. Overall, the courses are in-depth and I really appreciated the structures in place to learn. At the same time, they’re probably the most challenging. Khan Academy interlaces interactive coding demos and quizzes with videos of lessons taught by teachers. I found the balance between the two really helpful in their JavaScript course, and the challenge level was just enough to keep me motivated and encouraged.

Pros of Khan Academy:

Live video alongside interactive coding

Most challenging (in a good way)

Cons of Khan Academy:

Requires dedication as it’s not easy to start and stop

Help and support aren’t as robust as Codecademy

Bonus: Code with a buddy

One final bonus suggestion is to pair up with a friend when learning how to code. I was fortunate enough to sit beside a great developer and I’d just bug him constantly with questions. If you have a patient friend who you can sit beside for a few Saturday coding sessions, it will pay HUGE in dividends.

When you understand code enough to get the jokes…

That’s when you know you’ve made it. This is really the goal. If you can understand developer jokes, you’ve gotten past the biggest learning curve. Why do I believe this? They say the last thing you comprehend when learning a new language is the jokes. Humor always relies on a nuanced understanding of any dialect.

After 10 years, I finally get the jokes, and now laugh confidently with the best of them.

Did you use free online courses to learn to code? Please share in the comments!

About the Author:

Justin Hein is a former agency man. He's a self-taught designer and front end dev. Justin is currently a product guy at Roserocket.com and a writer at Canupy Content. He can also be found @jdhein.

Wake UP your product sales!

No more sittin' pretty on Instagram. Jolt your product sales with these 8 steps.

You got it! Now check your email in a few minutes for the guide.
If you don't see it and you're a Gmail user, it might be in the Promotions folder. Go ahead and drag the email to the Primary inbox so that you'll always get our emails.
~ Elise