this post was submitted on 22 Nov 2023
47 points (89.8% liked)

Programming

17446 readers
163 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
47
submitted 1 year ago* (last edited 1 year ago) by fogetaboutit to c/programming
 

In your opinion what's the difference between the two? In my opinion both terms are frequently used interchangeably in the workplace.

But I'd like to consider myself as an engineer, because although I don't consider myself to be good at it, I think I cares about the software that I worked on, its interaction with other services, the big picture, and different kinds of small optimizations.

I mean, what is even engineering?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] -5 points 1 year ago (2 children)

I typically tell people that engineering is applying physics. If you aren't directly interacting with the physical world, you are most likely a developer.

Working on an app, no matter how complex (or unessarily convoluted) generally makes you a developer. If you aren't thinking about impact of clock cycles, actuation/hardware interfaces or sensing, there is a high chance that the work you do has little to no risk or a chance of failure that is governed by the physical world. As said in other comments, engineers design and sign off on things. There is an implication that there is an unknown constraint, unlike a fully observable software environment.

[–] ShrimpsIsBugs 5 points 1 year ago

By that definition almost all people who call themselves software engineers would be wrong. That doesn't automatically mean, you're wrong though.

Personally, I disagree with your definition of software engineers needing to directly interact with hardware stuff in order to be engineers. Wikipedia defines software engineering as

the application of systematic desciplined, quantifiable approach to development, operation and maintenance of software and the study of these approaches; that is, the application of engineering and computer science to software.

So it's all about the systematic approach to complex systems, not about whether or not you directly interact with hardware interfaces.

[–] thesmokingman 3 points 1 year ago (1 children)

I think this is a terribly naive view of the impact the physical world has on software development. Most web development is actively concerned with throughput which is governed by bandwidth limitations and API construction. The user experience concerns that go into, say, the design of medical interfaces is no different from the design considerations of physical switches in a cockpit. Alert fatigue is just as much a consideration for monitoring in software as it is for industrial controls.

I also disagree that engineering is applying physics for user experience concerns I brought up. If your industrial controller makes it impossible to understand what’s going on when shit hits the fan (eg Three Mile Island), I would argue you as an engineer have failed. That’s not applying physics unless we’re stretching “applied physics” to cover the movement of subatomic particles through brains as psychology.

[–] [email protected] -1 points 1 year ago* (last edited 1 year ago) (1 children)

I appreciate your opinion. I know that the qualification I made is a controversial one as everyone wants to be an 'engineer', but I'm still confident it holds. Applying physics is not purely at the atomic level. In web development, one of the physical challenges can be bandwidth, however, while most people claim to concerned about bandwidth, in reality they don't do anything about it. Minifying code is cool, but that's not doing any engineering by itself. Calculating the throughput your datacenter can dish out for your 1million users as you write a function that optimizes load vs lag of streaming video, that's engineering.

Thinking about user interaction and experience is more psychological than it is physical in most cases. Designing the user experience of a medical device or cockpit switch are both not automatically qualified for engineering: unless, you are designing the medical interface to overcome spasms that someone with Parkinson's has, or, the cockpit switch is designed with a plastic mix to survive the temperature, vibration or weight requirement, it's going to be more of an art-than-science. I'm not saying one is worse, but we need to make the distinction between designers, developers, scientists and engineers.

I understand that everyone wants to be an engineer, whether for pride or just to feel more important (hell I want the engineer title too). Unfortunately, the tech industry (with arguably one of the most conflated egos) liberally tossed around software engineering to every role to attract talent and I don't see that changing. It's a profession, so whatever you are being paid to do will determine if you are engineering

[–] thesmokingman 2 points 1 year ago (1 children)

I don’t give a shit about the title. I think it’s a joke. The analysis you’ve given suggests you don’t understand both software and engineering.

  • Bandwidth is much more than what data centers put out. There’s a constant question of request/response size and the factors that go into scaling. If your idea of web development is just code minification, your idea is wrong.
  • Engineers can’t pass the design buck. If you wouldn’t tell a hardware engineer, “the design of the circuit board doesn’t matter; don’t worry about size or crossed circuits,” then you can’t tell an engineer the use of the systems they design is just the realm of the designer. I know a few industrial engineers that would be annoyed by your ignorance of an entire branch of engineering.
  • Why does everyone want to be an engineer? I’m really missing that point.
[–] [email protected] -2 points 1 year ago (1 children)

Sounds like you are a real pleasant person to work with

[–] thesmokingman 1 points 1 year ago

Thanks! My coworkers really like me.