[31196] in Perl-Users-Digest
Perl-Users Digest, Issue: 2441 Volume: 11
daemon@ATHENA.MIT.EDU (Perl-Users Digest)
Mon May 25 00:14:15 2009
Date: Sun, 24 May 2009 21:14:08 -0700 (PDT)
From: Perl-Users Digest <Perl-Users-Request@ruby.OCE.ORST.EDU>
To: Perl-Users@ruby.OCE.ORST.EDU (Perl-Users Digest)
Perl-Users Digest Sun, 24 May 2009 Volume: 11 Number: 2441
Today's topics:
Re: Is PERL good for a linguist new to programming? p.podmostko@googlemail.com
Re: Is PERL good for a linguist new to programming? (Bradley K. Sherman)
Re: Is PERL good for a linguist new to programming? <ben@morrow.me.uk>
Re: Is PERL good for a linguist new to programming? <cartercc@gmail.com>
Re: Is PERL good for a linguist new to programming? <ben@morrow.me.uk>
Re: Is PERL good for a linguist new to programming? (Bradley K. Sherman)
Re: Is PERL good for a linguist new to programming? <ben@morrow.me.uk>
Re: Is PERL good for a linguist new to programming? <uri@StemSystems.com>
Re: Is PERL good for a linguist new to programming? <uri@StemSystems.com>
Re: Is PERL good for a linguist new to programming? <cartercc@gmail.com>
Digest Administrivia (Last modified: 6 Apr 01) (Perl-Users-Digest Admin)
----------------------------------------------------------------------
Date: Sun, 24 May 2009 15:46:44 -0700 (PDT)
From: p.podmostko@googlemail.com
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <fdd7b96d-f20d-430a-836d-bf55995110ee@m17g2000vbi.googlegroups.com>
I just wanted to ask you a question of somewhat psychological nature.
I know that with all due effort and time devoted to learning Perl it
is possible to do it. However, only after having started the
O'Reilly's Beginner's Introduction to Perl did I realise what kind of
thinking is required to be able to write programs.
It calls for a specific approach to problem-solving, logical,
sequential thinking. I was just thinking if it's possible to develop
that kind of mindframe for a person who has aptitude for languages and
humanities but not for maths (because that what programming is
ultimately - solving problems by means of mathemathics). Or will I be
fated for creating programs only by means of analysing and copying
parts of sourcecodes written by someone else?
Opinions appreciated :)
Regards
Przemek P.
------------------------------
Date: Sun, 24 May 2009 22:55:30 +0000 (UTC)
From: bks@panix.com (Bradley K. Sherman)
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <gvcj92$ep0$1@reader1.panix.com>
In article <fdd7b96d-f20d-430a-836d-bf55995110ee@m17g2000vbi.googlegroups.com>,
<p.podmostko@googlemail.com> wrote:
> ...
>ultimately - solving problems by means of mathemathics). Or will I be
>fated for creating programs only by means of analysing and copying
>parts of sourcecodes written by someone else?
> ...
You say that as if it were a bad thing.
BTW, if you can count, you can program.
--bks
------------------------------
Date: Mon, 25 May 2009 00:13:41 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <5u0pe6-qt6.ln1@osiris.mauzo.dyndns.org>
Quoth p.podmostko@googlemail.com:
> I just wanted to ask you a question of somewhat psychological nature.
>
> I know that with all due effort and time devoted to learning Perl it
> is possible to do it. However, only after having started the
> O'Reilly's Beginner's Introduction to Perl did I realise what kind of
> thinking is required to be able to write programs.
>
> It calls for a specific approach to problem-solving, logical,
> sequential thinking. I was just thinking if it's possible to develop
> that kind of mindframe for a person who has aptitude for languages and
> humanities but not for maths (because that what programming is
> ultimately - solving problems by means of mathemathics). Or will I be
> fated for creating programs only by means of analysing and copying
> parts of sourcecodes written by someone else?
It bodes well for you that you have identified this at this early stage
:). Many beginning programmers fail to grasp that they need to be
thinking about and understanding what they are doing, and spend hours
trying to 'learn' by copying bits of code they find without ever
thinking through the mechanics of what is happening.
I think (though there are those here who teach programming for a living,
who may well know better than I) the most important abilities for a
programmer are the ability to actually read every word (or every symbol,
when reading code) of what is in front of you, without assuming you
already know what is there; and the ability to hold the problem you are
trying to solve and several layers of sub-problem in your mind
simultaneously without getting confused. A tendancy to pedantry, and to
picking apart what you have just read or written to be sure all the
words (keywords, functions, symbols, ...) actually mean what you thought
is also helpful.
I think the only real similarity to the practice of mathematics is the
need for 'rigour': that is, to take what you have written and try to
come up with every possible way in which it might go wrong. I suppose a
mathematician's sense of 'elegance' is also similar to a programmer's,
in that you are trying to find a solution that avoids needless
repetition and unnecessary assumptions.
Ben
------------------------------
Date: Sun, 24 May 2009 16:28:57 -0700 (PDT)
From: ccc31807 <cartercc@gmail.com>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <44dc3df3-7c9f-4c45-b03e-2f70c2fcde42@y7g2000yqa.googlegroups.com>
On May 24, 6:46=A0pm, p.podmos...@googlemail.com wrote:
> I know that with all due effort and time devoted to learning Perl it
> is possible to do it. However, only after having started the
> O'Reilly's Beginner's Introduction to Perl did I realise what kind of
> thinking is required to be able to write programs.
This is just my opinion, and many will disagree, some violently. I'm
of late middle age, majored in history and English in college, and
practiced law for 17 years before tranistioning into IT. I'm not a
mathematician nor a programmer but a liberal arts guy. I give this
background to warn you of my bias.
IMO, programming is NOT an academic pursuit, but a technical one. I
see learning to program the same as learning to cook, to ride a bike,
to hit a baseball, or to play a musical instrument. You don't learn
these things by reading a book, hearing a lecture, or watching people
do it. The ONLY(!) way you learn to do these things is by doing it,
and doing it a lot. Practice, practice, practice. There is a
cumulative effect, and the more languages you learn the quicker you
can pick up new ones.
> It calls for a specific approach to problem-solving, logical,
> sequential thinking.
The trick is learning the logic. I now have a couple of advanced
degrees in CS and SwE, and have spent a lot of time with students in
labs. The HARDEST thing for a new student to learn is the logic, but
this is no different from law. It's not hard to learn the semantics of
a language, just as it's not hard to learn what the law is. The much
more difficult part is learning to apply these. For example (taking a
very common student problem) write an algorithm to figure out how many
coins (quarters, dimes, nickles, and pennies) are in a given amount of
money. Try this and you will see that it's not an particularly easy
thing to do -- and most students who fail will fail on the cusp
between programming and logic.
There's a reason that we call this field computational science, or
combinatorial science, or algorithmic science. You can develop a good
knowledge of programming semantics and techniques, but until you learn
discrete math and algorithms, you are just a hack, not an accomplished
professional. (I don't say this to discourage you, just to make the
point that learning a language and learning to use a language are
different things.)
> I was just thinking if it's possible to develop
> that kind of mindframe for a person who has aptitude for languages and
> humanities but not for maths (because that what programming is
> ultimately - solving problems by means of mathemathics). Or will I be
> fated for creating programs only by means of analysing and copying
> parts of sourcecodes written by someone else?
You had better develop that mind frame. If you don't, you won't
succeed. My point is that logic is a discipline that transcends math,
really transcends all disciplines. As to your second question, the
answer is both. If you can analyze and understand program code, you
can write it. In doing so, you will come to appreciate clarity and
precision (including the art of properly commenting code).
You also need to understand that having a tool without a job is almost
as bad as having a job without a tool. It won't do you any good to
learn to program unless you have a problem domain where you can use
the tool. You will never learn to use the tool unless you can use it
to do real work -- not make work or pretend work, but real work.
CC
------------------------------
Date: Mon, 25 May 2009 00:25:05 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <hj1pe6-qt6.ln1@osiris.mauzo.dyndns.org>
Quoth bks@panix.com:
> In article <fdd7b96d-f20d-430a-836d-bf55995110ee@m17g2000vbi.googlegroups.com>,
> <p.podmostko@googlemail.com> wrote:
> > ...
> >ultimately - solving problems by means of mathemathics). Or will I be
> >fated for creating programs only by means of analysing and copying
> >parts of sourcecodes written by someone else?
> > ...
>
> You say that as if it were a bad thing.
It is, a very bad thing.
> BTW, if you can count, you can program.
Not even close to true.
Ben
------------------------------
Date: Sun, 24 May 2009 23:37:58 +0000 (UTC)
From: bks@panix.com (Bradley K. Sherman)
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <gvclom$7m2$1@reader1.panix.com>
In article <hj1pe6-qt6.ln1@osiris.mauzo.dyndns.org>,
Ben Morrow <ben@morrow.me.uk> wrote:
>Quoth bks@panix.com:
>> <p.podmostko@googlemail.com> wrote:
>> > ...
>> >ultimately - solving problems by means of mathemathics). Or will I be
>> >fated for creating programs only by means of analysing and copying
>> >parts of sourcecodes written by someone else?
>> > ...
>>
>> You say that as if it were a bad thing.
>
>It is, a very bad thing.
Substitute "code reuse" and it becomes the Holy Grail.
>
>> BTW, if you can count, you can program.
>
>Not even close to true.
>
No, I think that's all the math you need.
--bks
------------------------------
Date: Mon, 25 May 2009 02:03:10 +0100
From: Ben Morrow <ben@morrow.me.uk>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <eb7pe6-ga7.ln1@osiris.mauzo.dyndns.org>
Quoth ccc31807 <cartercc@gmail.com>:
>
> IMO, programming is NOT an academic pursuit, but a technical one. I
> see learning to program the same as learning to cook, to ride a bike,
> to hit a baseball, or to play a musical instrument.
Speaking as someone who does both: learning to play a musical instrument
is the most apt of these comparisons. Unlike the others, which anyone
able-bodied (and many who are not) can learn with sufficient
application, both programming and music *require* a certain amount of
natural ability which cannot be learned. While ability without practice
leads to sloppy, unreliable and ultimately deeply inferior work,
practice without ability leads to a mechanical competance for simple
tasks without any hope of progressing further.
Of course, the best way to find out if you have the ability is to do the
practice :).
Ben
------------------------------
Date: Sun, 24 May 2009 21:28:05 -0400
From: "Uri Guttman" <uri@StemSystems.com>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <87fxeu0y56.fsf@quad.sysarch.com>
>>>>> "BM" == Ben Morrow <ben@morrow.me.uk> writes:
BM> I think the only real similarity to the practice of mathematics is
BM> the need for 'rigour': that is, to take what you have written and
BM> try to come up with every possible way in which it might go
BM> wrong. I suppose a mathematician's sense of 'elegance' is also
BM> similar to a programmer's, in that you are trying to find a
BM> solution that avoids needless repetition and unnecessary
BM> assumptions.
i would say there is more to the math/programming relationship.
algorithm theory is a very math oriented field and many mathematical
fields have been conquered only through programming. fortran, one of the
most successful (and fugly) languages ever was totally created with math
in mind. programming took the primary math symbols and precedences from
math (in most langs). the list could go on much further IMO.
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Free Perl Training --- http://perlhunter.com/college.html ---------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
------------------------------
Date: Sun, 24 May 2009 21:35:16 -0400
From: "Uri Guttman" <uri@StemSystems.com>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <87bppi0xt7.fsf@quad.sysarch.com>
>>>>> "c" == ccc31807 <cartercc@gmail.com> writes:
c> IMO, programming is NOT an academic pursuit, but a technical one. I
c> see learning to program the same as learning to cook, to ride a bike,
c> to hit a baseball, or to play a musical instrument. You don't learn
c> these things by reading a book, hearing a lecture, or watching people
c> do it. The ONLY(!) way you learn to do these things is by doing it,
c> and doing it a lot. Practice, practice, practice. There is a
c> cumulative effect, and the more languages you learn the quicker you
c> can pick up new ones.
you don't know too many people who can't cook, hit a baseball, or play
an instrument (the latter for me). some skills just can't be taught
because some fundamental skill or something is missing or weak. sure
everyone could do a minimal program if they can follow a recipe or
travel directions. but real programming isn't about that but dealing
with complex levels of those things. i teach that the reason programming
is easy is anyone can do minimal logical stuff. the reason programming
is hard is scaling - two kinds of scaling. there is scaling in knowledge
- the programming field is very broad and deep with more to learn than
any one person cant. and the other scaling is in complexity. small
programs are easy, scaling them up to handle large loads, high speed,
reliability, etc is very hard.
c> The trick is learning the logic. I now have a couple of advanced
c> degrees in CS and SwE, and have spent a lot of time with students
c> in labs. The HARDEST thing for a new student to learn is the logic,
c> but this is no different from law. It's not hard to learn the
c> semantics of a language, just as it's not hard to learn what the
c> law is. The much more difficult part is learning to apply
c> these. For example (taking a very common student problem) write an
c> algorithm to figure out how many coins (quarters, dimes, nickles,
c> and pennies) are in a given amount of money. Try this and you will
c> see that it's not an particularly easy thing to do -- and most
c> students who fail will fail on the cusp between programming and
c> logic.
the logic is easy enough as i said. scaling is the hard part. everyone
can learn a little law but learning enough to be a lawyer and pass the
bar is hard. same thing. writing a php page is easy enough. writing a
kernel is hard.
c> You had better develop that mind frame. If you don't, you won't
c> succeed. My point is that logic is a discipline that transcends math,
c> really transcends all disciplines. As to your second question, the
c> answer is both. If you can analyze and understand program code, you
c> can write it. In doing so, you will come to appreciate clarity and
c> precision (including the art of properly commenting code).
there is definitely a certain mindframe that good or better programmers
have that others don't. accepting that the computer is right and you are
wrong is one of the important attitudes! :)
uri
--
Uri Guttman ------ uri@stemsystems.com -------- http://www.sysarch.com --
----- Perl Code Review , Architecture, Development, Training, Support ------
--------- Free Perl Training --- http://perlhunter.com/college.html ---------
--------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com ---------
------------------------------
Date: Sun, 24 May 2009 20:05:29 -0700 (PDT)
From: ccc31807 <cartercc@gmail.com>
Subject: Re: Is PERL good for a linguist new to programming?
Message-Id: <a5d886f4-d0fd-43b5-a6a3-174173435922@y9g2000yqg.googlegroups.com>
On May 24, 9:35=A0pm, "Uri Guttman" <u...@StemSystems.com> wrote:
> you don't know too many people who can't cook, hit a baseball, or play
> an instrument (the latter for me).
True, but I don't know many who can do these things WELL. I think you
and I agree even though we express it differently.
> some skills just can't be taught
> because some fundamental skill or something is missing or weak. sure
> everyone could do a minimal program if they can follow a recipe or
> travel directions. but real programming isn't about that but dealing
> with complex levels of those things.
This was my point. Learning the syntax and key words of a languages
isn't difficult, and learning the built in functions requires just
some practice. The difference between a journeyman and a master is the
same thing that separates the weekend golfer and Tiger Woods, or the
church pianist and Murray Parriah (sp?): a little bit of genius and
lots and lots and lots of hard work.
> i teach that the reason programming
> is easy is anyone can do minimal logical stuff.
Playing chess? Learning the moves of the pieces is easy. Learning
certain practices (holding the center, developing your men, focusing
your attack) is a little harder. To me, the logic of chess, more of an
art really, is seeing the patterns. Programming as a science can be
taught and learned. Programming as an art cannot be taught or learned.
Anyone can be taught to read notes and play a scale. Making music is
an entirely different matter.
> the logic is easy enough as i said. scaling is the hard part. everyone
> can learn a little law but learning enough to be a lawyer and pass the
> bar is hard.
Actually, passing the bar takes minimal knowledge but great analytical
skills. I've taken and passed bar exams in two states, and what we
were told by the bar examiners was this: 'If you don't know the law,
make it up. We are much more interested in how you think than what you
know.' An engineer can always look up material strengths and formulas
in a handbook, but knowing how to apply the knowledge is the crucial
point. Likewise, a good programmer can program in any language, while
a poor programmer cannot program in any language.
An illustration from programming: you have a glob of data that has
some complex relationships, and you need to stuff it into a data
structure. Do you use and array of arrays, an array of hashes, a hash
of arrays, or a hash of hashes, or something else? You can have a
great technical knowledge of these structures, but knowing when and
why to use them is on a higher level. As you say, scaling is one
important component.
CC
------------------------------
Date: 6 Apr 2001 21:33:47 GMT (Last modified)
From: Perl-Users-Request@ruby.oce.orst.edu (Perl-Users-Digest Admin)
Subject: Digest Administrivia (Last modified: 6 Apr 01)
Message-Id: <null>
Administrivia:
#The Perl-Users Digest is a retransmission of the USENET newsgroup
#comp.lang.perl.misc. For subscription or unsubscription requests, send
#the single line:
#
# subscribe perl-users
#or:
# unsubscribe perl-users
#
#to almanac@ruby.oce.orst.edu.
NOTE: due to the current flood of worm email banging on ruby, the smtp
server on ruby has been shut off until further notice.
To submit articles to comp.lang.perl.announce, send your article to
clpa@perl.com.
#To request back copies (available for a week or so), send your request
#to almanac@ruby.oce.orst.edu with the command "send perl-users x.y",
#where x is the volume number and y is the issue number.
#For other requests pertaining to the digest, send mail to
#perl-users-request@ruby.oce.orst.edu. Do not waste your time or mine
#sending perl questions to the -request address, I don't have time to
#answer them even if I did know the answer.
------------------------------
End of Perl-Users Digest V11 Issue 2441
***************************************