What are your personal experiences if you've started with Perl, or how well have others around you learned Perl as a first language?
I personally started with perl in 1996 after having tried C++ (which came after C, which came after GFA-Basic). Even if I put aside the encounters with in-school programming languages such as Scheme, CL, ML, Pascal I could say, that I found Perl in a phase of mine, where my programming skills were - well - skilled.
What I can make statements about, is now the aproach of some employees here that also started with perl a few months ago. All of them had one or another programming experience in general and some programming languages knowledge as such.
The most interesting facts are:
- I think that the high idiomatic richness of perl has
sharpened my point of view "how to do it" in a way
that the TMTOWTDI type of thinking opened "new
pathways" in my brain. I think perl helped me to
improve my programming skills in general by offering
constructs that seem to fit more of a natural thinking
(instead of the formalized thinking of the more
low level languages).
- But we were talking about beginners: So I am very
carefully watching the colleagues learning perl.
My observation is, that when an average - but
ambitious - programmer is confronted with perl AND
if he is forced to have GOOD results in his code,
he will go through a major change in his type of
problem solving and he will of course encounter
far too many ways of how to do it.
Yes - in general a programmer wishing to harness
most (if not full) of the power of Perl will soon
see, that he needs to learn a damn lot more than
he already knows.
- I don't have any experience with first-time
programmers starting with perl, but according to my
experience it absolutedly cannot hurt. Why? Because
even the fresh perl code generated by programmers
already keen in some programming arts, looks in the
first iterations like some kind of perl-basic.
So my conclusion is: Perl is absolutedly suitable as first-to-learn-language, as long as the programmer is
aware of the many refactoring iterations his software
will have to go through.