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