Pinterest Stumbleupon Whatsapp
Ads by Google

If you’ve ever tried to learn to code from a book, you know how boring it can be. Why not try some engaging options to make learning more fun?

Each of these websites has its own distinctive style, but they all have elements of games built into them. They’re quirky and fun, and they’ll keep you coming back to learn more.

Code Combat

If you’re looking to learn JavaScript Start Coding JavaScript Right Now With These 5 Great Free Resources Start Coding JavaScript Right Now With These 5 Great Free Resources Read More and you don’t have much — or any — coding experience, give this free game a try. Take control of a wizard and his minions. Level up from simple concepts like pre-programmed and conditional behaviors to more advanced spells like calculations.


The learning environment is a cute fantasy RPG with knights, ogres, and mages. Move your minions, target your enemies, launch attacks, and destroy the servants of darkness!

Code Combat launched in 2013, so levels are still limited. But the team behind Code Combat will be developing like mad to get more tutorials and games up, so expect more from this site in the future. They’ve even opened it up and made everything open-source so that Artisan Wizards (users) can write their own levels.

Ads by Google


A bonus feature of Code Combat: if you can pass the Gridmancer level, they’ll help you get a programming job in San Francisco!

Code Wars

Though you don’t get to wear a wizard hat at Code Wars, you can level up by gaining points for completing kata, or coding challenges. You can complete kata in Ruby, JavaScript, or Coffeescript. CoffeeScript Is JavaScript Without The Headaches CoffeeScript Is JavaScript Without The Headaches I've never really liked writing JavaScript all that much. From the day I wrote my first line using it, I've always resented that whatever I write in it always ends up looking like a Jackson... Read More A kata is available in different languages, so you can get a good understanding of how the different languages handle the same tasks. Plans to add other languages, including Python, Java, PHP, and Objective-C, are in the works.


The martial-arts- / samurai-themed leveling system is fun and compelling — each time you complete a kata, you gain honor points. Gather enough points to level up to the next rank, unlocking more difficult programming challenges. You can also gain honor points by writing your own kata, leaving comments on others’ kata, and by referring your friends to Code Wars.

The challenges are useful and fun, and Code Wars is the only site listed that also teaches you to test your own code. But there’s little in the way of instructions, so prepare to do a lot of Googling to solve the problems. Although it can be a slow process, this is a great way to learn what coding is really like.


It’s not as goofy as Code Combat, but support for more languages and a less childish should appeal beginners. Code Wars also has a strong community, which helps beginners get up and running. And leveling up and gaining prestige are motivating rewards on their own!

Code School

Unlike the previous two sites, Code School is not free. And at $290 per year ($29 /month), it feels like a bank buster. But the Code School team has created a website so engaging and useful that it’s worth the investment if you’re serious about learning to code. With a subscription, you can take as many courses as you want and switch between them at any time. They also offer a free two-day “Hall Pass” that gives you 48 hours to try out everything here for free.


With Ruby, Javascript, HTML/CSS, and iOS development courses, you have a wide range of options for learning. Try the electives for things like Chrome DevTools, Google Drive API, and Git.

Of the three sites discussed here, Code School has the least “gamey” feel. Each lesson consists of a short video lesson followed by challenges; each challenge that you complete earns you points, and asking for hints reduces the point value of the question.


Code School points don’t do much at the moment. In the past, when you completed a course, you would get a $5 voucher that could be used at the Code School store, but that program has been scrapped. Hopefully we’ll see something similar in the future! But for now, you can collect points and badges and show them off to your friends. That is certainly worth something.

Which one should you choose?

So here are three fun ways to learn programming — which one should you try first? I recommend choosing a programming language How To Pick A Programming Language To Learn Today & Get A Great Job In 2 Years How To Pick A Programming Language To Learn Today & Get A Great Job In 2 Years It can take years of dedicated work to become a truly good programmer; so is there a way to choose the right language to start from today, in order to get hired tomorrow? Read More and the website based on your experience level and what you want to program. For example, if you want to develop online apps, you should go with JavaScript. If you have little or no programming experience, sign up for Code Combat. If you know some of the basics, take a shot at Code Wars. If you want to develop iPhone apps Create Your Own Smartphone App With Infinite Monkeys - No Coding Knowledge Required Create Your Own Smartphone App With Infinite Monkeys - No Coding Knowledge Required It would be great if we all had the time, skills, and patience to learn computer coding, especially since technology pervades so many areas of our life. But thankfully, there are applications and web developers... Read More  or Ruby on Rails apps, Code School is the way to go.

If you have no idea what you want to do or where to start, I’d recommend Code Combat. It’s the friendliest and simplest of the three, and it’ll give you a good introduction to the basic concepts behind all programming languages. If you decide that you really like it, you can move on from there.

Code School, while very useful, requires some knowledge before getting started. If you don’t know the difference between a function and an array, you might want to start with something a bit simpler.

Leveling Up

Once you’ve got your feet wet with these programming sites, you’re ready to graduate to more challenging tasks, like creating your first app. Beyond this point, you’re limited only by your imagination!

Secure some web hosting space for your web app, or write a program to help you with your daily tasks. Get yourself a Raspberry Pi or Arduino and try your new skills. Don’t forget, we have a Raspberry Pi guide and an Arduino guide for the first glimpse.

Have you used any games or fun sites to learn programming? What’s your favorite way to learn to code?

Image Credit: Javascript by Dmitry Baranovskiy via Flickr

  1. Abhi
    July 25, 2016 at 9:47 am

    Good article.I need the same way of learning by playing and interactions from C,C++ and Java.where can i find that?

  2. Yellow_Daffodil
    May 22, 2014 at 11:49 am

    @Rene Of course programming is fun! The pleasure to solve problems and create things that work the way you want is thrilling. Check out

  3. Gyan V
    March 25, 2014 at 8:34 am

    Really cool websites. I used to use CodeCademy but they didn't offer all the languages or the ones I needed. It's gonna help for sure.

    • Dann A
      March 25, 2014 at 8:43 am

      Glad you found the articles useful! Just out of curiosity, which languages were you looking for? I'm always curious to find out what kinds of resources other people are seeking out.

  4. Alex V
    March 14, 2014 at 9:36 pm

    Great artcle!
    After wasting a lifetime with video series and books, I descovered and that was a big change. They give points, badges, and have courses on JS, HTML/CSS, OOP, PHP, Ruby and growing.
    I can't wait to try Code Wars. I think that is something that will help me get back to programming.

    • Dann A
      March 15, 2014 at 9:11 pm

      Thanks for the comment, Alex! Codecademy has been getting a lot of good reviews on this article, and I think I might have to check it out. Fortunately, there are a lot of great coding resources out there, and they're likely to increase. I hope Code Wars helps you get back to programming. It's goofy and fun, and it might just give you the kick you need.

  5. Aibek E
    March 13, 2014 at 10:52 am

    Awesome article Dan!
    Learning by playing should be fun, it's been a while since I wanted to get back to JS. Planning to give it try in the next couple of weeks.

    • Dann A
      March 15, 2014 at 9:13 pm

      Thanks, Aibek! Seems to me like JS is never out of demand, so you can't go wrong getting back into it.

  6. Andy L
    March 7, 2014 at 7:22 pm

    There is also RoboCode

    its java language, and you have to code the behavior of a bot/tank to fight others.

    • Dann A
      March 8, 2014 at 10:21 am

      I had never heard of RoboCode, but I just glanced at the site, and it looks really great! It looks like you can run it offline, which would be really nice. I think I'm actually going to have to try this one.

      Thanks for sharing this!

  7. A41202813GMAIL
    March 7, 2014 at 12:03 pm


    Is There Any Free Online Site, For Senior Programmers, That Already Know Other Languages, To Learn JAVA ( Not JAVASCRIPT ) From Scratch ?

    Thank You.

    • Dann A
      March 8, 2014 at 10:22 am

      The commenter below mentioned RoboCode, which isn't an online game, but teaches you to use Java to build a robot. That seems like a good place to start. If I come across anything else, I'll be sure to share.

      Thanks for posting!

  8. Gianna Marie L
    March 6, 2014 at 2:35 pm

    awesome site.. I will try all of these.. thanks mate.

  9. Rene
    March 6, 2014 at 7:16 am

    If you NEED fun to learn programming, then, maybe, programming ist not for you.

    • Dann A
      March 6, 2014 at 10:56 am

      I think it comes down to learning styles—some people are just more motivated when they're having a bit of fun. Some people respond well to gamified studying, even in subjects like history and language, while others just don't need it. Also, I think the idea of "programming" is changing a bit. For example, it would probably be useful for a lot of bloggers to learn a bit of PHP so they can take a crack at customising their WordPress templates in new ways, or Ruby for changing a Jekyll blog. And designing simple apps in JavaScript or Rails is useful for all sorts of reasons.

      Thanks for reading!

  10. Pablo
    March 6, 2014 at 6:26 am
    • govertz
      March 6, 2014 at 10:33 pm

      Exactly codecademy is the place to go when you start coding, or want to polish your skills.

  11. Craig
    March 6, 2014 at 5:37 am

    Having the same issue as Mike. I try to create an account and when I click the button nothing happens. No feedback, no error, just the dialog that says to enter my e-mail and password.

  12. Nick
    March 5, 2014 at 9:50 pm

    Hi Mike, CodeCombat dev here–noticed your comment. Sorry about the bug! Can you let me know whether either of these URLs give the same result?

    Hope to get this fixed up for you. You could also swing by our chat:

    • Kevin
      March 6, 2014 at 3:36 am

      Nick -

      Thank you for providing these links. I was able to use the first one to start the introduction mission. At the point after completing the first task (killing the first ogre) I was prompted to create an account to save which I was able to do.

      From the main page, however, I was receiving the same errors as Mike.

      Hope this helps!

    • Dann A
      March 6, 2014 at 10:49 am

      Thanks for coming to the rescue, Nick!

  13. Mike
    March 5, 2014 at 6:55 pm

    So how do you get into Code Combat? Went to the site, and it said "Level could not be loaded: rescue-mission". All of the links on the page said exactly the same thing, even the ones that aren't "Rescue Mission". I tried signing up, hoping that would help, and clicking submit after entering my e-mail and password just re-started the sign-up form. Trying to sign in with Google gave me an error. I'm at a loss here. I've got Javascript and cookies turned on in my browser. I'm using the most recent Firefox, which shouldn't be out of the ordinary. The only possibly odd thing is that I'm running Linux. But for a coding-related activity, that shouldn't be anything unusual.

    Otherwise, this sounds really cool! I've been wanting to get some more modern coding experience (I haven't done any programming since my BASIC and Pascal days of the 80's and early 90's when I was in Elementary, Jr. High and High School).

    • Dann A
      March 6, 2014 at 10:49 am

      Sorry to hear that you're having problems—I hope Mike's suggestions below are helpful! If you're already familiar with some of the basics of programming, Code Combat might be a bit easy for you, but it is a fun way to get more accustomed to the conventions of JavaScript. If you find it too easy, give Code Wars a try—not quite as fun, but really great for learning how to do a lot of useful things.

    • Marcus P
      March 27, 2014 at 4:42 pm

      Wow BASIC - oh my Lordy do I remember those days. I was eleven I think. Picked up a book, and compiled from scratch some lunar landing effort. I couldn't even dream of doing that in C#. The only thing that did inspire me to get back into programming was Jarvis-AI, which is pretty neat with it's concept and design, but it's a little quirky. A handful of Youtube videos are out there for that, and it's good for tinkering around with, but it doesn't make the learning any easier. These sites could help. I always find the practical side of learning programming languages much more useful than just burying my nose in a book.

  14. cecycorrea
    March 5, 2014 at 6:49 pm

    Jeremy -- Code School offers 2 months free when you get a yearly subscription.

  15. Fábio R
    March 5, 2014 at 6:43 pm

    I didn't knew about Code Combat, it looks really fun and I am interested in giving it a try.
    I'm a bit surprised that you didn't mentioned codecademy, it's one of the most known sites with a great deal of languages to learn (html, php, javascript, python, ruby...).

    • Dann A
      March 6, 2014 at 10:45 am

      I did consider discussing Codecademy here, but it seemed to be less gamified than the other options, so I thought I'd leave it out. It's a great website for learning a lot of languages, but it didn't quite have the feel that I was going for with the other sites. The fact that it offers Python is really great, too.

      Thanks for the comment!

  16. Jeremy
    March 5, 2014 at 5:06 pm

    Just curious, what calendar do you use? By your math in Code School, there's only 10 months in a year. Last I checked, there's 12, so it should either cost $24.17 per month, or $348 per year.

    Otherwise a great article, I'm probably going to try Code Combat since I'm wanting to learn JaveScript personally. Thank you!

    • Larry Mac
      March 5, 2014 at 7:12 pm

      Or perhaps they offer a deal -- "Get two months for free with an annual subscription."
      Which is easy enough to find on the site.

    • Dann A
      March 6, 2014 at 10:42 am

      As Larry pointed out, there's a "get two months free when you buy a year" option. Glad you liked the article, and enjoy CodeCombat! Some of the other comments lead me to believe they might be having some signup problems right now, but hopefully they get those fixed and you get to slaying ogres and evil magicians in the very near future.

      Have fun!

  17. Joel L
    March 5, 2014 at 4:27 pm

    These sites are really cool. Programming can be a drag, especially when you're still a newbie, so I fully support any site that tries to make the learning curve that much easier and more enjoyable! For comprehensive written tutorials (not as fun as these sites but quite informative), I highly recommend the TutsPlus website.

    • Dann A
      March 6, 2014 at 10:40 am

      I find that using a combination of things like these sites and ones like TutsPlus is best for me. Learn a basic concept with a game, then look up a more detailed tutorial for putting it into practice. There's definitely a place for both.

      Thanks for the comment!

Leave a Reply

Your email address will not be published. Required fields are marked *