They are at best artisans, at worst specialized monkeys.
TL;DR Concerning the engineering profession, do not call yourself a software engineer i...
For further actions, you may consider blocking this person and/or reporting abuse
Hehe, this will infuriate some people out there, and somehow most will not say a thing because they know it's true.
You get to the engineer title once you have had to do some complex algorithms. CRUD's, carousels, animations: That's not it. Start with say, algorithms that line up parallel requests and pump them at a specified speed, or web worker synchronization. Then you'll become worthy of the title.
Sincerely,
A guy that likes to put wood in the fire.
P. S.: I studied chemical engineering.
The problem with this sort of thing is that you don't have a clear line. There's no point where complexity magically jumps from code monkey activities to laying out elaborate meshes of distributed databases. Task complexity is a continuum.
As for infuriating people, in my experience the only ones who tend to get emotional about labels are the ones trying to gate-keep them; the rest of us are just here to build things. You know, as engineers do.
You know I know a lot of Civil Engineers, really good, ones that do not build ANYTHING at all.
Building with cement is more of a blue-collar, artisan work.
And yeah the idea of being spicy its because I want, self-proclaimed, software-engineers to handle the title with RESPONSIBILITY. Otherwise do not call your self an engineer.
Thank you so much for your comments, I love throwing the idea around.
That's very true. The work of software developers has simple things, and has complex things in equal amounts.
Thanks for your comment
I would still argue that all of that does not make you an engineer.
An engineer needs to answer questions like: How many tons of cement does this bridge need? go and do some CALCULATION use math and tell you exactly the amount.
If I ask you? Can you mathematically prove that your code handles all exceptions?...
You are not able to because you did not describe the code as math, so there is no mathematical reasoning, ergo no possibility of CALCULATION.
Engineers calculate, Artisans build. You described the path of a builder, engineers rarely build. Engineers model and calculate.
Go ahead then, explain the process of calculating that. You're an engineer, so you must know how to build a bridge, no?
Can you picture a software engineer working for a nuclear plant saying that? Or someone patching the flight control software of an airplane? How about someone writing firmware for a satellite? Maybe a computer-controlled radiation therapy machine?
Some of these are real examples, of course. And the response to some minor flaws in their programming show just how much accountability is expected of software engineers in fields where mistakes can have considerable consequences.
This entire "code monkeys no need careful" argument falls apart completely when you don't cherry-pick your examples on both sides. It is fundamentally a function of the potential danger, not the degree of "engineeriness" of the person doing the task.
...maybe you're thinking of graph theory there? Are you of the school of thought that something is only math when it has numbers and greek letters in minuscule? Or maybe I misunderstand, and you're thinking of mechanical schematics; although most of those do not only consist of boxes, they certainly conform to the rest of your criteria every bit as well as the diagrams used in software engineering.
Put bluntly: Because incompetent programmers don't usually kill people. Of course we are held accountable within a reasonable scope. But for all your love of math (at least in the abstract), you forget one very important inequality: Is the average cost of failure higher than the cost of carefulness?
Programming a landing page as if lives were in danger would not only be plainly silly for anyone with a bit of common sense, it also, mathematically speaking, contradicts any goal of working effectively, specially in an economic context where software is supposed to generate a maximum amount of value.
Until here, I would have been happy to take this as a conversation about semantics. At the end of the day, whether you're an "engineer" or not, is no more than a word, and at best has implications about the perception of a profession, but not on its actual value.
But you've said the quiet part out loud here. This ins't about words, it's about value. The point of this entire post is to put people down for doing the wrong kind of work; to de-value their skills and expertise with cheap and fallacious appeals to a pop-culture understanding of engineering. "Look at my books, they have numbers in them, that means I'm better".
The understanding of engineering you show in this article is something I expect in a cartoon sitcom, as the punch line to underline a character's stupidity. And maybe it is appropriate in whatever field of engineering you consider yourself a part of, but in software engineering, and the wider programming community, this type behaviour isn't welcome.
If you want to participate in conversations as a grown-up, I suggest you first develop a form of self-worth that doesn't rely on attacking others, and stop assuming there is no complexity in anything you're too uninformed to understand. It makes you look no worse if you really are looking at something trivial, and saves your face when it turns out you really were just over-estimating your own competence.
Thank you so much for this comment. I believe this should be a blog post of its own, we should share these ideas. Thanks for taking the time to comment.
The @estebanmarin makes some good points about software engineering as a profession, but their reasoning has some holes. Software engineering stands out as a field that needs a thorough grasp of computer science, math, and how people interact to create and build complex systems. It might not match up with old-school engineering fields, but it's still an engineering discipline in its own way.
@yogesh_joshi_c022cc46cdd6 thanks for your comment.
Absolutely I agree. This post cannot be an absolute for anything, and for sure it has a lot of holes. I wanted to stirr the community into taking the Engineering title with responsibility
This is stupid. Oxford dictionary define an engineer as “a person who designs, builds, or maintains engines, machines, or structures” so you could argue that software doesn’t fit into any of these categories but this just depends on how you view them. Maths is not what makes an engineer an engineer even if it is a tool that is often used. If you say that maths is what makes an engineer then aren’t other disciplines that use maths also engineers by that logic? You are clearly very bias and slightly angry(?) when it comes to this subject.
I really don’t see any value in this post apart from to put other people down which in my mind is a bit of a monkey move.
@aebonyep Thanks for your comment. You are right in everything you say. I took that definition that suited me and built a flawed syllogism with a spicy title. But are you judging me for how the internet works?
This post was sponsored by Boeing
you see what irresponsible engineers do. #cloudstrike
And don't even discuss the new "Prompt Engineers"—they're not even programmers!
So true!