Learning coding as a teenager can be hard. Trying to learn it as an adult? Well, it can seem intimidating, overwhelming, and just really, really difficult. A lot of the material is dry, presumes you know way more than you do, or is very difficult and discouraging to get through.
Great news, though: it doesn’t have to be like that.
If you love video games and you want to pick up coding, either as a hobby or to see if you could like it enough to make it a career, there are a lot of options for you. Video games as a way to teach the basics of coding are more and more popular these days, and while I’m not promising a God of War-level storyline here, most are entertaining enough you won’t hate learning.
If you’ve already got some knowledge of coding in your back pocket and you’re looking to solve challenges to practice that code, Codewars is going to be a great choice – but if you’re pretty far in ‘beginner’ territory, keep scrolling, we’ve got choices for you.
In Codewars, you get points for completing challenges, and the efficiency of your solutions will get you more points. A more elegant code = more points, basically. It’s a great tool if you’re struggling with putting all the pieces of code you know together in a way that works.
If you’re really struggling, you can even view chunks of code from other users, so you can learn what you’re doing wrong and figure out a new way to approach problems.
Codewars is free to play and easy to get started with.
This one is a throwback – early versions of Robocode date back to 2000, which is a long time in the computer world. Heck, it could drink legally this year. Robocode has been around a long time for a reason, though.
Basically, in Robocode you program robots to fight each other. You’re using your coding skills in Java, C#, and more to actually write real code, compile it using a Java compiler, and then watch your robots duke it out.
The best part of Robocode is it’s a real Java compiler, a real editor, and a real development environment, so you’re actually learning real code you can put to use in the outside world.
Robocode is free to download.
You solve challenges and puzzles using one of the two languages, and it has a lot of tools for teachers who are trying to make learning more interesting for their students. If you’re self taught, you should not sleep on the teachers section, because you can get basically lessons right there, for free.
CheckiO is free to play.
Want something a little lighter? Maybe without having to download anything, and you can start right away? Codingame is for you, then.
This is a web app where you complete challenges and solve puzzles, all using your coding skills. It’s got a huge variety of languages to choose from – over 25 real coding languages, including C# and Python, are supported. There are themes and goals, and if you’re a person that loves to solve a puzzle and get to the bottom of something, Codingame is where it’s at.
Codingame is free to play.
I hesitated to include this one because, well, it’s sort of designed for kids. Wait! Don’t go!
If you’re a super-beginner and you need lots of guidance, or you struggle to grasp certain basic ideas in coding (no shade, but sometimes it can be hard to wrap your mind around it!), CodeMonkey is a great beginners tool.
CodeMonkey only teachers CoffeeScript and Python, but it’s a great jumping point for many other languages, too. It also has a community of over 8 million, so you’re never really alone when you’re learning.
CodeMonkey is free to start.
I will readily admit that I think I’m too stupid to play Zacktronics games, but they have a very strong following online, and this one is no exception.
This a puzzle game where you create (simplified) circuits and write basic assembly code that runs in between those circuits you just created. It’s complex, it can be incredibly frustrating, but the feeling you get when you figure it out can be so satisfying it keeps you coming back.
SHENZEN I/O is $14.99 on Steam.
Bonus: TIS-100 is also a Zacktronics game, and all about using a mock version of assembly code to solve puzzles. It’s very challenging, but if you’re into that uber-difficult puzzle life, you’ll probably enjoy it.
Okay, so this is an obscure one – but if you’re interested in learning Vim, this is basically the best way to do it. Vim is a text editor that bascially helps you efficiently edit your code. There is a simplified version (Easy Vim, which sort of looks like Notepad) as well as a big, full version. It’s… a lot, and it’s not for the faint of heart or very beginner.
If you’re interested in learning or mastering Vim, however, Vim Adventures is a great place to start. Tutorials just like this one help slowly introduce you to everything Vim can do, without overwhelming you at the very start.
Vim isn’t a language, but I included it at the end because if you want to be a programmer, Vim can help you get better and do more. Lots of professionals use, love, and swear by Vim.
Vim Adventures is free to play.