The term "software engineeer" has always left a bit of a bitter taste in my mouth, it has always reeked of something came up with to pad their resume to sound like their job was more impressive than it really was. It just sounds like some hoity-toity effite "white collar criminal doubletalk". A bit like Carlin's joke about how wealthy privileged white people have come up with an entire language to hide their sins. When we're sick we don't see a doctor at a hospital, we see a care provider at a wellness center. Toilet paper became bathroom tissue. Diarrhea became occasional irregularity. We don't have old people anymore, we have senior citizens. Instead of poor people living in slums the economically disadvantaged live in urban low income housing areas... and they're BROKE... they don't have a "negative cash flow position", they're f*ing BROKE!
Though much of that could simply be that I'm WAY too blue collar for the pink collar attitude of most of the wussies out there who insist that we should all pat each-other on the back constantly no matter how badly the world burns down around us. Take your "civility" and demands for respect whilst acting like a sleazy dirtbag, shine it up real nice, turn it sideways, and stick is straight up your candied...
BUT, in practice there is, or at least SHOULD be a difference between a programmer and an engineer. I equate this to the difference between the artists under the DELUSION that they are designers, and ACTUAL designers. My background in both programming and mechanical engineering tells me that IF we were to treat "software engineer" as an actual thing these would be the differences.
A programmer knows how to tell a computer to do things.
An engineer would know how to do that whilst following specifications and guidelines.
A programmer is focused on solving the problem in front of them.
An engineer does that whilst planning for scalability, extensibility, and sustainability.
A programmer is focused on results.
An engineer wants those results to offer the best accessibility, usability, and user-experience.
A programmer knows one thing, programming.
An engineer knows MORE than just programming, and how to integrate that knowledge into their code.
If one were to use the term "software engineer" THAT is how I'd draw the line between it and a simple "computer programmer".
Engineers are always the big picture guys.