There’s no shame in the word programmer and there was no need to culturally appropriate the word engineer from another profession. Bring back the word programmer.
More and more I think the word programmer has come to mean nothing and will continue to lose meaning. More and more people need to program for their work and would not call themselves “programmers” (Scientists, Marketers/DevRel, other Engineering fields, Support, Ops, etc).
BTW, there are people who definitely “Engineer” software they are rare, but they exist, especially at the FAANGs. There are lots of people who have the word “Engineer” in their title that shouldn’t, a fine alternative is “Developer”.
What’s the difference? A developer is implementing a known solution in a specific domain. An engineer is dealing with a significantly unique problem space that has only been addressed by theory, if that. Engineers spend a lot less time programming than Developers do, because their primary occupation is solving tough problems with their colleagues through documentation, RFCs, etc. They often are not the ones who even implement their own ideas. Wait, isn’t that a Software Architect? No. Software Architects plan and documents in known solution space, they aren’t solving unknown problems.
Most people that I’ve worked with in Software have never worked with a Software Engineer before.
"Engineers spend a lot less time programming than Developers do, because their primary occupation is solving tough problems with their colleagues through documentation, RFCs, etc."
Sorry but 100 times no. Engineering is about understanding and using the laws of nature in scientific terms (mathematics). Strength of materials, thermodynamics, hydraulics, that's the stuff engineers study and do.
Yeah, sorry I omitted what you just said, but computer science is a theory driven branch (of mathematics?) that can be incredibly difficult to implement as much as other engineering fields struggle to implement new theory breakthroughs in other branches of science.
I am doing exactly what you describe as a "Software Engineer", but I would still call myself a Software Developer. Why? Because I don't think your definition is widely accepted like that. I especially think that because the law in my country disagrees.
For me to call myself an engineer legaly I have to have an Engineering degree. I don't have one, so I will not call myself that.
I am a Software Developer. I do the exact same things as the Software Engineer sitting in front of me. We work on the same type of problems in the same Avionic Project. The difference is that he has a PhD and I dont.
>An engineer is dealing with a significantly unique problem space that has only been addressed by theory, if that.
This is a very high standard for defining engineer and I'd guess most practicing engineers don't meet it. Sure, there's people bridging the gap between theory and practice, but most engineering effort goes into applying the same well-understood theory and practice to slightly different situations. I'd posit that your definition of software engineer is closer to what most people would call a research scientist.
To laypeople (like management), 'programmer' means 'a technical person who (for a living) tells computers what to do'. Terms like 'developer' or 'software engineer' are unfamiliar.