10 Great Websites For Learning Programming
Whether you're preparing for a new career or experimenting with magic powers, it's worth knowing how to program.
![](https://eu-images.contentstack.com/v3/assets/blt69509c9116440be8/blt0b6161260b4289cf/64cb505e742405adf9e9fc24/source-code-583537_640.jpg?width=700&auto=webp&quality=80&disable=upscale)
The best way to learn to program is through trial and error by working on projects that interest you. There's no substitute for solving problems mostly on your own, and for seeking out help only when necessary. The DIY approach makes concepts real and memorable because you've implemented them, rather than reading material that may be forgotten.
To do so, you need a foundation, some level of familiarity with the syntax and patterns in whatever programming language or framework you've chosen. Before you can begin making progress on your own, you need some sense of basic programing concepts and the scope of possibilities.
The Web, a labyrinth of code, is full of educational resources that can help you lay that foundation. In many cases, no money is necessary -- free tutorials and help forums abound -- but a bit of cash can accelerate the process and help you achieve the technical competency to exercise your programming abilities on your own terms.
In building up a modest knowledge of Python, Lua, JavaScript, HTML, and CSS, I've experimented with a handful of online programming courses. I can't tell you which is right for you. People learn in different ways and have different needs. But if you look some of the options that follow, perhaps you'll find a few that fit. And if not, new coding resources appear daily, or so it seems.
It's worth making a distinction here between beginner-to-intermediate programming, a level useful to individuals and businesses and attainable through personal inquiry, and advanced programming that requires a solid foundation in mathematics, computer science, or other specialized fields. If you want to create your own browser, programming language, or machine learning system, you'll probably be better off enrolling in a reputable computer science program than trying to cobble the necessary skillset together through online tutorials.
I taught myself BASIC in the 1980s but decided in college that I liked writing for people better than writing for machines. Following the advent of the iPhone, I decided to get back into programming in 2009 using Corona SDK, a Lua-based game development framework. I chose it because it allowed me to write apps that could be built for both iOS and Android devices.
A few years later, I tried a Python course at Marakana, a San Francisco-based training company subsequently bought by Twitter. But it wasn't until I started practicing on a more regular basis with Codecademy and Learn Python the Hard Way that I felt I was making progress.
Since then, I've tried Thinkful, Code School, Coursera, General Assembly's Dash, and Udacity. Treehouse is next on my list. And I have high hopes for CheckiO's Empire of Code, a real-time strategy game based on coding.
What follows are a few of what, in my opinion, are the best educational options out there to reach a moderate level of skill as a programmer. Feel free to tell us about others you'd recommend in the comments section below.
Codecademy is a good place to familiarize yourself with basic HTML, JavaScript, Python, and several other languages and frameworks. The website and interface are functional and easy to use. The material can be a bit dry and uninspired -- you're asked to, say, make a JavaScript object using literal notation, but the exercise isn't part of a larger project. However, recent project-oriented additions have improved the situation.
Code School achieves perhaps the best balance between video lessons and exercises. It's a bit more demanding than Codecademy, but it's also more engaging and more visually appealing. The JavaScript track videos by instructor Jason Millhouse are particularly well done. Code School was the first online educational resource compelling enough for me to pay ($29/month). In January, it was acquired by online training company Pluralsight, which offers a variety of well-done videos about programming and other subjects.
I joined Udacity before it began charging, and it has a lot to recommend it. Its Intro to Computer Science course offered an interesting view into what it takes to build a search engine in Python. And the site covers a variety of advanced topics in addition to courses for beginners. Lately, Udacity has become even better with the addition of Nanodegrees, certificate-oriented courses that focus on skills relevant to developers and companies, like Front-End Developer and Data Analyst. These cost money, but that's not necessarily a bad thing. Paying for a course offers a strong incentive to finish it.
Coursera offers online courses that go far beyond programming, covering topics like social sciences, economics, and medicine. The Coursera website isn't designed as well as some of its competitors, but if you find a course that appeals to you, that isn't so much of an issue. I took "An Introduction to Interactive Programming in Python" and found it to be effective and well done.
Thinkful offers a variety of programming courses that I find appealing because they're self-paced. The problem with more demanding courses like Udacity's Nanodegrees or Bloc.io is that there's a minimum weekly time commitment, which isn't always possible if you're working and have a life away from the screen. At the same time, I had issues with Thinkful, with its online mentors, its cost structure, and a website (since improved) that seemed to be designed to make curriculum information difficult to view.
Online mentors sound good in theory, but in practice don't offer as much value as I hoped. They often have to look things up, which argues for researching the topic on your own. And $500 per month for three months proved to be unnecessary for the Python/Flask course I took. I breezed through the first sections and finished in two months. Yet, after all was said and done -- and despite the fact that the Python curriculum was available more or less for free elsewhere -- I felt that Thinkful's Python course gave me a solid foundation with the Flask framework. I may give Thinkful another chance.
General Assembly made a name for itself with on-campus classes. But its free online Web technology tutorial, Dash, is rather nicely done. I prefer it to Codecademy's. It's a good place to start if you're interested in learning HTML, CSS, and JavaScript.
Online learning pioneer Khan Academy used to be unappealing to look at. But a redesign commenced in 2013, and today the website looks more professional. While I don't care much for the badges or social aspects of the site, I find the programming content to be well done. And there's lots of great educational content on other subjects.
There are a lot of good books out there to learn how to program. But Learn Python The Hard Way is one of the better ones because it's demanding. Author Zed Shaw has a gift for teaching.
Treehouse is often compared with Codecademy. Both cater to beginners, but I find Treehouse's design is more appealing. Its content also differs somewhat. The basic plan is $25/month.
CheckiO's Empire Of Code combines entertainment and education, as do some other services such as CodeCombat. Empire of Code is a real-time strategy game, like Blizzard's StarCraft, that's controlled by user-created code. The game is in closed beta and is still under development, but it looks promising so far.
CheckiO's Empire Of Code combines entertainment and education, as do some other services such as CodeCombat. Empire of Code is a real-time strategy game, like Blizzard's StarCraft, that's controlled by user-created code. The game is in closed beta and is still under development, but it looks promising so far.
-
About the Author(s)
You May Also Like