

It was easier to learn to program in several languages than in one - joaquinzrr
http://www.joaquinllaneza.com/2012/09/it-was-easier-to-learn-to-program-in.html

======
tibbon
I'd have to wonder if this is essentially that you learn to think then more
about function than syntax for getting things done. Whereas if you just learn
one language, you've learned perhaps how to do something- not what it really
means to do that, or even have that functionality. In learning to think about
a problem multiple ways- you really strengthen your knowledge of why over just
how.

~~~
calinet6
I think this hits the nail on the head. You learn more about the concepts of
programming itself, rather than just about a single set of syntax and
procedure.

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.

------
ef4
I see this story differently. I see a fairly common, two-stage approach toward
programming enlightenment.

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.

~~~
blahedo
> _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.

------
RockofStrength
This is an interesting approach for a beginner, but eventually one must commit
in order to have subconcious command of the syntax. It could be argued that
multilingual children have greater command over the essence of language.

------
tikhonj
While this isn't how I learned programming in the first place, I found
learning Haskell and Scheme at the same time as a freshman really helped me
become a far better programmer. Moreover, the two languages made learning each
other--and associated concepts--far easier, so I was certainly better off
learning both at the same time than I would have been learning them in
sequence.

------
grandalf
This is the way I teach programming. Do the same simple thing in ruby, python,
c, awk ... now another slightly less simple thing.

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.

------
flexie
I went through an almost identical tour, getting to the point where I learned
basic syntax of Java, PHP and Ruby, until a friend finally convinced me to
give python a try. It was only in python, and then javascript, I got a little
further.

~~~
joaquinzrr
yeah, and i'm sure that when you where reading about python or javascript you
were like.. ohhh so that's why i was doing this and that on php or java..
that's what i mean, comparing and relating helps to learn :D

------
clark-kent
Yes this was how I learnt programming. When I was learning programming I found
some concepts easier to learn in one language than the other. It wasn't about
mastering any language at that stage, it was about understanding different
concepts. Some languages implement certain ideas better than others.

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.

------
nnq
...still better then my "getting raped on your first date" type of intro to
programming: starting with C on windows before I knew what a "function" was,
and being exposed to the win32 api just after learning to write a for loop and
before I understood what a pointer really was :) ...and a seep of Perl after
all of this to sooth me up ;)

...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 :)

~~~
SquareWheel
While I see your point, your analogy makes me really uncomfortable.

~~~
ramblerman
what are we supposed to do with this information?

~~~
Flimm
You're supposed to make a mental note that rape analogies make some people
feel uncomfortable, reminding yourself to think twice before using them in
future.

------
MartinCron
I only really understood my native language syntax until I studied foreign
languages. "English Grammar for Students of German" was probably the best
thing that happened to my English skills.

~~~
textminer
Same here. Had no idea why English grammar worked until I studied German. Then
I suddenly had solid mechanics backing up my knowledge of English, not just
immersion-driven intuition (which is inscrutable, deep-down-- "cuz 'to whom'
sounds better, I guess, maybe.").

------
Tipzntrix
This is definitely one of the reason to go to university, where they teach you
these concepts very well. There's no reason you can't learn concepts
sequentially though; I wouldn't advocate trying to learn a million languages
at once, just that you are taught the theory of OOP, the theory of concurrency
solutions like locks, the theory behind communication protocols, etc.

------
batgaijin
I was trying to learn cl and haskell t the same time, and it seriously helped
me. I think I learned it way faster.

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.

------
Turing_Machine
One of my profs in undergrad had been programming since the 1950s (no joke).
He'd start writing something on the board in, say, C, and by the time he was
finished with the code it would have FORTRAN and Lisp in it as well.

Awesome teacher, though.

------
halbermensch
...but not nearly as hard as learning to program _well_ in any single one of
them.

~~~
joaquinzrr
you are right, and i still don't master any language. my point is that for
someone trying to learn by himself, it may result useful to use several
languages, because making comparisons and relating concepts helps to
understand things. at least it helped me.

~~~
halbermensch
'sall good - both kinds of learning are useful and necessary, actually.

