4 places to learn to code for free

Web ProCategory
6 min read
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.

4 free online classes to learn how to code

1. Codecademy

Code Academy Learn to Code

A big player in the space and probably the one you’ve already heard of is Codecademy. In my opinion, Codecademy is the easiest to use, and probably the most basic. I haven’t taken all their courses, but I did enjoy their JavaScript course twice, as well as the Make an Interactive Website course.

Pros to Codecademy:

  • Easy to use
  • Most basic

Cons to Codecademy:

  • Limited scope of learning
  • Courses felt repetitive

2. Code.org

Hour of Code Learn to Code

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

Harvard CS50 Learn to Code

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 Learn to Code

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!