Learn How to Code for Free
Here are some tips on learning how to code for free using online resources.
1. Decide what kinds of things you want to build
There are many kinds of programming:
- Do you want to build websites?
- If you're building websites, do you want to work on the user interface ("frontend") or the server ("backend")?
- Do you want to build mobile apps?
- Do you want to program hardware devices or robots?
- Create desktop applications?
- Study machine learning and data science?
If you aren't sure yet, don't worry — you can skip to the books and courses section below and just start with general basics until you find a specific topic to focus on. You can also ask us specific questions in the forum.
2. Choose a programming language
The first programming languages you choose might depend on what you want to build. The table below isn't meant to be comprehensive, but just lists some possible starting points based on your interests.
If the table below doesn't make sense yet and you just want a recommendation on what language to choose, skip to the courses section below and start with the free "CS50" course.
|Backend web development||HTML, basic CSS, Node.js, Python, Ruby|
|Data science||Python, R|
|Hardware / IoT||C|
|Systems programming||C, C++, Rust|
|Databases||SQL, NoSQL (various)|
|Test Automation||Python, Java|
3. Find a course and/or book
Here are some free courses and books to learn from.
If you aren't sure where to start, give Harvard's free CS50 course a try. It covers the basics.
MIT offers two free, introductory courses that teach computer science using Python:
Most of the resources listed on this page are free, but I will mention one paid option, because it's inexpensive if you get the courses when they're on sale, and you can get 20+ hours of video instruction for USD $10-12.
They do have a free Python course that looks like it might be worth checking out.
Udemy offers some good introductory courses, but don't pay more than $10-12 per course. They go on sale regularly. If you want to try more than the free Python course mentioned above, ask us for specific course recommendations in our forum.
The YDKJS series is free to read online.
Automate the Boring Stuff with Python
Automate the Boring Stuff with Python is a free online book on how to learn Python through practical projects.
4. Join a community
It helps to be able to ask questions when you get stuck.
You can join our friendly community and ask questions any time.
If you're near Berkeley or San Francisco, you can also join our meetup group.