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 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 offers courses in a lot of subjects, including introductory courses on programming and computer science.
The Odin Project
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 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.
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.
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.
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.
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 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 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.
This is a good complement for whatever course you are following on those topics.
Thank you for reading!
Now you have a collection of great beginner-friendly resources that'll help you start learning to code. Good luck!