To use your photography analogy, I would suggest that to be a good photographer you need to have an understanding of certain basic skills which are common to painting, such as how to frame your subject for maximum effect. On top of that, you need certain domain-specific skills (a knowledge of how aperture and focal length interact, for example) and some trivial mechanical skills (which dial do I twiddle to set the shutter speed).

To be a good painter you need the skills common to photography, plus domain-specific skills like how to mix paints and apply them accurately to the canvas, and trivial mechanical skills like how to wash brushes.

Learning to program by learning perl will teach the trivial mechanical skills, and lots of perl-specific skills. However, if you want to learn the skills that are common to all programming, I think it's a bad choice. That's because perl does so much for you that you need to be doing really obscure or advanced stuff for that to matter so it's hard to teach them. Better to learn an assembler and C where it's much easier to learn that stuff.

I don't mean to say that everyone should become an expert in assembler and C before tackling perl, just spend a week or two with them, so you get a basic understanding of what a variable really is, simple data structures like a linked list, how memory works, how loops and subroutines work, and so on. With those skills, the very hard problems that we claim perl makes merely difficult will be interesting instead of frustrating. Plus you'll *really* get to appreciate all that perl gives you "for free".


In reply to Re^4: Perl as one's first programming language by DrHyde
in thread Perl as one's first programming language by amarquis

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.