💾 Archived View for gnebbia.net › gemlog › articles › on-engineering.gmi captured on 2023-11-04 at 11:35:12. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-01-29)

-=-=-=-=-=-=-

On Engineering

I have always been a huge fan of both the wizard book and the legendary

lectures provided at MIT by Sussman and Abelson.

Each of those lectures were really revealing and brought me to the

understanding of very deep concepts that have profoundly changed me into

a better engineer.

Within one of the first lectures Prof. Sussman shows the main techniques

to control complexity, stating that, engineering is all about designing

while controlling complexity.

Just had my PhD defense in Electrical Engineering and after having

spent both my bachelor and master's degree in a set of courses going under

the label of "engineering" I wanted to share few thoughts on the meaning

of this mystical word, "engineering".

What exactly is "engineering"? What do an electrical a mechanical or

a civil engineer have in common? Is there a set of concepts they share

that is common to all engineering fields? The answer is yes and hides

within the core knowledge that every engineer should own.

In fact, it is common to believe that engineers share a common knowledge

of mathematics, physics and programming. Anyway if we think about it,

although this is true, these subjects do not highlight the real traits

that tell engineers apart from other scientists. In fact, A biologist,

a geologist or a physicist are also sharing that body of common knowledge.

Surely, one of the difference is about the aim, while a scientist has

to explain and describe phenomena, the aim of an engineer is to design.

So to make an example, a physicist may be interested in explaining why a

certain electromagnetic phenomenon happens while an electrical engineer

may be interested in designing signal amplifiers.

But aside from that, what other things do really distinguish an engineer

from a scientist?

Well a key difference is in the approach followed in problem solving,

engineers share a way of solving problems that is different from that

of other scientists.

Well, as already stated, engineering is all about controlling complexity

and this is achieved by three fundamental techniques:

These techniques are common to all of engineering designs.

The mantra of engineering is:

We control complexity by building abstractions that hide details

when appropriate. Think about the operational amplifier (op-amp).

It is common to use op-amp without describing everytime what is

the configuration of the transistors, their region of operation and

other design details, we just use op-amps as black boxes.

We control complexity by establishing conventional interfaces that

enable us to construct systems by combining standard, well-understood

pieces in a mix and match way. Think about plugs and sockets, we

tend not to design appliances which have custom plugs or houses

with different sockets which are only compatible with one or two

domestic appliances. We favor unified interfaces.

We control complexity by establishing new languages for describing

a design, each of which emphasizes particular aspects of the design

and deemphasizes others. Think about UML, circuit diagrams, wiring

diagrams and so on.

That's it!