Skip to content
Extraits de code Groupes Projets
Valider 6815f118 rédigé par Lionel Dricot's avatar Lionel Dricot
Parcourir les fichiers

chapter1

parent 564d6052
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
# Exam
# project
Yep. You need to know programming. You need to learn git.
https://forge.uclouvain.be/ldricot/lingi2401
# book
# 1. Why are we here ?
In French:
https://ploum.net/lhistoire-dun-bit/index.html
https://ploum.net/de-limportance-de-comprendre-ce-quest-un-logiciel/index.html
https://ploum.net/lhistoire-du-logiciel-entre-collaboration-et-confiscation-des-libertes/index.html
Computers didn’t exist 80 years ago. 40 years ago, they were kept in only a handful of universities and big companies. They were huge beasts. 30 years ago, they were in the houses of the few passionated or professionals. Only 15 years ago, they started entering our pockets. Now, they are everywhere. In every pocket, every appliance, every watch, every lightbulb, every car.
And the more we have, the more complex they are. Most people don’t have the slightest idea of what a computer is. Of how a computer work. Even amongst engineers and software programmers. We keep learning "tricks" to complete projects in order to gain a diploma then, later a job with a salary but we never question what the trick is really doing.
We blindly copy/paste stuff either from a website, from a book or from our memory. We build our little tiny project over a mountain of stuff we don’t understand. Each line of code we add to the mess is making the world worse.
My objective with this course is not to add yet another little pile of knowledge to your cursus, yet another badge on your diploma. No, I want you to reflect deeply on what computers are, what it means to write code, how you can dig deeper and deeper.
I like to higlight the difference between engineers and theologians. Engineers take the laws of nature, studied by scientists, and try to overturn them to build arbitrary stuff. Like taking 400 tons of steels and making it fly with hundred of people inside. That’s crazy. That’s against all laws of nature. That’s engineering.
Theologians, au contraire, take purely arbitrary stuff written by some mysterious great anciens and try to transform them into some unsurpassable laws of nature. You can’t eat that. You can’t wear that. You must cut that part of the body of small children. You can’t have sex with that person.
But why?
You can’t ask why! That’s why!
So, yeah, engineers and theologians are clearly opposite.
And we are software engineers. Thus enginerers, are we?
When you learn to design a bridge, you have to deal with lot of constraints. There are human arbitrary constraints: how much will it cost? What’s the rule to build a bridge in that landscape? What kind of traffic will go through that bridge?
Those constraints are human and arbitrary. It means that they are there only because someone else decided it was like that. Or people belief it should be like this. This is all about human beliefs. It’s not science.
Yet, there are a lot of scientific constraints: what materials are available at that place? How will it resists gravity? And potential earthquake? How will it vibrate?
Those are physical constraints. You cannot negotiate theme. They are imposed by the laws of nature. That’s why engineers are scientists: they should obey the laws of nature first. The first rule is "the bridge should not collapse". It’s a complex set of equation but with a very precise boolean answer. Either the bridge is safe, either it is not. There’s no negotiation.
Now, what are the physical constraints faced by a computer engineer?
The speed of moving electrons in a circuit is one. There are a few conjectures that could be physical constraints (P=NP, stuff like that).
But, with the exception of a few academics, nobody really care about those in their daily life.
This means that the huge majority of software engineers only deal in their life with arbitrary human constraints. When studying computer science, you are not studying the law of nature. You are not becoming a scientist. You are only learning a bunch of decisions taken by the great anciens.
Do you see where it lead us?
Yes, this is called "theology".
The huge majority of software developpers in the world are currently theologians. They apply rules without asking why. They are angry at anybody asking why because it forces them to face their own blind faith, their own ignorance.
So, let’s try to change that and put back "science" in "computer science" and "engineering" in "software engineering". Let’s become engineers.
Becoming an engineer or a scientist is not about having a specific knowledge or a diploma. Is about asking questions.
The theologian says: "It is like that".
The scientist asks: "Why?"
The engineer asks: "How?"
But a good "How?" implies also a "What?".
So we must always keep in minds those questions:
- What are we trying to achieve?
- Why are we trying to achieve that?
- How will we achieve that?
# What should I trully learn?
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter