The best apps and sites to learn how to code

Go straight from “What is a dash?” to “I know kung-fu.”
Typing on keyboard
Maybe this is the time for that career change. Tyler Franta / Unsplash

If you have some extra time on your hands and you want to do something productive, you might want to learn a new skill. Consider coding—it’s easy to get started, everything you need is online (oftentimes for free), you can make a career out of it, and the possibilities are endless. Literally.

There are a lot of online resources and apps that can help you go from “total noob” to “master coder.” Here are some of the best we could find out there, but rather than putting all your eggs in one basket, we’d highly recommend using more than one platform at a time.

When it comes to learning to code, there isn’t a ‘one-stop shop’ so don’t be afraid to pick a couple of apps, try them, and take what you need from the parts that work for you

1. Mimo

You may have come across those language learning apps that get you to practice for five or 15 minutes every day, and Mimo takes the same approach to coding. Create a free account, decide how much time you want to devote to your new project daily, and then follow the exercises as instructed.

Mimo is certainly intuitive and straightforward to follow (even for beginners) and it starts with the very basics of coding. You can choose between several coding languages (HTML, CSS, JavaScript, Python, Java, Swift, C++, SQL, and PHP), and the platform immediately shows how the code runs as you write it. This is very practical if there’s something more specific you want to pick up. As well as typing out code, you get exercises where you have to spot mistakes, or drag script elements into the right order, so it keeps the learning experience varied.

There’s no web version of Mimo, so it’s perfect if you just want to learn in short bursts on your phone or tablet. You can also opt for a Pro subscription ($9 a month) which gets you access to more advanced lessons and tutorials.

Mimo (freemium) is available for Android and iOS.

2. Codecademy

Codecademy combines step-by-step lessons on your browser with optional exercises you can do on mobile, so it allows you to keep up with your coding practice wherever you are. While it’s not the most in-depth or thorough virtual coding school out there, Codecademy is a very useful introduction to the basics, with an intuitive and friendly interface, and explanations of terms and syntax as you go.

A wide variety of app and web programming languages are covered as well: HTML, CSS, JavaScript, Java, Python, Ruby, C++, PHP, Go, Swift, SQL and more. The portal can guide you through specific ‘career paths’ with a clear progression from one lesson to the next, but it’s also possible to just browse around and pick and choose what you want to do—there’s a wealth of material at your disposal.

You can get started with Codecademy and work through 25 courses for free. Sign up for a Pro account—$20 a month, billed annually—and you can access 65 courses, tackle real world projects, and unlock hundreds of extra exercises. You can give the free package a try and then opt for the paid-for version if you decide you actually want to make a career out of coding.

Codecademy (freemium) is available for Android and iOS, and on the web.

3. Programming Hero

Programming Hero
Are you a total coding noob? No problem. Programming Hero is beginner friendly. David Nield

If you’re an absolute beginner and want to move at your own pace, then Programming Hero could be just what you’re looking for. It’s very friendly, with jargon-free language and coding challenges that are turned into mini-games, so you never feel like you’re slogging through difficult concepts.

As you work your way up through the different challenges, the platform will help you make your own game. You’ll still be a long way from being able to code your own from scratch, though, but you will at least understand the fundamentals behind coding, and some of the syntax and commands you can use.

Programming Hero is a nice blend of coding exercises and quizzes designed to test your knowledge, and it covers coding languages including HTML, CSS, JavaScript, and SQL. All the basic material is free and extends quite far, but for intermediate and advanced lessons you’ll need to pay $10 per month for a premium account.

Programming Hero (freemium) available for Android and iOS.

4. Grasshopper

Grasshopper is developed by Google, and is one of the more accessible ways for beginners to start coding in this list—you can dive in and be typing and arranging commands in minutes. While it focuses exclusively on JavaScript, the concepts that the platform covers (including loops and functions) apply to any programming language.

Coding exercises are set up like puzzles to solve, with a well-judged balance of instructions, actual coding, and end results on the screen. To begin with, you just have to move elements around on a screen before you actually get to type anything, and the progression speed is nice and steady.

The exercises are short, so you can jump in and do one whenever you have a spare five minutes on whatever device you use—Grasshopper will sync your progress automatically.

The app won’t take you as far as some other code teaching platforms can—you won’t get a job off the back of using Grasshopper—but it’s a really friendly introduction if you’re totally new to this, and it’s completely free to use.

Grasshopper (free) available for Android and iOS, and on the web.

5. Code Avengers

There’s a wide range of paths available on Code Avengers—from exercises suitable for kids to courses that can help you get an actual job in coding.

The coding languages covered are HTML, CSS, JavaScript, and Python, with some extra web development and design tutorials thrown in (covering more general topics). The layout is easy to get to grips with, and includes teaching instructions, code samples, and the end result of your coding all together on the same screen.

Code Avengers is one of the most in-depth and most informative sites we’ve come across, teaching you not just how to do something, but also why you’re doing it. This makes the platform really comprehensive, but it’s not free—pricing starts at $20 a month if you pay for a whole year at once, though you can sign up for a 7-day free trial to make sure Code Avengers suits you. If you don’t want to make a career out of coding or you’re only learning for fun, you’re probably better off going for another platform.

Code Avengers (from $20 a month) is available on the web.

6. Treehouse

Treehouse is for the serious coder. David Nield

Treehouse is based largely around videos and programming exercises, and although its entry point is still accessible enough for beginners, the platform is aimed at people who are seriously thinking about a career in coding. You’ll get a 7-day free trial but after that, lessons start at $25 a month, so Treehouse is not the best idea if you just want to play around with a few basics.

Users go through a very clear progression of tutorials and exercises, with a neat sandbox feature called Workspaces, where you can try out experiments of your own. The platform may come across as too formal or too heavy for some (the free trial will help you work this out), but it’s a comprehensive learn-to-code package that covers HTML, CSS, JavaScript, Python, PHP, and more.

Treehouse can teach you how to code for iOS and Android, but ironically, courses are only available through your web browser on a computer.

Treehouse (from $25 a month) on the web.

7. Udemy

While Udemy may seem a bit chaotic and has pricing varies a lot, it’s still one of the best online resources for someone looking to learn to code. It goes from the basics all the way to the most complex programming concepts, and in that sense is on a par with platforms such as Treehouse.

If you’re unfamiliar with the portal, you should know that Udemy works as a sort of online marketplace, in which anyone can create a course. This means teaching styles differ quite a bit—this is great if you find a teacher you connect with, but problematic if you don’t. Content quality can also differ, but most of the material on this platform is top notch.

Udemy courses cover a whole range of topics, but as far as coding goes you’ve got everything from web and mobile development, to artificial intelligence. There’s a really big stack of stuff to go through. Unlike other platforms on this list, teachers on Udemy present tutorials in video form and offer answers to any questions you might have. Having a person on the other end—even if it’s not a one-on-one learning scenario—requires a fair degree of concentration and commitment so you should consider that when signing up for a Udemy class.

And since there’s no free trial—just a preview option and a 30-day money back guarantee—you should definitely check out reviews and comments from past users before you sign up for a class.

Udemy (from $10 and up per course) is available on Android and iOS, and on the web.

8. Dash

Dash offers shorter courses than other platforms on this list, and has a relatively narrow focus, concentrating on HTML, CSS, and JavaScript for web development. But that’s not necessarily a disadvantage if you’re looking for a brief overview of the fundamentals of these specific coding languages.

The Dash interface certainly impresses, with a coding window on one side and a nice big preview of your finished webpage on the other. It has five well laid out and easy to follow projects, including a responsive blog, a small business website or even a browser game that looks great on desktop or mobile. On each one, you can see instantly how your code affects the live site, making learning much more interactive.

It’s very much an ‘on rails’ experience—you won’t be able to build any website or browser game you like without more learning, but it’s a fine introduction to the basics.

Dash (free) is available on the web.

9. FreeCodeCamp

Free coding app. That’s it. That’s the caption. David Nield

FreeCodeCamp is a huge collection of more than 6,000 tutorials and, as the name suggests, they’re all completely free to use. They cover HTML, CSS, JavaScript, Python, React, Java, SQL, and several other coding languages, and if you need help at any point, then there are some busy forums packed with pointers and advice.

There are some drawbacks, though. FreeCodeCamp isn’t quite as polished in terms of the interface and the course structure as some of the other entries on our list, and you don’t get as much hand-holding. Also, the platform doesn’t offer mobile apps either, so it’s all done through your browser on a computer.

Still, these are all minor details in our opinion, and not at all deal breakers when it comes to choosing a code-teaching platform. FreeCodeCamp is still very comprehensive, available for free, and easy enough at the beginning for anyone to pick up.

FreeCodeCamp (free) is available on the web.