From: magus@drktowr.chi.il.us (Louis Giliberto)
Newsgroups: comp.org.eff.talk
Subject: Re: Licencing of computer professionals
Date: 23 Dec 92 11:44:44 GMT
Organization: DarkTower Software
X-Newsreader: TIN [version 1.1 PL6]

Bruce Hayden (bhayden@teal.csn.org) wrote:
: It may be true that almost all classes require some hands on. However,
: that does not mean that you actually get any experience. I recently 
: worked with a woman who got a 4.0 on her MS/CS degree. It became 
: readily apparent that though she was very bright, she had _no_
: experience with writing a program over 50 lines long. What had
: happened?? We hypothesize that she levereged her looks and southern
: charm into having her male partners do most of the work throughout
: school. This is the downside of the almost universal practice,
: espeically in upper division or graduate courses of working in teams.

Or it could be she went to a crappy school.

At any rate, this breaks down into one basic argument:

Are "computer professionals" more like engineers or mathematicians?

Some schools put them in with EE, some with math.  What exactly is it?
Mathematicians (except for actuaries) aren't licensed.  Engineers are.
What's the difference?  

Engineers
---------
Finished product usually physical, applied form.
Finished product usually sold for commercial purposes.
Theory taught to end in application.

Math dudes
----------
Finished product usually theoretical, applied in other apps.
Finished product usually not sold.
Theory taught to end in development of more theory.

Ok, it's not comprehensive, but it's a good start.

In general, I think it would be fair to state this;
Mathematicians develop tools, engineers develop products.

Computer scientists develop both.  They must abstract data into new
structures, formulate algorithms, and figure out how the hell to
code the thing in Lisp (inside joke).  However, nowadays even engineers
and mathematicians must be able to code a little bit.  So CS seems to
be caught in the middle.

Not a bad place to be, really.  If you want to see CS fall apart fast,
then start licensing.  What do you license on, the applied, the theoretical,
what?  I took the advanced GRE (subject) in CS about 2 weeks ago.  The
entire exam was theoretical CS.  Does a guy who works for a word processor
software house need to know Turing theory or routing theory?  And how could
you test applied CS?  A true CS program would be over 500 lines probably,
and can't be written inside a few hours on paper with no testing.  A lot
of CS is just winging it, so more important than getting it right the
first time is being able to *debug* it, which is an art in itself.

If you test the theoretical, what good is that to a software house?
There are probably more mathematicians who understand queing theory
than programmers, but couldn't code it for all the tea in china.  What
good does theory do a company that turns out a product when you can't
code for squat?

When Microsoft interviews people, they ask questions like: Why are
manhole covers round?  How many gas stations are there in the world?
(This was in a magazine article).  Why?  The most important asset of
a programmer is being able to think on your feet: you must be a true
hacker -- you must be able to get around obstacles in new and swift ways
in order to complete the project.  You can't test for this.  Only time
will tell.

Any attempt to test and/or license programmers will result in a bunch
of dweebs who can regurgitate theory or can code but don't even know
what a finite-state machine is.  And most importantly, you won't even
know if they can think.


: Well, as mentioned above, a degree (even a MS degree) doesn't ensure
: anything of the sort.

Just to interject:  why?  An MS in computer science teaches you theory,
not applied.  To examine theory you don't need to write programs over
50 lines long.  Half the time you don't even see code, just pseudo code.
The applied CS ends with the BS degree.  The only graduate courses that
allow you to write a program over 50 lines long are: software engineering
or programming project/independent study.  Once in a while something pops
up (like I took compiler theory this semester in which we had to write
a compiler), but in general you have courses like: Parallel Architecture
and Processing Theory, Theory of Programming Languages, Network Theory,
Algorithms, Automata and Turing Machines, etc.  After a BS degree, you
spend little time behind the console.  You are supposed to know how to
code, now it's time to learn how to think.  If you look at Denning's book
on operating systems, there is like 0 code in there.  It's all performance
considerations.  

So, it's not that woman's fault that she can't code over 50 lines.  The
problem is that the school's idea of what makes a MS degree and corporations'
ideas are different.

But, for you CS majors out there getting your BS or MS, as I complete mine
I make one recommendation: write programs until your fingers fall off.
When you look at the theory and understand it, it's great.  But you
don't understand it until you code it.  You can learn music theory,
and analyze Bouree in E minor, but until you pick up that Lute, it
doesn't mean squat.

-Louis
--
---------------------------------------------------------
 Louis J. Giliberto, Jr.   ! magus@drktowr.chi.il.us
   -sysadmin drktowr       ! lgilibe@orion.it.luc.edu
  Chicago, IL  USA         ! 
---------------------------------------------------------
Xref: sparky comp.org.eff.talk:8057 comp.org.usenix:1148 comp.org.sug:572 alt.suit.att-bsdi:719