It was easier to learn to program in several languages than in one
joaquinllaneza.com
joaquinllaneza.com
At my school, they downplayed specific languages entirely and I think it was very beneficial. We were expected to learn the basics of a language for a class in the first week, whether it be Java or Python or whatever else. Obviously details would always come up later on, but the attitude was always "don't worry about the language, you can learn it as you go, worry about the concepts" and in that mindset, I definitely think the learning was more effective.
In the first stage, you simply go forth and try. And you drown in complexity. This stage is important, because it's what motivates the second stage. And we shouldn't underestimate the sheer volume of useful trivia that seeps into one's head here.
In the second stage, you shift focus to the longer-term project of mastering the underlying concepts.
Many people get stuck in stage 1, though some of them manage to have careers in programming anyway.
Other people try to skip straight to stage 2, but they often lack the context to understand why the concepts are important, and so they struggle. I think many people who get frustrated in introductory computer science classes fall into this group.
Which is often, to be fair, at least partially the fault of the professor, who structures the course in too much of a jump-straight-to-the-abstraction sort of way. (I include myself in this category---guilty!) I know I've had to learn the hard way just how important it is to take my students through concrete things first and work into the concepts, rather than telling them about a concept (when they're totally unprepared for it) and then expecting them to just do it.
Even now that I'm very aware of the problem, I still relapse when I'm not paying enough attention; and I think a lot of CS professors aren't even aware of the problem.
I use standardized terminology for each language feature and explain how languages are optimized for certain kinds of tasks but often have essentially the same features.
It makes the learner start with the question of "how does the syntax work for language feature x?" rather than asking "what do I type to get the computer to do x".
I think the cross language approach is generally what LPTHW tries to do but it uses python and English.
I started with QBASIC, then went to PASCAL,C,C++. When Java came out it made me understand C++ a lot better. Java had a cleaner implementation of the concepts.
Since I started programming in Ruby, it has made me understand Javascript in a way I never did before.
...things seem much easier if your first experience is "hardcore" ...I guess exposing your mind to a "gang rape" of PHP, C++, Javascript etc. is similarly mind opening :)
I think it's kind of like science class: seeing two different models, and their flaws, helps you understand the phenomena being modeled in a much stronger manner.
Awesome teacher, though.