@MrItty: I think someone who has a solid computer science education will pick up languages trivially easily, while someone who has vocational training in the two languages of the day will struggle mightily with new concepts. Yes, you need to learn the basics of a language in order to learn the rudiments of algorithms, but spending six semesters learning the syntax of three currently popular languages is a total waste of time.
I reiterate my comparison: English majors need to know how to use word processors. This doesn’t mean that they teach Microsoft Word as a for-credit course in the English department. Computer science majors need to know how to use Unix at the shell level. This doesn’t mean that they should be teaching Unix rudiments as a for-credit course. And the better computer science departments don’t teach Unix rudiments as a for-credit course—they have enough other stuff to teach that they don’t spend credit-hours on it.
The job market for folks who can think up algorithms and data structures in their sleep but can’t code is actually quite good—they’re called software architects. They get paid considerably more too. One software architect is easily worth 10 code monkeys who know Java syntax but not much more—because the code monkeys are often interchangeable, especially if all they can do is code, but the architect understands the way things work and the way things fit together.
My experience was much like @robmandu‘s—I was formally taught Pascal in the introductory programming courses, and it was used as a lingua franca for expressing algorithms throughout the department. In the programming languages course, I got tastes of C, Fortran, Eiffel, MIPS assembler, Prolog, Lisp, and Smalltalk—we spent about two weeks on each of them, and we were expected to be reasonably fluent in all of them on our own. The only language that I have used professionally that even existed at the time I finished school is Perl – and it was Perl 4, not Perl 5.
And I don’t think there’s anything inherently wrong with vocational training in programming. I just agree with Dijkstra that it has about as much to do with computer science as optics have to do with astronomy—you have to get it right if you want to really get anywhere, but to focus on it is to completely miss the point.