Zach Wentz was recently invited to Medium, and for his first post, he wrote "The Trouble with Code School". (Actually he wrote CodeSchool, but I wanted to fix that.) In it, he accurately describes a flaw in online education platforms in that they do not teach every bit of technology leading up to the scoped piece of technology that they describe.
In many ways, he's right. If you are looking to learn programming, you absolutely should understand the concepts that he shared in his post. That said, Zach's trouble comes with misunderstanding or misstating the purpose of something and then generalizing that something with other somethings.
Understanding Purpose #
If you haven't heard of Rosetta Stone, they provide courses for you to learn various world languages. A quick Google search for 'learn world languages' will list off their competitors. The bulk of these companies focus on one specific language per course. If you want to learn French, you take one of their courses. If you want to learn the roots of human communication, you do not.
This is the same with Code School and many other online training sites. I can't speak for all of them, but Code School even offers courses that are not specifically programming related. In most of these sites, a course is available with a title describing the specific language or the framework that you will be learning. Some even list prerequisites of things that you should likely know before taking a course.
If I thought that people should begin with the foundations of language before learning French, I would not write a post entitled "The Trouble with Rosetta Stone". Unfortunately it seems Zach chose this approach to bait more readers. For this particular instance, the argument is more along the lines of "The Trouble with Learning Computer Languages Before Understanding Computer Language Principles".
I can see why someone would want to shorten that up. It wouldn't have the click appeal that the original title did. Unfortunately, that comes at the expense of misleading people about the purpose of something in exchange for the click-through.
If Zach's comments weren't directed at Code School and if it didn't misrepresent the purpose of Code School as well as a few of the other online training platforms it mentions, I would really dig the post. Zach brings up good points, and at times a fair argument. But his lack of good form from the outset is tough to swallow.