home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.lang.c:16778 comp.software-eng:4396
- Newsgroups: comp.lang.c,comp.software-eng
- Path: sparky!uunet!spool.mu.edu!sdd.hp.com!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
- From: johnson@cs.uiuc.edu (Ralph Johnson)
- Subject: Re: Will we keep ignoring this productivity issue?
- Message-ID: <BxyJAF.Js2@cs.uiuc.edu>
- Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
- References: <1992Nov13.062945.425@thunder.mcrcim.mcgill.edu> <BxnpJL.BvM@cs.uiuc.edu> <1992Nov17.003350.2649@tcsi.com> <1992Nov17.142332.8286@saifr00.cfsat.honeywell.com> <Bxvq7z.DKs@cs.uiuc.edu> <1992Nov19.032216.20549@sserve.cc.adfa.oz.au>
- Date: Thu, 19 Nov 1992 09:49:26 GMT
- Lines: 98
-
- ghm@sserve.cc.adfa.oz.au (Geoff Miller) writes:
-
- >I think you have misunderstood. Sure, you can teach people to do
- >something well, but there is a difference between "good" and
- >"great". You can teach someone to play the trumpet - can
- >you teach them to improvise like Miles Davis? You can teach someone
- >to write English - can you teach them to write something that will
- >match Faulkner or Steinbeck?
-
- I don't think I misunderstood. I disagree.
-
- Sure, some people that you teach become much better than others.
- But *everybody* who has skills learned them. *Somebody* taught
- Miles Davis to improvise, even if that somebody was himself (which
- it probably was, in part, but he could probably tell you the many
- people who helped). The claim that the main reason why some people
- do better than others is because some people are geniuses and other
- people are not is sheer mysticism. I bet Miles Davis is not a
- genius on any standardized test.
-
- How does one gain this sort of ability? Genetics certainly has
- something to do with it. If Miles Davis had been born deaf then
- he would not have become a musician. I don't know whether tone
- deafness is innate or acquired, but there are probably some other
- genetic features that influence musical ability.
-
- But genetics is much less important than experience. In particular,
- musical skills at pitch matching depend on hearing a lot of music
- in the first few years. Musical families beget musical children,
- but it is environment that causes it, not heredity. Finally, music
- lessons help a lot, but nothing can replace practice, practice, and
- practice. Of course, given a bunch of people raised from birth in
- musical families and given good lessons, all of whom practice 5
- hours a day for twenty years, some will be better than others. But
- this difference is probably not as great as you might think. In
- practice, some children realise they are not in the top half of their
- peer group (and no more than 50% can be above normal, of course :-) )
- and decide to take up programming or cheerleading. Others get distracted
- by TV or school and only practice 2 hours a day. The people who truly
- love to play music, who would rather practice than talk to their girlfriend,
- are a rare breed who are probably to be pitied rather than admired, but
- who are naturally going to end up better than others who have similar
- genetic gifts.
-
- This doesn't explain a true prodigy like Mozart, who was an accomplished
- musician before he was a teenager. However, it explains most of the top
- people in their fields today. It especially explains the difference
- between programmers. People who like what they do practice more, and
- so get better at what they are doing. People who have encountered good
- teachers learn faster, and are more likely to like what they do. Childhood
- experiences are also important, because geometrical reasoning seems to be
- helped by playing with blocks and mechanical toys at an early age.
-
- We don't know how to teach programming very well. That doesn't mean that
- programming can't be taught. If we knew how to teach it better than more
- people could become competent programmers and the ones who already become
- good programmers would be even better. I don't think that the problem
- with software today is primarily because of teaching. However, I do think
- we can figure out what makes a superior programmer good and teach it.
- Of course, this will help the superior programmers, too. For example, I
- saw a study of how good debuggers work, and one of the amusing things is
- that they talk to people more than they look at source code. This particular
- system was very large, and it was impossible to figure out what it did by
- looking at the source code, so the good debuggers knew who the experts
- were and would ask them. This has helped me a lot. If the normal techniques
- don't work, I am quicker to ask questions from experts.
-
- The differences between the best and worst programmer in most programming
- groups is much larger than the difference between the best and worst player
- on a typical NBA team. One explanation might be that software engineering
- is more like (American) football than basketball; there are many specialties
- and people do not have to be good at all of them. Someone who is good at
- documentation or at finding out what the users *really* need is going to
- be valuable even if he or she is not very good at debugging. But another
- explanation is the one I gave; management usually can't tell who is good
- and who is not. Thus, lots of people end up on the team who should have
- been cut. People end up as programmers who should really be salesmen or
- (for the really big money) electricians.
-
- In summary, I have been talking about several things. I agree strongly
- that there is a difference of several orders of magnitude in the performance
- of programmers, and this is a real difference, not because some people do
- quick-and-dirty programming and the others do a careful job. Further, I
- agree that management should pay more attention to this fact than they do.
- However, I think that this difference is due in part to the immaturity of
- the field. We don't know what it is that makes one person a better
- programmer than another. I think that it is possible to find out, and
- if we knew that then we could figure out how to teach it. Of course, it
- is not possible to teach everything to everybody, but we could do a much
- better job than we are now. Some programmers would still be better than
- others, but all of them would be better than they are now and the difference
- would be smaller.
-
- Ralph Johnson -- University of Illinois
-
-
-
-
-