In my country (France), being an engineer (ingénieur, in French) is regulated but tied to a particular degree (which must be approved by the Commission des titres d'ingénieur), and as such I am legally a software engineer.
Same here in Poland. I believe the equivalent term in English is "Bachelor of Engineering". Four years instead of the regular three to obtain a typical bachelor's degree.
I studied at a technical university at its faculty of electrical engineering, but those who study at a "normal" university indeed go through the usual three years and are not engineers.
I guess the main difference is that I learned about analog circuits, semiconductors and all that, while those other guys didn't.
I don't have any special professional certificates, though I could optionally enroll on a course allowing me to work with voltages up to 1000V.
Ok, then there is regulated engineering and unregulated engineering. If you are doing engineering and it's not regulated (for many different reasons) it does not make it any less engineering. Animals do engineering, insects go engineering, it is based on science (empirical), whether they know it or not.
It many countries it actually is, if you call yourself an engineer professionally without a license you can be heavily fined. Canada, Germany, France..
Fine, but then what am I? I'm certainly not a scientist. And calling me a "programmer" is like calling an accountant a "calculator".
I design solutions to computational problems. I also happen to implement them a lot of the time, because code was trivial to implement even before LLMs. What does that make me if not an engineer? I'm open to suggestions.
Except for when it is, the constraints of software engineers has always been bound to the constraints of Classic Computing, but over the years we've abstracted that away to the point of where many in the field may not even realize it.
Thankfully; else we'd have big heavy things with real claws and kinetic force grabbing at us endlessly, snatching our wallets with too much precision. We'd need Arnold not AdBlock, just to leave the house.
I'd say software engineering better fits economics these days. Maybe with a Psych major to maximize the dark patterns.
Dave Farley has done some writing on what makes "Software Engineering" "Engineering"
e.g. his 2021 book " Modern Software Engineering"
> Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.
>An engineer's model must be tightly bound to the laws of physics and chemistry.
Anything that exists in reality and is observable by definition is tightly bound by the laws of physics and chemistry. Software is too.
>Software is a lot like math,
Probably referring to computer science. Computer science is neither about computers nor is it a science. It is a math. Software is like math but applied.
>The only limitation is the imagination of the creator of the virtual world (and perhaps the pesky limitations of computer resources)
computer resources: AKA physical laws. And these "laws" highly limit us in what we can do. We are definetely not operating in some kind of playground where we can be virtual gods, not even close, that's why entire swe teams are involved and paid a lot in software.
Honestly the main difference between "Software Engineering" and "Engineering" is that software is more an "art". We make up a bunch of technical nomenclature for it (like design patterns which sounds technical but is mostly made up and more artsy then say statistical mechanics) but it's mostly similar to sculpture or some artistic creation as we sort of piece everything together by instinct.
The difference between this and engineering is usually engineering involves mathematical modeling and testing heavily in development, while software engineering (usually) does not involve mathematical modeling and software testing is more of a catch-all to find bugs.
Type checking is mathematical modeling, but I wouldn't call it the core of software engineering. I guess this is where the categories get blurry.
> software engineering does not involve mathematical modeling
it absolutely can, approximately nobody was doing that because it was insanely expensive. if we narrow down the definitions, modern static typing (where modern means universally accepted nowadays) is a form of mathematical modeling and proof construction that software does what it says it does.
the economic calculation is changing extremely rapidly now with LLMs though. some of my software is now proved to be correct at some levels, e.g. I heavily (that is, LLMs I pilot) use TLA+ for tricky but nowhere near foundational distributed systems work (as in, I don't work on core S3, but do distributed transaction stuff).
> Anything that exists in reality and is observable by definition is tightly bound by the laws of physics and chemistry. Software is too.
Agreed. If I have to guess, the relevant fields in physics for software engineering would be quantum mechanics and thermodynamics. Of course, we don't see any direct relation as of now but it feel it should be important to determine the physical basis of software. The basis of software cannot be just math. It has to be physics.
Why don’t we just call ourselves programmers and save this semi-regular debate!
Crypto is not the OG cryptography! GenAI is not the OG AI!
Language is for us, not the other way around. It's common usage changes.
Engineering is a regulated term, afaik that’s what underlies the debate, it’s not about whether English has changed.
In my country (France), being an engineer (ingénieur, in French) is regulated but tied to a particular degree (which must be approved by the Commission des titres d'ingénieur), and as such I am legally a software engineer.
Same here in Poland. I believe the equivalent term in English is "Bachelor of Engineering". Four years instead of the regular three to obtain a typical bachelor's degree.
I studied at a technical university at its faculty of electrical engineering, but those who study at a "normal" university indeed go through the usual three years and are not engineers.
I guess the main difference is that I learned about analog circuits, semiconductors and all that, while those other guys didn't.
I don't have any special professional certificates, though I could optionally enroll on a course allowing me to work with voltages up to 1000V.
Same in Poland and I imagine all of other countries in Europe which follow Bologna Process.
Same in Greece, my degree is an engineering degree and I was enrolled to the engineers' guild when I graduated.
Ok, then there is regulated engineering and unregulated engineering. If you are doing engineering and it's not regulated (for many different reasons) it does not make it any less engineering. Animals do engineering, insects go engineering, it is based on science (empirical), whether they know it or not.
We need to stop redefining terms.
Engineering is not a regulated term everywhere.
It many countries it actually is, if you call yourself an engineer professionally without a license you can be heavily fined. Canada, Germany, France..
I don't think you can be fined in France for that. Though I think you'll be fired without compensation or unemployment benefits.
Fine, but then what am I? I'm certainly not a scientist. And calling me a "programmer" is like calling an accountant a "calculator".
I design solutions to computational problems. I also happen to implement them a lot of the time, because code was trivial to implement even before LLMs. What does that make me if not an engineer? I'm open to suggestions.
Except for when it is, the constraints of software engineers has always been bound to the constraints of Classic Computing, but over the years we've abstracted that away to the point of where many in the field may not even realize it.
If only there were "real" engineers who could answer this question... https://www.hillelwayne.com/tags/crossover-project/
Thankfully; else we'd have big heavy things with real claws and kinetic force grabbing at us endlessly, snatching our wallets with too much precision. We'd need Arnold not AdBlock, just to leave the house.
I'd say software engineering better fits economics these days. Maybe with a Psych major to maximize the dark patterns.
Dave Farley has done some writing on what makes "Software Engineering" "Engineering"
e.g. his 2021 book " Modern Software Engineering"
> Software engineering is the application of an empirical, scientific approach to finding efficient, economic solutions to practical problems in software.
https://www.davefarley.net/?p=352
https://www.goodreads.com/en/book/show/57345270-modern-softw...
https://productdeveloper.net/modern-software-engineering/
>An engineer's model must be tightly bound to the laws of physics and chemistry.
Anything that exists in reality and is observable by definition is tightly bound by the laws of physics and chemistry. Software is too.
>Software is a lot like math,
Probably referring to computer science. Computer science is neither about computers nor is it a science. It is a math. Software is like math but applied.
>The only limitation is the imagination of the creator of the virtual world (and perhaps the pesky limitations of computer resources)
computer resources: AKA physical laws. And these "laws" highly limit us in what we can do. We are definetely not operating in some kind of playground where we can be virtual gods, not even close, that's why entire swe teams are involved and paid a lot in software.
Honestly the main difference between "Software Engineering" and "Engineering" is that software is more an "art". We make up a bunch of technical nomenclature for it (like design patterns which sounds technical but is mostly made up and more artsy then say statistical mechanics) but it's mostly similar to sculpture or some artistic creation as we sort of piece everything together by instinct.
The difference between this and engineering is usually engineering involves mathematical modeling and testing heavily in development, while software engineering (usually) does not involve mathematical modeling and software testing is more of a catch-all to find bugs.
Type checking is mathematical modeling, but I wouldn't call it the core of software engineering. I guess this is where the categories get blurry.
> software engineering does not involve mathematical modeling
it absolutely can, approximately nobody was doing that because it was insanely expensive. if we narrow down the definitions, modern static typing (where modern means universally accepted nowadays) is a form of mathematical modeling and proof construction that software does what it says it does.
the economic calculation is changing extremely rapidly now with LLMs though. some of my software is now proved to be correct at some levels, e.g. I heavily (that is, LLMs I pilot) use TLA+ for tricky but nowhere near foundational distributed systems work (as in, I don't work on core S3, but do distributed transaction stuff).
> Anything that exists in reality and is observable by definition is tightly bound by the laws of physics and chemistry. Software is too.
Agreed. If I have to guess, the relevant fields in physics for software engineering would be quantum mechanics and thermodynamics. Of course, we don't see any direct relation as of now but it feel it should be important to determine the physical basis of software. The basis of software cannot be just math. It has to be physics.
> Computer science is neither about computers nor is it a science.
https://youtu.be/-J_xL4IGhJA
Also person month is a very solid limitation.
> 429 Too Many Requests
This is definably not engineering.
The link is from Internet Archive. The original post was on geocities which has long been dead.