Update 10/19: Added a new course, "How to Code - Simple Data"
New to programming? We picked out 25 MOOCs and courses you can take online to get you started. These are courses that are perennial favorites among our users and staff.
These courses are completely free. The only instance in which you would need to pay is if you decided you wanted an optional verified certificate.
More importantly, we've made sure the content and materials covered in these courses are up-to-date, so you can rest assured you're learning only what's relevant.
It's no secret: programming talent is in high demand. Job growth for software developers has outpaced the broader labor market for the past decade and is projected to do so for the next decade. Meanwhile, salaries remain high, with the median salary for a programmers at $102,280.
High demand for talent isn't the only driver for high pay. Programmers do important work that can contribute significantly to any organization's bottom line. Some build applications, while others manage systems or develop creative solutions to complex problems.
Increasingly, professionals in non-technical roles and functions are learning programming as well. Anyone, from analysts and data scientists to marketers and content creators, can benefit from learning a bit of programming to gain an edge in the competitive job market.
For example, just about every job has its set of repetitive and mundane tasks. A little programming knowledge can go a long way in automating away those tasks away so you can free up time to make a bigger impact elsewhere.
This question comes up a lot and it's one I recall myself asking when I first started programming. We won't drill down into the nitty-gritty, but you can get an idea of what's popular from IEEE Spectrum and GitHub's respective rankings.
Most of the free online programming courses we'll look at teach primarily in either Python or Java, two of the most popular languages used in almost any organization. You can't go wrong with either. Additionally, we find it's easier to pick up a new language once you've gotten a solid grasp of one, so fret not about your choice of "first language".
These appear in no particular order, but we did group them so you can narrow down your choices to the handful that suit your needs
#1-7 are comprehensive introductions are designed to give you the same foundation Computer Science students get in a university. There's a healthy mix of theory and practice. They're challenging for beginners, so you're best off taking these if you can set aside ~10-14 hours per each week to take them.
#8-15 give a broader introduction to programming, suited best if you want use programming as a tool without picking up too much theory. We also recommend these to anyone who wants to better understand what their technical peers in IT / Engineering do on the daily.
#16-22 teach programming in context of building applications for the web or for mobile devices. You might take these to build a dynamic and interactive web and mobile apps. Example technologies and languages taught here include HTML, CSS, JavaScript, Java (for Android), and Swift.
#23-26 teach you programming for specific use cases. Learn how to retrieve and organize data using SQL, generate business insights using code, or perform statistical analysis using a programmable statistical package like R.
Without further ado, here are our choice picks for beginner programmers.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.