I'm just voicing my opinion here because I can. Normally, I don't like to romanticize about the old days because I think that today's world is more equal and overall better for most people (yes, we still have work to do, but that's a different story).
However, in the old days, the word "engineer" meant that you had a degree from an accredited college of engineering. It implied you had a certain level of formal education in math and science, and people would expect you to be able to apply logic and the scientific method to real world problems. Traditional engineering takes a lot of rigor and analysis, but in the software world, code is often pushed into production with lots of bugs. Some people point to Amazon and Facebook where the culture is experimental. They want daily releases in production, and they want people to "move fast and break things". I think that just points to the differences between the programming world and the traditional engineering world. You can't rush building a bridge or a rocket.
When I was at Ohio State, in the computer science department in the college of Engineering, people sometimes said we weren't "real" engineers. Yes, computer science is highly technical, but in most cases, the work isn't as critical as building an airplane or an electrical power plant. I actually often feel a little guilty about calling myself an engineer because I did not take Differential Equations.
These days in the tech world, it seems that anyone working in anything remotely technical calls themselves an engineer. The work may be technical in nature - I would be more likely to use the term "analyst". But these job titles all have the word "engineer" and people call themselves "engineers" with no formal engineering education. I think it cheapens the word. Maybe it's the millennial snowflake generation where everyone wants to feel important.
However, in the old days, the word "engineer" meant that you had a degree from an accredited college of engineering. It implied you had a certain level of formal education in math and science, and people would expect you to be able to apply logic and the scientific method to real world problems. Traditional engineering takes a lot of rigor and analysis, but in the software world, code is often pushed into production with lots of bugs. Some people point to Amazon and Facebook where the culture is experimental. They want daily releases in production, and they want people to "move fast and break things". I think that just points to the differences between the programming world and the traditional engineering world. You can't rush building a bridge or a rocket.
When I was at Ohio State, in the computer science department in the college of Engineering, people sometimes said we weren't "real" engineers. Yes, computer science is highly technical, but in most cases, the work isn't as critical as building an airplane or an electrical power plant. I actually often feel a little guilty about calling myself an engineer because I did not take Differential Equations.
These days in the tech world, it seems that anyone working in anything remotely technical calls themselves an engineer. The work may be technical in nature - I would be more likely to use the term "analyst". But these job titles all have the word "engineer" and people call themselves "engineers" with no formal engineering education. I think it cheapens the word. Maybe it's the millennial snowflake generation where everyone wants to feel important.