home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / c / 16778 < prev    next >
Encoding:
Internet Message Format  |  1992-11-18  |  6.2 KB

  1. Xref: sparky comp.lang.c:16778 comp.software-eng:4396
  2. Newsgroups: comp.lang.c,comp.software-eng
  3. Path: sparky!uunet!spool.mu.edu!sdd.hp.com!ux1.cso.uiuc.edu!cs.uiuc.edu!johnson
  4. From: johnson@cs.uiuc.edu (Ralph Johnson)
  5. Subject: Re: Will we keep ignoring this productivity issue?
  6. Message-ID: <BxyJAF.Js2@cs.uiuc.edu>
  7. Organization: University of Illinois, Dept. of Comp. Sci., Urbana, IL
  8. 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>
  9. Date: Thu, 19 Nov 1992 09:49:26 GMT
  10. Lines: 98
  11.  
  12. ghm@sserve.cc.adfa.oz.au (Geoff Miller) writes:
  13.  
  14. >I think you have misunderstood.  Sure, you can teach people to do 
  15. >something well, but there is a difference between "good" and
  16. >"great".  You can teach someone to play the trumpet  -  can
  17. >you teach them to improvise like Miles Davis?  You can teach someone
  18. >to write English  -  can you teach them to write something that will
  19. >match Faulkner or Steinbeck?
  20.  
  21. I don't think I misunderstood.  I disagree.  
  22.  
  23. Sure, some people that you teach become much better than others.
  24. But *everybody* who has skills learned them.  *Somebody* taught
  25. Miles Davis to improvise, even if that somebody was himself (which 
  26. it probably was, in part, but he could probably tell you the many
  27. people who helped).  The claim that the main reason why some people
  28. do better than others is because some people are geniuses and other 
  29. people are not is sheer mysticism.  I bet Miles Davis is not a
  30. genius on any standardized test.  
  31.  
  32. How does one gain this sort of ability?  Genetics certainly has
  33. something to do with it.  If Miles Davis had been born deaf then
  34. he would not have become a musician.  I don't know whether tone
  35. deafness is innate or acquired, but there are probably some other
  36. genetic features that influence musical ability.
  37.  
  38. But genetics is much less important than experience.  In particular,
  39. musical skills at pitch matching depend on hearing a lot of music
  40. in the first few years.  Musical families beget musical children,
  41. but it is environment that causes it, not heredity.  Finally, music
  42. lessons help a lot, but nothing can replace practice, practice, and
  43. practice.   Of course, given a bunch of people raised from birth in
  44. musical families and given good lessons, all of whom practice 5
  45. hours a day for twenty years, some will be better than others.  But
  46. this difference is probably not as great as you might think.  In
  47. practice, some children realise they are not in the top half of their
  48. peer group (and no more than 50% can be above normal, of course :-) )
  49. and decide to take up programming or cheerleading.  Others get distracted
  50. by TV or school and only practice 2 hours a day.  The people who truly
  51. love to play music, who would rather practice than talk to their girlfriend,
  52. are a rare breed who are probably to be pitied rather than admired, but
  53. who are naturally going to end up better than others who have similar
  54. genetic gifts.
  55.  
  56. This doesn't explain a true prodigy like Mozart, who was an accomplished
  57. musician before he was a teenager.  However, it explains most of the top
  58. people in their fields today.  It especially explains the difference
  59. between programmers.  People who like what they do practice more, and
  60. so get better at what they are doing.  People who have encountered good
  61. teachers learn faster, and are more likely to like what they do.  Childhood
  62. experiences are also important, because geometrical reasoning seems to be
  63. helped by playing with blocks and mechanical toys at an early age.
  64.  
  65. We don't know how to teach programming very well.  That doesn't mean that
  66. programming can't be taught.  If we knew how to teach it better than more
  67. people could become competent programmers and the ones who already become
  68. good programmers would be even better.  I don't think that the problem
  69. with software today is primarily because of teaching.  However, I do think
  70. we can figure out what makes a superior programmer good and teach it.
  71. Of course, this will help the superior programmers, too.  For example, I
  72. saw a study of how good debuggers work, and one of the amusing things is
  73. that they talk to people more than they look at source code.  This particular
  74. system was very large, and it was impossible to figure out what it did by
  75. looking at the source code, so the good debuggers knew who the experts
  76. were and would ask them.  This has helped me a lot.  If the normal techniques
  77. don't work, I am quicker to ask questions from experts.
  78.  
  79. The differences between the best and worst programmer in most programming 
  80. groups is much larger than the difference between the best and worst player
  81. on a typical NBA team.  One explanation might be that software engineering
  82. is more like (American) football than basketball; there are many specialties
  83. and people do not have to be good at all of them.  Someone who is good at
  84. documentation or at finding out what the users *really* need is going to
  85. be valuable even if he or she is not very good at debugging.  But another
  86. explanation is the one I gave; management usually can't tell who is good
  87. and who is not.  Thus, lots of people end up on the team who should have
  88. been cut.  People end up as programmers who should really be salesmen or
  89. (for the really big money) electricians.  
  90.  
  91. In summary, I have been talking about several things.  I agree strongly
  92. that there is a difference of several orders of magnitude in the performance
  93. of programmers, and this is a real difference, not because some people do
  94. quick-and-dirty programming and the others do a careful job.  Further, I
  95. agree that management should pay more attention to this fact than they do.
  96. However, I think that this difference is due in part to the immaturity of
  97. the field.  We don't know what it is that makes one person a better
  98. programmer than another.  I think that it is possible to find out, and
  99. if we knew that then we could figure out how to teach it.  Of course, it
  100. is not possible to teach everything to everybody, but we could do a much
  101. better job than we are now.  Some programmers would still be better than
  102. others, but all of them would be better than they are now and the difference
  103. would be smaller.
  104.  
  105. Ralph Johnson -- University of Illinois
  106.  
  107.  
  108.  
  109.  
  110.