This content originally appeared on DEV Community and was authored by EstebanMarin
They are at best artisans, at worst specialized monkeys.
TL;DR Concerning the engineering profession, do not call yourself a software engineer if you dislike/disapprove/do not know concepts like lambda calculus, category theory, or abstract algebra. Furthermore, Engineers are, by law, accountable for their work, we should ask so-called "software engineers" the same.
Background
I am a trained Electrical and Electronic Engineer. I came into engineering because I LOVED math, and lucky I got A LOT
of it, most of my study books looked like this.
If you look at a mechanical engineer book it looks like this:
If you look at a Chemical Engineer book, you will see something like this
What do they have in common?... Engineers write Math
Engineers write math because it's THE ONLY TOOL AVAILABLE to understand complexity, fine-tune their intuition of the problem, explore possibilities and use that to stir their solutions. It's also the best communication tool out there and is very precise.
Can anyone picture a Civil engineer saying something?:
Math is overrated! I'll just start working on the bridge and let where it takes me
Even though it is ridiculous, with enough infinite tries and resources he will eventually construct a building see infinite monkey theorem
like if you put a monkey to type random keystrokes infinitely will eventually write any given text (infinite monkey theorem)
And for me, that's exactly how modern software is being built. It takes less than infinite time as the monkeys we use are a little more specialized but equally problematic to work with, especially the 10x.
So what do Software Engineering Books look like and how they should look like?
Engineers do not use all of math, math is too big for them to even need it all, but they use specialization of maths.
Electrical Engineers love imaginary numbers, Laplace/Taylor transformations, and linear algebra.
Chemical Engineers do stochastic processes, differential equations, statistics...
Software engineers, throwing the punch line of the post away here, they use no math. That is why their books mostly show hand-drawn pictures consisting (mostly) of boxes and lines connected with no other criteria than the one given by the author, arbitrarily. If that becomes popular enough, it becomes a sort of law everyone should predicate.
Book of software should be written with math like lambda calculus, abstract algebra, functional programming, or Category theory. However, at this point, most "Engineers" will frown upon it, arguing that Functional programming is an overkill.
Whenever I hear a Software "Engineer" complaining that FP, Monads, or Monoid are just overkill, and that's just fancy words for elitists, and you can do everything with plain JavaScript. It's me hearing that dumb Civil engineer again.
ACOUNTABILITY
Engineers in general are accountable by law for their work. This means that if they sign a blueprint with their calculations of a building, and that building collapses they are accountable for that, even going to jail if the incompetence is too much to bear.
WHY ARE NOT MODERN SOFTWARE ENGINEERS HELD TO THE SAME STANDARD? They are dealing with people's lives, livelihoods, savings, weapons of war, planes, and pretty much everything...
If people want the Software ENGINEER title, they should sign their work and be accountable. Once you own that type of responsibility, you start using the best tools around to do your work, like Math.
Summary
If you dislike functional programming, please do not call yourself and software engineer. You are an artisan at best, a specialized monkey at worst.
This content originally appeared on DEV Community and was authored by EstebanMarin
EstebanMarin | Sciencx (2024-08-21T12:56:03+00:00) Modern Software engineers are not engineers at all.. Retrieved from https://www.scien.cx/2024/08/21/modern-software-engineers-are-not-engineers-at-all/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.