Let me break it down for you.
Some of the features in this game, are mostly game related. hero.moveRight or hero.attack are not real “commands”. They were programmed by the developers to create a function. However, most of the code in this game can be applied to real life coding.
As a guy who has been coding for close to 3 years, many of the skills your son will pick up such as problem solving and coding syntax are all very important in the development. You will learn for and while loops, object literals, vectors, and how to use variables.
Recently, I helped a friend of mine who was working on creating a website add a new feature into his website, which required me to create a function that can sort out and filter many information.
CodeCombat is helps people who are just starting out, like your son, quickly learn the programming language they want. As for your second question, the second language to learn is without a doubt, Javascript. Python and Js are the two most popular browser development languages right now.
You do not have to redo all the levels for each language. Just go to heroes, and click on the one you want to use. Then, in the dropdown towards the bottom, select JS instead of Python and select Save. Now, go into any level that you have done, and click Play. Then, in the top right hand corner, click on the Refresh button, otherwise the computer will try to read the “python” code when you have switched to JavaScript. You should be all set to go!
As for when, I’d suggest your son complete at least the 3rd or 4th world (Desert / Mountain) before advancing to JavaScript. First pick up one language before you learn the next, being a jack of all trades in coding is not good. By desert or mountain, your son will have learned quite a few of the problem solving skills and coding skills he will need in a real working environment. Make sure you start from the beginning every time you choose to do a new language, as starting right in the middle might make your son confused. While Python and JS are very different, much of the syntax structure is the same.There are still while and for loops and variables etc. So once you learn one language, picking up the second one is much easier. After taking 2 years to really get down JS, it only took me a couple months to get down Python. (I started with JS first)
Thank you for taking the time to read this very long message.
P.S. ~ I assume you are a programmer?