Since I did not pursue a career in 'computer science' or 'computer engineering', I am uncertain as to what people mean when they say programmer vs. engineer.
To that end, I will say 'programming', but I could mean 'software engineering' depending on what the definitions you apply to these words.
Since I am a scientist, there have been many a discussions with fellow workers about the differences between scientific vs engineering practices, what kind of people choose which, does it affect the way they approach problems, etc. And yes, I do believe there is a difference.
However, when it comes to writing software, designing software, designing systems, etc., I personally have not noticed a difference in approach/style based on one's academic background.
aside... I tend to debug in a fashion that is totally alien to my fellow workers... they think I'm weird. Too bad. I'm good!
When I argue/discuss 'best software practices' with my managers, I often insist that good programmers are artistic, and they typically love what they do. If you try to push the artistic nature into 'one method for everybody' you will lose the effectiveness of some, while possibly increasing the effectiviness of others. I'm curious, am I completely off the mark? Do you see yourselfs as artistic when you code?
I think the way we code is personal, and is indicative of our personality and thought processes, as much as it is the necessity of the job requirements.
To this end, I believe programming is a craft, mixed with an engineering approach (the guy who built my sun-deck had to know how to support it so it wouldn't fall down, as well as make it look nice), possibly a little bit of scientific thought processing.
I also think that the variety of programming styles compliment each other, depending on the nature of the work required. For example, sometimes I need someone to tell me to stop insisting that I must know all that there is to know, and just write the d*** thing!. By the same token, sometimes I get to tell that other person that s/he wouldn't have made that mistake if they understood all that there was to know.
I truly believe that the 'outside' world does not understand programming, or why we get such a kick out of it.
So, if someone wants to call me a craftsman, I'll take it as a compliment, if they call me unskilled, I'm gonna kick them in the shins!
<code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>