|
I've never been comfortable calling myself an engineer, but it's because I view programming as more of an art, a knack.
What I mean is with a system of any significant complexity things get complex rather than complicated in software, and the ability to repeat the project with a different set of developers is effectively nil.
Sure you can fulfill the same functional requirements, but the software will work entirely differently.
The electrical engineers I work with produce highly repeatable designs, for lack of a better way to express what I'm talking about.
And if I put a different team of engineers on the same project replicated twice, the results, while not identical, will be much more consistent between the two teams than they are with software.
That's not how I would define engineering though - like I don't want to commit a no true scotsman fallacy here. Rather, I'm trying to give an example where programming is more ... organic? messy? at the end of the day non-repeatable.
So among other reasons, that's why I'm uncomfortable with the term "software engineer", especially as it applies to me and the way I code.
Check out my IoT graphics library here:
https://honeythecodewitch.com/gfx
And my IoT UI/User Experience library here:
https://honeythecodewitch.com/uix
|
|
|
|
|
My 2¢ worth:
- "Programmer", "software developer" and "software engineer" are often lumped together and mean the same thing: a person who creates and modifies software. I don't have an issue with candidates describing themselves using any of these terms.
- Unlike software engineers, electrical, mechanical, civil, aeronautical and other types of engineers work with extremely well defined specifications. Experienced software engineers will design for extensibility and robustness (for example by building loosely coupled components) but this isn't guaranteed. Consequently, software often evolves in a manner that eventually causes it to become overly complicated and difficult or impossible to maintain, requiring The Great Rewrite.
- We software developers could learn a lot from the folks who engineered the modern day lightbulb. I can use a modern tri-light LED bulb in a 1960s lamp without worrying about compatibility. The tri-light feature may not work if the socket doesn't support it, but the lamp's operation will gracefully degrade to a simpler behavior. Granted, software is more complex, but you've gotta give credit to the designers of the light bulb and the machines that allow light bulbs to be manufactured, for designing for change.
/ravi
|
|
|
|
|
honest assessment. But the point of the post was - tongue in cheek - what is a firewall engineer. The general consensus is a brick layer .
This is the lounge folks, you are failing me.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
charlieg wrote: his is the lounge folks, you are failing me. Apologies!
/ravi
|
|
|
|
|
You make an interesting point about the lightbulb.
Is your point that we need to design new systems so that they comfortably interface with old systems?
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
I was advocating designing software in a way that makes it easier to extend and change, when change is warranted. Some ways of achieving this is by modularity, maintaining separation of concerns, abstraction, loose coupling and encapsulation. While following these principles won't guarantee the software we build will be easy to extend and modify, not doing any of these things will almost certainly ensure that it will be difficult to extend the software.
cf: Bob Martin's story about the Sword C++ debugger.
Clean Code with Uncle Bob Episode 1[^]
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: not doing any of these things will almost certainly ensure that it will be difficult to extend the software.
While doing those things poorly will make it impossible and cost more just to maintain
|
|
|
|
|
jschell wrote: While doing those things poorly will make it impossible and cost more just to maintain Doing anything poorly will make the software difficult and more costly to maintain.
/ravi
|
|
|
|
|
Ravi Bhavnani wrote: Unlike software engineers, electrical, mechanical, civil, aeronautical and other types of engineers work with extremely well defined specifications.
Tell me you never worked for pharmaceutical, food safety, automotive, avionics, naval, trainlines and biomedical without telling it.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
The shortest horror story: On Error Resume Next
|
|
|
|
|
yeah, I missed this comment. I've worked in missile systems (air to air, how to have a bad day) and electronic warfare. I suppose we had specs, but all it took was for the Soviets to get creative and the current specs went out the window.
I need to go fix my high tech washing machine... again....
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
Some of those are hard and not negotiable though, i.e. the warhead has to be primed after a certain clearance from the aircraft. This includes a metric ton of physics, electronics and software to work together - in my opinion every time you have to know multiple disciplines to make a software you are doing engineering.
A simple push-piston eject system on a conveyor brings along a bunch of hard requirements that many "software developers" cannot approach, becasue you have to take into account mechanical delays, non uniform accelerations, blank times, shifting of items on the conveyor, synchronization between software, piston and items on the conveyor... and it's EASY, baceause usual tolerances are well above 10ms.
Managing the blank times of paired mosfets in 20 Mhz modulation center-pulse to avoid 100A short circuits is... different. And it's a tiny part of a FOC algorithm.
GCS/GE d--(d) s-/+ a C+++ U+++ P-- L+@ E-- W+++ N+ o+ K- w+++ O? M-- V? PS+ PE Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
The shortest horror story: On Error Resume Next
|
|
|
|
|
Agreed. For the AIM54C, there was a minimum amount of acceleration before arming the warhead (my guess, I never saw the specs). But if the motor did not fire, then you had a very, very expensive dumb bomb.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
My old man (who was a civil engineer) would be laughing in his grave looking at some of the people who call themselves engineers. He would also smack me silly if I called myself a "software engineer", even from the grave I suspect.
Never underestimate the power of human stupidity -
RAH
I'm old. I know stuff - JSOP
|
|
|
|
|
Maybe they are looking for someone with construction experience or car engineering to help design a true firewall.
Computer networking adopted firewall as a good stand in from other industries that worried about actual fires: in the adjacent apartment or the engine compartment.
|
|
|
|
|
Couldn't agree more - I am not even comfortable with the term "Software Engineer".
"If engineers built like programmers code the first wood pecker that came along would destroy civilization."
I forget who said it, but it's so true. It reminds me of peons giving themselves grander and grander titles to stroke their egos. FYI - I am a programmer, and I take offense at being called a "Software Engineer".
Engineers work for a living, programmers copy paste code from StackOverflow for a living.
|
|
|
|
|
LordWabbit1 wrote: "If engineers built like programmers code the first wood pecker that came along would destroy civilization."
Fallingwater.
Designed by an engineer and built by his firm.
Considered a masterpiece.
Despite the fact that its signature feature was propped up by rigged 2x4s because the original design was flawed.
|
|
|
|
|
Probably a typo, "Senior Firewball Engineer". Think Gandalf.
|
|
|
|
|
I had some thoughts on your post. Obviously Tolkein's work inspired D&D, but I can only remember limited incidents of "magic" and that mostly to the elves.
Charlie Gilley
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
Has never been more appropriate.
|
|
|
|
|
No one seems to know what a Senior Fire<b,w>all Engineer is, so, maybe, they are elves.
|
|
|
|
|
Back in the good old days - you know, the 1600s - "computer" was clearly defined as a person: one who calculates, a reckoner, one whose occupation is to make arithmetical calculations.
It seems these days (ie: 1897 and on) they'll randomly assign that term to any old bucket of bolts that can perform a mathematical or logical operation.
WTF indeed!
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Before I got to be a Computer Programmer, I spent four years as a Mechanical Engineer. I've never understood why "engineer" got thrown into the mix.
I was happy with "programmer". And fine with "Software Developer". But no... "engineer" is a bit of a stretch.
I'm with your dad on this.
modified 8-Jul-24 3:30am.
|
|
|
|
|
I vote for "code monkey".
|
|
|
|
|
In the UK a guy with a mastic gun can be called an engineer. One came to our house a few years ago to fix a leak on the roof of a conservatory his company had recently installed.
|
|
|
|
|
I agree - the term has become very loose - too loose in my opinion. The word is regularly being appropriated - maybe to make someone appear smarter than they are (?) but I don't really know the reasoning. I have sat in meetings where attendees hand out business cards that say "Systems Engineer", and I ask them the standard small-talk questions, like "Where did you go to school?" and "What was your major?". Regarding their major, I've heard everything from "Business" to "Accounting" to "Marketing" to "Management". They often start squirming and come up with some justification saying, "Well, I've been around engineering and engineers for a long time." Yeah, I've been around doctors a long time, but you wouldn't want me doing your vasectomy.
|
|
|
|
|
Related to the humorous aspect of this post, I have a friend who worked in the building industry in the UK mostly as a bricklayer. He told me he had a series of jobs working in crematoriums building the “ovens” with special fireproof bricks. I guess he’d qualify as a firewall engineer!
On a more serious note, I’ve said b4 on this forum, the use of the term “engineer” is highly regulated in most jurisdictions (I’m familiar with Canada, USA & UK). You cannot call yourself an engineer unless u have a recognized engineering degree & you have met the conditions to get a license to practice such as a P.Eng.(Canada), P.E.(US) or C.E.(UK) or similar elsewhere. If you call yourself an engineer without a license & you are reported, the relevant governing body (e.g. Professional Engineers Ontario where I live) will pursue you. It’s usually people like those who call themselves HVAC engineers who fix furnaces & A/C units that get in trouble but I have seen one or two cases where something similar to software engineer got someone in trouble. In most cases, the resolution is a warning to stop using the term engineer but I’ve seen cases where the courts fined those ignoring the warning.
|
|
|
|