Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

Re: Re: Re: Re: How do you critique another person's code?

by scott (Chaplain)
on Dec 21, 2001 at 05:44 UTC ( #133689=note: print w/ replies, xml ) Need Help??


in reply to Re: Re: Re: How do you critique another person's code?
in thread How do you critique another person's code?

Once upon a time I took a drawing class in college. The teacher had been teaching art classes for about 20 years. One day early in the class, the subject of 'people who can't draw' came up -- of which there were, as I recall, about five in this particular class of ~20. His opinion was that, yes, some people can't draw. And in his twenty years of teaching people from the age of 5 to 95 he's encountered precisely two such poor souls.

Our class didn't provide him with a third example. Now consider, say he teaches four classes per year (he doesn't teach only at the university). Take an average class size of twenty. That's 1600 people. So the odds of a random person picked off the street really not being able to draw is about 0.125% (with rounding).

You may argue that people who 'can't draw' don't sign up for art class. But he doesn't teach just people who volunteer. He teaches at lower level schools and at nursing homes. Further, some people who think they can't draw take classes anyway as an attempt to 'better themselves'.

To be more specific, by 'draw' I mean the ability to produce, say, a drawing of a person's face that the average viewer would call 'good art' and have no trouble matching with the actual person it was an image of, even if they'd never met them before.

I wonder, have you taken an art class? If so did the teacher actually teach you things -- like blind contour drawing, foreground/background, hot/cold coloring, etc. -- or did they just say 'watch me do this and then you do it'? Did they run you through drills and make you keep all your drawings so you could compare results? Did they explain how to suggest shape by varying the thickness of a line? And then make you practice for a half an hour? And then make you practise again the next day? Did you work at it for four hours a day, five days a week for six weeks?

If you haven't done these things than you can't legitimately say you can't draw, IM(NSH)O, you can only say that, unlike people who could play Mozart after merely being shown what the keys of a piano do, it's not an innate ability.

And now, after much ado, my personal opinion:

I don't see how programming is any different.

Speaking as someone who can draw pretty well, and who can do mathematics and physics even better, and therefore, presumably, knows something about what it takes to do each, I can say that I quite definitely don't experience any 'different mode of thought' when I'm doing these three rather different things. The main difference between drawing a person's hand and showing that a given set of sets defines a topology is the degree of hand-eye coordination required to ensure success.

</down with the art-science dichotomy rant>

scott


Comment on Re: Re: Re: Re: How do you critique another person's code?
On being mentally blind
by merlyn (Sage) on Dec 21, 2001 at 07:19 UTC
    Look, I pulled up "inability to draw" as simply a thing I can't do. Don't let that undermine the analogy. Some people can't tell when a note is a quarter-pitch off, like I can, so they won't be able to sing as well as me, and clearly won't be an expert singer. There's no amount of training that'll fix that either. In fact, some people are just plain tone-deaf, and can't distinguish notes at all.

    In fact, that 'tone deaf' thing fits me about drawing. Whether it's a birth defect or an aquired behavior doesn't matter, but I cannot see pictures. I can't. And I didn't even know that other people could until I was about 20 years old. This is probably why I did so badly in art classes... because when I look at a blank sheet of paper, all I see is a blank sheet of paper. I can hear words, and can feel body movement, but I can't see a durn thing.

    If I look around a room, I won't remember a durn thing, unless I tell myself a story about the contents. Then I can remember the story later (or usually a paraphrase), and then I can remember those things.

    I don't have internal visual recall, or the ability to hallucinate. I don't. And yes, I've pondered this for the past 20 years.

    So perhaps I would have been that third person for your instructor. I'm really that bad. And therefore, I can't draw!

    -- Randal L. Schwartz, Perl hacker

      Don't let that undermine the analogy.

      I can't help it because I think it does undermine it.

      Some people can't tell when a note is a quarter-pitch off, like I can, so they won't be able to sing as well as me, and clearly won't be an expert singer.

      That would be me. I only sing to people when I want to punish them. :)

      There's no amount of training that'll fix that either. In fact, some people are just plain tone-deaf, and can't distinguish notes at all.

      Quite. But 1) programming isn't like having perfect pitch or being ambidextrous, it isn't a physical ability, it's an idea. 2) 'Some' isn't well defined. How many people 'can't' program? 1 in 10? 1 in 10,000?

      I cannot see pictures. ... when I look at a blank sheet of paper, all I see is a blank sheet of paper. I can hear words, and can feel body movement, but I can't see a durn thing. ... I don't have internal visual recall ...

      You don't need to be able to see the image on the blank paper to draw. Just because Michelangelo could see the sculpture hiding inside the virgin block of marble doesn't mean that anyone who isn't born with this innate ability can never sculpt. Nor does it mean that they can never sculpt well. Michelangelo is the only sculpter I've ever heard that about. I've never heard it about Berini, Donatello, or Rodin for instance.

      And you don't need that imaging ability to draw well either. Everyone in our class drew well by the end of it and we couldn't 'see the image on the paper'.

      I claim that the model, 'imagine the image on the paper and trace the lines', is non-effective. This isn't what I do and it isn't what we were all taught to do in my drawing class. I suppose, for those lucky few who can do this, it works. Regardless of how many people can imagine the image on the blank page, that method isn't the only one.

      To get back to programming, if you procede from the unshakable belief that computers are intelligent and self-aware (how else could the do all those amazing human-like things?) you will be severely hampered in your ability to learn how to instruct them. From what I've seen of 'normal' people I think many of them think this even though they'll sincerely claim otherwise.

      I claim that many people who 'can't program' or who can but expend great effort in doing so, mumbling all the time about how 'hard' it is, are suffering from a bad case of inappropriate-model-itis. That they are, like the programmer in question, being challenged by psychological factors -- they're thinking about it wrong.

      This is far different from saying they can't think about it right.

      So, to recap, I'm not denying that there are people who can't program. I'm denying that most of the people that most of the people think can't program can't.

      And if you can parse that sentence without a negation error, you probably can program! :)

      scott

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (5)
As of 2014-10-01 01:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (386 votes), past polls