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.
freeCodeCamp.org
If you are here, you may have noticed that this is freeCodeCamp's publication. Here at freecodecamp.org/news 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.
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.
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.
Grasshopper
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.
MitOpenCourseware
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.
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.
Code.org
Code.org 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.
HackInScience
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.
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.
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.
Thank you for reading!
Now you have a collection of great beginner-friendly resources that'll help you start learning to code. Good luck!
Don't forget to subscribe to my newsletter