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

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

by merlyn (Sage)
on Dec 20, 2001 at 22:29 UTC ( [id://133556]=note: print w/replies, xml ) Need Help??


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

Does he have potential? Yes, we all do.
If by that you mean "Does he have potential to be an expert programmer?", I'm going to disagree with you.

Over the years, I've had lots of opportunity to watch various people attempt and master programming.

Some people "get it". Others... just don't.

Now there's nothing lesser about those that don't. Let's take the inverse as an example. Most people consider me to be an expert programmer. But I can't draw worth beans. It mystifies me. I can't figure out how people know where to put the lines or the colors, or how to transform the 3-D world they are viewing into the 2-D projection of it for the paper.

So, I don't draw. I'm not braindead. I just don't think that way. Similarly, I've seen that most people don't think in the way that it takes to be an expert programmer. Nothing wrong with them. They just don't have that particular aptitude.

And I may get flamed on this. Lemme also say that I think as children, we probably can and do pick a path, and maybe only then were all possibilities equally probable. But at some point, we start specializing, and after that, there's a commitment to the wiring of a particular brain. My theory, anyway.

Now if you meant "has potential to get a bit better", certainly, I can support that. But maybe he oughta take up another line of work. Seriously.

-- Randal L. Schwartz, Perl hacker

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

Replies are listed 'Best First'.
Re: Re: Re: Re: How do you critique another person's code?
by scott (Chaplain) on Dec 21, 2001 at 05:44 UTC

    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

      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

Re: Re: Re: Re: How do you critique another person's code?
by dragonchild (Archbishop) on Dec 20, 2001 at 22:52 UTC
    I agree completely with you, merlyn.

    ------
    We are the carpenters and bricklayers of the Information Age.

    Don't go borrowing trouble. For programmers, this means Worry only about what you need to implement.

Re: Re: Re: Re: How do you critique another person's code?
by Gyro (Monk) on Dec 21, 2001 at 01:09 UTC
    Again I agree with you. This is definitely someone who needs more training. Did not mean he would be an expert.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2024-04-24 01:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found