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
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
| [reply] |
|
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
| [reply] |
|
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
| [reply] |
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. | [reply] |
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. | [reply] |
|
|