If you're coming in as a programming novice, "each" and "for" constructs should look equally as foreign, so you may as well teach the standard conventions. It takes longer to unlearn something, than it is to learn.
>You aren't creating programmers, you're creating good little Rubyists.
You should be creating good Rubyists, if you're using Ruby to teach programming.
There's no difference between a good rubyist and a good programmer. By definition, a good rubyist will have a solid understanding of algorithms, OO, design patterns and anything else that makes one a good programmer.
According to Zed in the article, `for` requires fewer concepts to be fully explained, which `.each` only achieves teaching people to be "Good little rubyists".
One must choose between `for` and `.each` (lets assume we agree that teaching just one is the best approach), so you optimize for your goal of "good programmer", over "good little rubyist".
>You aren't creating programmers, you're creating good little Rubyists.
You should be creating good Rubyists, if you're using Ruby to teach programming.