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:
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.