Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: When does programming become automatic (if ever)?

by graff (Chancellor)
on Apr 15, 2016 at 03:05 UTC ( [id://1160488]=note: print w/replies, xml ) Need Help??


in reply to When does programming become automatic (if ever)?

I've been coding in perl for over 20 years now (I wrote C for about 10 years before that), and I'm always looking stuff up, because the man pages are good enough (and I've gotten good enough at reading man pages) that I don't go out of my way to memorize stuff. (If I happen to remember how a given module or function works, that's fine, but not essential.)

As for just sitting down and writing code, I pretty much always start every new script file by writing the man page for it. That's the only way I can be sure that I know what I'm doing, and whenever I haven't done that, as often as not I get confused before I get very far.

Replies are listed 'Best First'.
Re^2: When does programming become automatic (if ever)?
by BrowserUk (Patriarch) on Apr 15, 2016 at 06:02 UTC
    I'm always looking stuff up, because the man pages are good enough ... that I don't go out of my way to memorize stuff

    As that may be, but in order to look stuff up; you need to know what to look up.

    At the beginning with any new language, the steepest part of the learning curve is knowing where to look and what to look up.

    And it has knock on effects for your whole approach to both writing the code; and structuring the application; even how you think about the problem.

    The best evidence for this are the flavours (C-ish; OO-ish, Fortran-ish etc.) of code you see in SoPWs from newbies to Perl. You can often make a good guess at not only how much programming experience they have; but which, if any, previous language they have experience of, just from the way they approach the problem and the style of code that produces.

    Making effective use of Perl means becoming one with its operator rich environment and its built-in data-types; and making your code play to its strengths.

    The worst code you'll see is that modeled after JS or Java or C++; which tries to write everything-is-an-object code in a language that has better solutions for many problems.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
    In the absence of evidence, opinion is indistinguishable from prejudice.
      There is no "set" time. for anyone. We are all creatures of habit, and basically lazy.

      As a result, if you can look at things you are good at in "life", you will find that you will fairly quickly become fluent (automatic) in those areas in programming.

      For example; My strongest area is in efficiency. I have found that I seem to recognize patterns far faster than those I've met, or know.

      As a result; while I do not qualify myself as an expert in Perl, by any means. I can rip apart a program created an "expert programmer" in seconds, and more; remove, or re-write portions of that program quite easily. Maybe that just makes me more a "Hacker", than a programmer.
      But don't you have to be a Programmer, before you can be a Hacker?

      Point being; If you can classify, or categorize the areas you are proficient at in life.
      You will most probably find that you will become proficient in those same areas, where programming is concerned -- think "habit" && "basically lazy". It (those areas) comes "easily" to you. :-)

      EDIT

      P.S. Great meditation BTW. Thanks for posting it!

      ¡λɐp ʇɑəɹ⅁ ɐ əʌɐɥ puɐ ʻꜱdləɥ ꜱᴉɥʇ ədoH

        Towards the end of her life, my Nan never used to buy news papers: "Its all just too depressing!"; but she loved it if I collected pairs (or runs) of a particular daily newspaper by picking up discarded ones from the train during my evening commute. (I once offered to buy her a subscription; but she lived through two world wars and was all about thrift. :)

        The reason was that she loved doing cryptic cross words in that particular paper. She wasn't well educated, taken out of school at twelve, and didn't have a particularly vast vocabulary; but for years she'd picked up her boss's discarded copy of this paper and read it during her lunch break; and had become expert at understanding the mind of the cross-word compiler of this particular puzzle. She'd done it for so long that she had acquired an almost 6th sense about the patterns he used to construct his clues; which meant that most times she could complete the puzzle even when she didn't actually know what half the words meant.

        My point is that I think expertise comes in many forms; and from my observation, if you enjoy what you do, it can allow you to achieve a far higher level of competence, and far more quickly, than if you do not.

        I also observe that with programming, one of the most important basic skills is pattern recognition. And it is one of those abilities that is either innate in your nature, or not; it is very difficult to either teach or learn. I put most of my own abilities as a programmer down to an innate ability to see patterns in stuff that others don't see; even when you try to point it out to them. (Just as well, because I have little by way of other innate abilities :)

        I think one of the biggest lies in modern politics is the idea that everyone is born with equal potential; and that if we could only get the education system right; then any kid could become whatever they choose to be. Even among kids with ostensibly the same IQ, some will excel at some subjects and skills and be complete duffers at others.

        And I think programming is a particularly polarising skill. Some kids will just take to it like a duck to water; and others will never get it no matter how much time is expended trying to teach them.

        It used to be that the skill of the best teachers was to recognise what innate skills and talents each particular child had and to guide them in developing their best potentials in those directions. The modern dogma is that you have an entirely fix curriculum and force every child to work through every part of it.

        Forcing a kid destined to become an artist or media designer or musician to sit through hours of Math, Physics and Chemistry that they have no interest in or use for; is equally as useless as forcing those who's only hanker is to be a mathematician or physicist or chemist or programmer to endure art or music or history or sport.

        And that, to me, is perhaps the most wide spread and greatest collective sin of modern societies.


        With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
        In the absence of evidence, opinion is indistinguishable from prejudice.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1160488]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (3)
As of 2024-03-29 02:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found