1. This doesn't teach you how to code, this teaches you how to read code and learn arithmetic logic that goes with programming.
2. You use Javascript as a base.
But it doesn't, it only serves as practice for distinct edge cases that teachers try to use to trip up new students. Which is fine except that it does not teach you anything, it lets you figure it out through frustration and trial-and-error. It never tells you "Hey, make sure you pay attention to this part" or "Sometimes weird stuff like this might happen" and then offer a path for the student to progress.
that's a pretty biased assumption. javascript is a perfectly fine language to learn to code in, especially given its prevalence and penetration. there's some weirdness to it, yes, but every language has its quirks.
I personally feel that Javascript is a language that you move into when you properly understand primitive programming constructs. I think this because if you start with Javascript, every other language will make you feel crazy and lost since you can't override internal structures, protected primitives and definitions, on top of the fact that "object-oriented" Javascript is almost as laughable as it is frustrating. There was an article on the front page here just recently that was along the lines of "x tips to being a better Javascript programmer." It just confirmed my choice to not have a career involving Javascript.