Programmers aren’t necessarily engineers tho, software engineers are, but not all programmers are software engineers. Even then, lots of people are trained as SEs and then just end up programmers.
"Software engineers aren't real engineers because they don't work on physical engines."
-An absolute dumbass telling me this to my face years ago while literally designing a software solution for (hardware) engineers on a manufacturing line
There is no such this as "reverse engineering". That is the stupidest and most pathetic lie ever.
Please stop being disrespectful & insulting to Engineering. You know nothing about what Engineering entails. Engineering means designing, building and producing real mechanical systems, like turbojets and vehicular engines. It has nothing to do with clowns sitting behind a keyboard and decoding/programming/deciphering etc.
Software dev is easy and for young kids and teens. And it has absolutely nothing to do with a serious and real subject like Engineering (Mechanical Engineering is the ONLY Engineering). Quit making false claims against engineering you. And stop being disrepectful to real engineers (Mechanical Engineering is the ONLY Engineering, PERIOD).
In some professions (not software), you have to take formal training and pass a series of tests to be certified as an “Engineer” for that profession. People who hold those titles are sometimes protective of the word. It’s kind of like “Doctor” to them.
Programming is just one part of the whole process of creating software. There's more than just writing code. There's also planning, design, architecture, testing, deployment, maintenance, etc. All that is engineering. Unsurprisingly, people with software engineering training tend to have a more complete idea as to what goes into it all.
Let’s say I’m a carpenter, and occasionally I open up a cad program and draw up a wrench or lathe chuck and have it cut out of sheet steel. Yes, I did some engineering but I’m not really an engineer.
Likewise let’s say I’m an artist. Maybe I write code now and then to program my automatic paint mixer or whatever.
Engineers have legal liability for the designs they approve. Software developers do not. We can use whatever words we want but most of the people who have decided to apply the word engineer to software dev, don’t even know what the word means.
When a bridge collapses, the PE who signed off on the drawing is going to end up in court. Even the most spectacular software failure will never blow back on the programming staff.
There was actually some movement to try and get this kind of thing setup for software at one point. I think with IEEE, but it fell through. Software can have life or death consequences too, and it’s time we start treating it as such.