Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re^2: How to abate the Ubiquitous Fear of Programming

by Your Mother (Archbishop)
on Aug 02, 2004 at 17:39 UTC ( [id://379342]=note: print w/replies, xml ) Need Help??


in reply to •Re: How to abate the Ubiquitous Fear of Programming
in thread How to abate the Ubiquitous Fear of Programming

To be a good programmer, you have to consciously and reflexively know how to solve a problem...

This is true, but only a truism by the hour. A bad programmer can write a good program--just not on a deadline or in an area than isn't personally compelling enough to put in the effort required. A bad writer can write a good story. An awful artist can make a beautiful painting.

I cannot remember pictures, nor can I construct good art.

Maybe can't today, but you definitely could. Anyone with a creative, problem solving mind can be a visual artist. I think this is an important point.

The reason most adults can't draw/paint is related to why they can't program. The mistakes are too painful for an adult. A child can make horrible drawing after horrible drawing for hours for days for months and not mind b/c no one says to a kid, "That's really ugly. What is that? A cat or a cat turd?" An adult draws the same picture and even if no one else says, "That sucks," his/her own internal editor will say it. The trick to learning something new and especially something creative is to keep the editor out until the skills are passed infancy.

This is a trick for this site (a bad drawing can't crash a server) and one that is usually handled well, I think. A beginner can usually get explicit and friendly help with the kind of question that would get a middle of the road hacker like myself a lot of RTFMs and onto the worst nodes page (as it should be).

(update: question question)

  • Comment on Re^2: How to abate the Ubiquitous Fear of Programming

Replies are listed 'Best First'.
•Re^3: How to abate the Ubiquitous Fear of Programming
by merlyn (Sage) on Aug 02, 2004 at 18:12 UTC
    I cannot remember pictures, nor can I construct good art.

    Maybe can't today, but you definitely could. Anyone with a creative, problem solving mind can be a visual artist. I think this is an important point.

    No, I can't. And that's why I bring up this particular point. I don't see pictures. I don't visualize. I can't recall pictures. I have a particular, call it "brain condition" that prevents me from doing so.

    And that seems to really get into the way of being a visual artist. {grin}

    Are you not aware of people who are "tone deaf"? All the training in the world won't get them to recognize tones. It's similar with me and recalling pictures or visualizing. My brain doesn't do that. I am unable. Understand?

    I've even commented here on it at GUIs and CLIs about why I hate some GUI designs.

    And it's a bit crazy of you to think that everyone is like you, although completely understandable, because we want to be tribal and presume that all other humans have all the traits we have.

    Oddly enough, I think it's my lack of cognitive ability to visualize that makes me a very good programmer and writer. Yes, I have trouble when people tell me that they want to see how a variable sits in memory, but I'm not burdened with any of that overhead. I just deal with the patterns and abstractions of variables and processes.

    -- Randal L. Schwartz, Perl hacker
    Be sure to read my standard disclaimer if this is a reply.

      Interesting, I've long suspected that my lack of facility with visualisation was due to some of that part of my brain being given over to pattern recognition and abstraction instead.

      I'm also therefore reluctant to experiment with attempts to improve my visualisation skills, because viewed (!) from here the potential cost is much higher than the potential gain.

      Hugo

        S'funny. I have no artistic aptitude to mention, and I have a tendancy to be "word-blind", though it generally only affects my own writing, and only when it is newly written. Not the classic dyslexia.

        But I rely strongly on visualisation when programming. When I "see" the solution to a code problem, I can generally code it directly and, beyind typis, it usually runs first time.

        When I struggle to "see" the solution, it can take me hours to code even relatively simple things.

        The weirdest thing is that, if the first time I ever try to code something fairly complex but self contained, I get a strong "vision" of how it should be--and if it works. Then I never have a problem re-coding it from scratch.

        Conversely, those algorithms that I struggled to see and code the first time, I always have trouble doing them again, no matter how often I have to do it.

        Likewise there are some words that I struggled with as a kid, that I still struggle with every time.


        Examine what is said, not who speaks.
        "Efficiency is intelligent laziness." -David Dunham
        "Think for yourself!" - Abigail
        "Memory, processor, disk in that order on the hardware side. Algorithm, algorithm, algorithm on the code side." - tachyon
        I think that's also what I'm concluding, at least for myself.

        My lack of visualization meant that I learned different ways to process information. I think some of these have let me work with abstract reasoning in a much more flexible way. I also very quickly recognize abstract patterns amongst wildly different domains (witness the less-than-a-moment's thought that eventually became the schwartzian transform).

        Also, since I don't "picture" a conversation I'm having, I'm terribly efficient with word puns. I "hear" all similar words, and all different meanings, for each word in a conversation. I suspect that people who visualize an actual dog when I say "dog" would have a harder time doing that.

        Like a blind person getting better hearing in exchange, my mental "blindness" has created a number of very useful skills.

        -- Randal L. Schwartz, Perl hacker
        Be sure to read my standard disclaimer if this is a reply.

      Are you not aware of people who are "tone deaf"? All the training in the world won't get them to recognize tones. It's similar with me and recalling pictures or visualizing. My brain doesn't do that. I am unable. Understand?
      Actually, I have seen people who were supposedly "tone deaf" and, as the saying goes, not able to carry a tune in a bucket in fact be trained to carry a tune in a bucket. (Did I mention I was a music major?) However, some people undoubtedly have more of a propensity for carrying tunes, drawing pictures, writing code, etc. Some of that propensity may be genetic, some may be environmental, and everything seems harder to learn as we get older. I agree that the vast majority of people with basic math skills (add/subtract/multiply/divide) and able to read at a junior-high level could learn to program computers to some degree. But there certainly are those with a greater innate skill, propensity, desire, etc. who become the really good coders (not me!), and there are undoubtedly those who don't have the innate abilities required and lack the desire to acquire those abilities, assuming they don't in fact have some phsycial/mental defect that gets in the way of such learning.
      I just took these various aptitude tests (from rockport institute), and one of the fields they tested was the Spatial/Non-Spatial continuum. The idea is that some of us are more spatial than others, and some of us are better at non-spatial stuff than others. I think my super spatialness is actually a hindrance to my programming - I get bored easily cause there isn't a whole lot that I need to visualize in order to do my job. I suppose I should be programming things that require mad spatial skills. My point here is that yes, some people are naturally spatial and some people aren't so much. And there are benefits either way. Oh yes - one more thing - I don't think a person is an awful artist if they make a great painting.
      Are you not aware of people who are "tone deaf"? All the training in the world won't get them to recognize tones.

      That's really the point. Training can be in the way initially. Formalizing a process for a child or beginner is often the fastest way to destroy their desire to pursue a thing.

      And it's a bit crazy of you to think that everyone is like you, although completely understandable, because we want to be tribal and presume that all other humans have all the traits we have.

      Without going too political or philosophical: that's the last thing in the world I think or want.

Re^3: How to abate the Ubiquitous Fear of Programming
by greenFox (Vicar) on Aug 03, 2004 at 07:37 UTC

    The reason most adults can't draw/paint is related to why they can't program. The mistakes are too painful for an adult.

    The reason most adults can't draw/paint is as children they were never given any feedback which allowed them to refine and improve their technique. After a while the kid gets to a point where they are completely frustrated with drawing pictures which they can see look like cat turds and not cats and give up saying "I can't do it". By comparison the majority of children grow up with a fair degree of language competency because parents will correct the child allowing them to see, and thus learn from, their mistakes.

    I had a tennis coach when I was in school who said that the saying that "practise makes perfect" was nonsense, he said instead "perfect practise makes perfect". He never hesitated to say if your technique sucked and I was a visibly better tennis player for his coaching.

    --
    Do not seek to follow in the footsteps of the wise. Seek what they sought. -Basho

      practice makes permanent

      Love the tennis coach story and it reminded me of my teacher on my fundementals of programming course at college.
      On the first day he said
      "I've been doing this job for 13 years and I know that there are some of you in this room I won't be able to teach programming too"
      This caused up roar and complaints to the course head. However he was right at the end of the course out of 24 people, 12 had flunked out, 10 had moved to systems analysis and 4 of us got jobs as programmers.
      I think part of being good at anything is listening to the right people and acting when they tell you your not doing right.
        12+10+4 != 24

        davis
        Kids, you tried your hardest, and you failed miserably. The lesson is: Never try.
Re^3: How to abate the Ubiquitous Fear of Programming
by jZed (Prior) on Aug 02, 2004 at 19:10 UTC
    The mistakes are too painful for an adult. A child can make horrible drawing after horrible drawing for hours for days for months and not mind b/c no one says to a kid, "That's really ugly. What is that? A cat or a cat turd?"
    Sadly, some so-called adults do. But I must say, that's very well put, and an excellent point about the relationship of the creative-mind to the editor-mind. Programming is kind of unique because it requires us to use both the creator and the editor inside ourselves and also to know when to tell which part to shut up and mind its own business. Excellent point too about the community aspect of the criticism process. Great post, Your_Mother++.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (5)
As of 2024-04-25 19:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found