From: prener@watson.ibm.com (Dan Prener)
Subject: Re: Programmers
Date: Sun, 13 Sep 1992 08:16:40 GMT
Disclaimer: This posting represents the poster's views, not necessarily those of IBM
	<1992Sep10.142205.16217@merlin.dev.cdx.mot.com>
	<BuDHvA.226@mentor.cc.purdue.edu>
Organization: IBM T.J. Watson Research Center, Hawthorne, New York

In article <BuDHvA.226@mentor.cc.purdue.edu> asd@sage.cc.purdue.edu (Doug McClure) writes:

   [ ... citation deleted ... ]

>Indeed!  I have found that the biggest problem, here at college, is
>that Computer Programmer is NOT a major.  It's not even a minor!
>Instead, I get to be a Computer Scientist!  I don't want to be a
>Scientist!  I want to be a Computer Programmer, or a Software
>Engineer.  Leave all that numerical computational math theory bullshit
>to the academics.  I could really care less.  But I want to be able to
>work!  I want to know how to write a server, custom engineer a system
>for a client, or write super fast code for a device driver.

>Alas it is not to be.  I know, now after my five years hear at Undue
>Perversity, that there ARE schools out there that teach you how to
>program, who teach you how to be a software engineer.  Schools that
>give you skills so that you could graduate and be ready to work from
>day one.  I'll be able to, to some degree, mainly because I've spent
>many hours of my own time teaching myself what I needed to know.  And
>ya know what, not one minute of that time was spent on numerical
>analysis.

>Schools need to offer a complete and seperate Computing divison
>school.  Under that they should offer degrees of Computer
>Technology/Programer, Software Engineer, Computer Engineer, and
>finally Computer Scientist.  And if you want to be a CompSci, then you
>can be.  But if you want to instead be taught computers from the
>perspective that you are going to be an worker some day and need good
>solid programming, software engineering concepts, then you should be
>able to get them, instead of having to pick it all up on your own.

>Sorry bout the verbosity.  This is a subject that really pisses me
>off.  I picked a college that was supposedly a great place for folks
>who wanted to get computer degrees, and found that they didn't want to
>give me knowledge about how to work, but wanted to turn me into a
>scientist, possible grad student.

I think you are correct in your analysis of the problem, but I do not
agree with your proposed solution.  Colleges and universities have been
asked to bear the burden of vocational training in the last few decades.
However this is a task that is different from their traditional role
and one for which they have never been particularly well suited.  A
college major is neither the best nor the most economically efficient
way to train programmers.  (For the purposes of this discussion, and
most other discussions, I do not distinguish between programmers and
software engineers.)

For centuries, many societies used apprenticeships as the primary
device for training skilled tradesmen.  They have been abandoned
not because they were found to be ineffective, but because of a
kind of academic "inflation" that says that most trades require a
college degree.  I believe that apprenticeships are the best way
to train programmers.

A complete solution would probably include some college education
to provide a general background in the usual areas, e.g., humanities,
social sciences, and hard sciences, that could provide the student
with the usual benefits attributed to a liberal arts education.  This
would be accompanied by a programming apprenticeship which could occur
in any or all temporal relationships with the liberal arts portion, i.e.,
before, during, and after.  The reason for the liberal arts portion,
rather than just the apprenticeship alone, is that a programmer must
be capable of understanding the languages of other areas, since
programming tasks may be posed to him in those languages.  I suggest
a broad education, rather than specialized training, for this since,
in a long career, a programmer will probably end up performing tasks
of types that did not exist when he was first being trained.

However, for programming skills, an apprenticeship would be the best
learning environment.

--
                                   Dan Prener (prener@watson.ibm.com)