Mike Charlton email@example.com said it better than I could have:
I also agree with the trade description for programming. I firmly
believe that apprenticeship is the best way to teach programmers.
In fact, I believe that University is a *bad* way to teach programmers.
What little pure theory a programmer needs can be taught on
the job IMHO.
But research in programming is very much required. And there is
a huge amount of theory that is required to advance the state of
the art (which we've touched on). If it were *actually* studied,
I suppose I wouldn't begrudge an engineering title. But as
it stands, I also highly disapprove of the engineering moniker.
I believe that Universities should exist, not to train future employees --
that's what a community college is for, but to train future researchers.
And current curricula do a piss poor job of that. As a poigniant
example of this, we get a semi-recurring plea for help from an
Indian PhD student on the ottawa-agile mailing list (must be
spamming *all* the agile lists, poor guy). He wants to do research
in the area, but lacks even the basics for which to do so. I want
to reply, but I can't think of a helpful response (other than,
"Get a new supervisor"). Unfotunately, having talked to several
other researchers in the field, his problem isn't unique.
So in the end we get badly trained programmers from Universities
and likewise badly trained researchers who don't even know the
first thing about what's important in the field. Finally, in the past
we have also gotten completely untrained "engineers" who figure
they can do programming because they are "smart". Sigh...
And as Don says, nobody is able to do the job of a Professional
Engineer in programming (ensuring that nobody comes to harm
do to mistakes made) because our field is simply not mature
But what can you do ;-)