In this day and age, it seems like everyone is learning to code. Maybe you want to know how websites work, or you think back fondly on the old blogging platforms where you could hack together some HTML to personalize them.

Or maybe you are curious to learn what all this coding craze is about so you can get started developing apps and websites yourself.

If that's the case, then this article can help you figure out where to start.

Why – and How – Should You Teach Yourself Coding?

Coding is a field that is accessible to everyone. And to get a tech job, you don't necessarily need a degree from an expensive university. As long as you are able to show that you are good at coding, you can get a job.

Tech is so accessible partly because of all the free resources you can use to teach yourself to code. But this can also be a challenge: how do you navigate through all these courses, articles, bootcamps, and discussion threads?

It's usually a good idea to choose one main resource from which to start learning. It can be a curriculum or an ordered list of topics, whatever works for you. Then follow that plan.

It's ok to make brief detours and use other materials that might help you out when you're stuck, but try to do that only if the resources you have are not enough.

When you finish a curriculum or a course, you may be tempted to start another one on the same topic right away. But instead of doing that, you should build projects with what you just learned to learn it better.

You will likely have enough basic knowledge to build simple projects, and in the process you'll figure out what you know and don't know.

To help you find some learning resources that are right for you, in this article I'll share various websites where you can learn to code for free.

I've used most these tools myself while learning to code, and I use some of them even now. And if I haven't personally used them, I made sure to choose resources that have really positive feedback.

If you are here, you may have noticed that this is freeCodeCamp's publication. Here at there are thousands of articles on programming and related topics that you may find really useful along your learning path.

You can bookmark these articles to help you learn new topics or find different explanations for topics you are struggling with.

Also, the freeCodeCamp learning platform has a full-stack web development curriculum based on the MERN stack (Mongo, Express, React, NodeJS), and an expanding curriculum on Python and Data Science.

The freeCodeCamp forum is also a really friendly place to get help with the curriculum and programming help in general.

Finally, the FreeCodeCamp YouTube channel has thousands of hours of video tutorials on various programming topics. It has a much wider variety of topics than the curriculum, so if you are not interested in web devoplment, or want to look at other specific topics in more detail, definitely check the YouTube channel out.
Learn to Code — For Free

Khan Academy

Khan Academy offers courses in a lot of subjects, including introductory courses on programming and computer science.

It teaches JavaScript, HTML, CSS and SQL basics through interactive walkthroughs, with visual representations of the code changes. It's a great place to start if you're a total beginner.

Khan Academy | Free Online Courses, Lessons & Practice
Learn for free about math, art, computer programming, economics, physics, chemistry, biology, medicine, finance, history, and more. Khan Academy is a nonprofit with the mission of providing a free, world-class education for anyone, anywhere.

The Odin Project

The Odin Project's full stack curriculum is free and supported by an open source community. It teaches you how to set up your own environment, and focuses on Ruby, Ruby on Rails, HTML, CSS, JavaScript, and NodeJS.

The curriculum contains dozens of assignments that'll help you build portfolio-worthy projects. And you can connect with the friendly community of beginners and experienced developers.

Your Career in Web Development Starts Here | The Odin Project
The Odin Project empowers aspiring web developers to learn together


Grasshopper is a coding app for beginners. It is a phone app that uses fun quick lessons of increasing difficulty to teach you to write real JavaScript.

Grasshopper can be an ever present companion, always in your pocket, while you build your fundamentals. It can help get you ready for your next steps in learning web development.

Learn to Code for Free – Grasshopper
Grasshopper is the coding app for beginners. With fun, quick lessons on your phone, the app teaches adult learners to write real JavaScript.


The MitOpenCourseware video courses section on Computer Science and Electrical Engineering offers a lot of video courses at the Graduate and Undergraduate level to improve your theoretical knowledge of computer science topics.

It covers areas like data structures, algorithms, artificial intelligence, and much more.

Audio/Video Lectures | MIT OpenCourseWare | Free Online Course Materials
Unlocking knowledge, empowering minds. Free course notes, videos, instructor insights and more from MIT.

Open Source Society University

Open Source Society University is a collection of online courses and books that, together, give you roughly the equivalent of a computer science degree. But everything is completely self-taught and self-paced – and it's free or very low cost.

At this University you don't need to take exams. But for each course you complete, you'll have to build a project that will be peer reviewed that shows what you have learned from the course.

Take a look at their About page, where there is lots of extra information on how to use their curriculum in the most effective way.

OSSU - Open Source Society University

Harvard University's Free Online Courses

Harvard University's free online course catalogue has many interesting Computer Science courses on many subjects.

There are introductory courses to Computer Science and Programming using Scratch, an introductory course to Technology in general, and courses on Machine Learning, among other topics.

You can check out the Computer Science courses at this link.

Catalog of Courses
Browse the latest courses from Harvard University
CS50G_pll has courses for all ages, but it's mostly directed toward young students (and teachers who want to teach coding to their students).

It offers various Hour of Code projects (projects that you can complete in one hour), and has a lot of material for self-learners, teachers, and students in a lot of different languages.

Learn today, build a brighter tomorrow.
CS is more important than ever. Let’s build the future we want. #CSforGood


HackInScience is an interactive Python exercise platform, where you can learn Python and strengthen your Python skills.

Each exercise has links to guides for the features of the language you need to apply in that exercise that you didn't need in the previous exercises – so it helps you build upon what you've learned.

HackInScience — Python Exercises

GitHub Guides

GitHub Guides is the official collection of guides from GitHub that help you learn how to work with Git and GitHub.

The guides include detailed explanations, with images and gifs, of GitHub issues, GitHub Pages, how to fork projects, a Git Handbook, and more.

GitHub Guides

MDN Learn Web Development and Tutorials

MDN Learn Web Development aims to bring its learners from absolute beginners to a level where they're comfortable with programming basics. Their aim is to help you get to a point where you're able to learn on your own from other sources.

In this area of the MDN website there is also a Front-end web developer learning pathway with material for hundreds of hours of learning.

Learn web development | MDN
Welcome to the MDN learning area. This set of articles aims to provide complete beginners to web development with all that they need to start coding websites.

MDN Tutorials are a collection of tutorials on HTML, CSS, and JavaScript, divided in three levels of complexity: Introductory, Intermediate, and Advanced.

This is a good complement for whatever course you are following on those topics.

Tutorials | MDN
The links on this page lead to a variety of tutorials and training materials. Whether you are just starting out, learning the basics, or are an old hand at web development, you can find helpful resources here for best practices.

Thank you for reading!

Now you have a collection of great beginner-friendly resources that'll help you start learning to code. Good luck!