I think there is definately an engineering component to programming. Engineering is essentially applied science. So a software engineer is a programmer who is extremely knowledgable of the science of programming, yet has considerable knowledge of the practical side. Personally Id put a programmer who designs CPU micro-code in the engineering side. As I would probably put many embedded programmers and OS programmers. They may be craftsmen as well, but i suspect that on the whole there are broadly identifiable skills and training that are not generally shared with other types of programmers.

But of course all of these definitions and concepts are misleading. IMO this is one of those situations where Kuhn got it right. Software engineers are those people doing things that software engineers consider to be software engineering. Coputer scientists are thos pople doing things that other computer scientists consider to be computer science. And the rest of us, well we are as the OP says, probably best described as crafts people. Not quite engineers, not quite artisans, not quite scientists, but a happy amalgamation of the whole lot.


    First they ignore you, then they laugh at you, then they fight you, then you win.
    -- Gandhi

In reply to Re: Programming Versus Engineering by demerphq
in thread (OT) Programming as a craft by revdiablo

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":