home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #20 / NN_1992_20.iso / spool / comp / edu / 1625 < prev    next >
Encoding:
Internet Message Format  |  1992-09-11  |  3.4 KB

  1. Path: sparky!uunet!gatech!concert!duke!psu
  2. From: psu@cs.duke.edu (Peter Su)
  3. Newsgroups: comp.edu
  4. Subject: Re: Programmers
  5. Message-ID: <PSU.92Sep11102557@ptero.cs.duke.edu>
  6. Date: 11 Sep 92 14:25:57 GMT
  7. References: <BuBBoJ.un@rice.edu> <1992Sep10.043815.4175@linus.mitre.org>
  8.     <1992Sep10.142205.16217@merlin.dev.cdx.mot.com>
  9.     <BuDHvA.226@mentor.cc.purdue.edu>
  10. Sender: news@duke.cs.duke.edu
  11. Organization: Duke University CS Dept., Durham, NC
  12. Lines: 63
  13. Nntp-Posting-Host: ptero.cs.duke.edu
  14. In-reply-to: asd@sage.cc.purdue.edu's message of 10 Sep 92 17:28:21 GMT
  15.  
  16.  
  17.    Indeed!  I have found that the biggest problem, here at college, is
  18.    that Computer Programmer is NOT a major.  It's not even a minor!
  19.    Instead, I get to be a Computer Scientist!  I don't want to be a
  20.    Scientist!  I want to be a Computer Programmer, or a Software
  21.    Engineer.  Leave all that numerical computational math theory bullshit
  22.    to the academics.  I could really care less.  But I want to be able to
  23.    work!  I want to know how to write a server, custom engineer a system
  24.    for a client, or write super fast code for a device driver.
  25.  
  26. As a budding academic (heh heh) I, of course, must come to the defense
  27. of those people who work in 'math theory bullshit.'
  28.  
  29. This alleged 'bullshit' forms the basis for much of what is available
  30. on a modern computer system.  Let's look at UNIX:
  31.  
  32. - The libraries have a routine called qsort, thought up by a math
  33. theory bullshit guy named Hoare, and proved to be very fast by another
  34. math theory bullshit guy named Sedgewick.  For the most part, it's
  35. fast enough, but if you really want to know how it works to speed it
  36. up, you can go to a math theory bullshit book written by Knuth and get
  37. all the details.
  38.  
  39. - There is a program called Lex that parses regular expressions, which
  40. were made up by a math theory bullshit guy named Kleene.  Most of the
  41. larger tools in the UNIX system (like compilers) use regular
  42. expressions to do all sorts of magical things.
  43.  
  44. - There is another tool called yacc, which generates parsers using
  45. more math theory bullshit created by various people.
  46.  
  47. - TeX uses shortest path algorithms to break lines.  Does a pretty
  48. good job too.  Lots of books are typeset with TeX.  More bullshit?
  49.  
  50. - The whole IDEA of a kernel bases system uses old old ideas about
  51. abstraction, information hiding, etc that come from both OS and
  52. programming languages research.
  53.  
  54. What's my point?  My point is this: Any programmer worth his salt must
  55. have at least some idea why quicksort is good, how lex works and how
  56. yacc works in order to make himself or herself better at what he/she
  57. does. It is inexcusable to say 'I want to be a good programmer' and
  58. NOT pay attention to the more important parts of the large body of
  59. 'math theory bullshit.'
  60.  
  61. This is not to say that everything the theory people do it great.
  62. There are phenomenal examples of botches.  But there are a lot of cool
  63. ideas that are extremely useful.
  64.  
  65. If, after taking algorithms classes, OS classes, programming
  66. lanaguages, compilers, etc, you *can't* figure out how a UNIX server
  67. works on your own, or at least in Perl, then either YOU are clueless,
  68. or those who taught you are clueless.  This doesn't mean that the
  69. material is irrelevant to what you are interested in.
  70.  
  71. Go back and read Programming Pearls and More Programming
  72. Pearls...twice.
  73.  
  74. Pete
  75. --
  76. Department of Computer Science, Duke University, Durham, NC 27706
  77. Internet:    psu@cs.duke.edu
  78. UUCP:        mcnc!duke!psu
  79.