La Programmation expliquée à ma grand-mère
Bruno Bord
18 octobre 2008 - Basque Camp II
La programmation expliquée à ma grand-mère
Petite triche sur le titre
La programmation expliquée à ma grand-mère
Petite triche sur le titre
La programmation expliquée à ma grand-mère
Expliquer l'indicible
les programmeurs sont des schizophrènes,
les artistes sont des névrosés.
-- Max
Pourquoi expliquer l'indicible ?
- Parce que j'adore batailler
- Parce que c'est un métier méconnu ("informaticien")
- Parce qu'il faut toujours que ma mère veuille tout savoir - coucou maman.
Pourquoi programme-t-on ?
Pourquoi programme-t-on ?
- Parce qu'on adore les problèmes ?
- Parce que le client nous le demande ?
- Parce qu'on est tous d'indécrottables geeks ?
Pourquoi programme-t-on ?
- Parce qu'on adore résoudre les problèmes.
- Parce que le client nous le demande ?
- Parce qu'on est tous d'indécrottables geeks ?
Pourquoi programme-t-on ?
- Parce qu'on adore résoudre les problèmes.
- Parce que le client
le demandenous paie pour le faire. - Parce qu'on est tous d'indécrottables geeks ?
Pourquoi programme-t-on ?
- Parce qu'on adore résoudre les problèmes.
- Parce que le client
le demandenous paie pour le faire. - Parce qu'on est tous d'indécrottables geeks !
Pourquoi programmer ?
- grande quantité d'information (banques, armée...)
- grande fréquence d'ajouts d'information
Pourquoi programmer ?...
La vérité : c'est de la feignantise...
Métaphore : la cuisine
La cuisine ?
Je suis un expert
Métaphores
Métaphore plus adaptée à ma mère
Confiture
Fruits
Confiture
Ingrédients
Confiture
Ce qu'on en fait
Confiture
La recette
Confiture
La recette
- indique la quantité d'ingrédients
- dans quel ordre les ajouter
- que faire
- quand s'arrêter de le faire
- bref... tout...
Confiture
Que faire du résultat ?
Programmation
- Les ingrédients == les données
- La recette == le programme
- Le pot de confiture == La base de données
On reprend...
Objectif: programme
Programmation
Données brutes
Programmation
Données "cueillies"
Programmation
Procédés, scénario, marche à suivre
Programmation
Spécifications
Programmation
Specs et cahier des charges
- indique les données à manipuler
- comment les trifouiller
- pour en faire quoi
- étudier les cas possibles
- bref... tout...
Programmation
Stockage: base de données
Le logiciel libre est-il cuisinable ?
C'est quoi un Logiciel ?
C'est quoi un Logiciel ?
Ça fait quoi un programmeur ?
Ça écrit du code
C'est quoi du code ?
- C'est écrit par des êtres humains (si... si...)
- Ça donne des ordres à l'ordinateur
- Ça trifouille les données dans un sens...
- ... et ça renvoie un résultat
On en fait quoi du code ?
Du binaire
Confiture ?
Le code
Confiture ?
Le binaire
Quand ma mère a une recette de confiture
Deux modes de distribution
Madame Michu veut des confitures ?
- Les pots pleins
- Les pots pleins et la recette
Mais ce n'est pas tout
Que peut faire Mme Michu avec ça ?
- Manger la confiture en tartines
- Refaire la recette à l'identique
- Refaire la recette adaptée / modifiée
- Re-donner...
Que redistribue Mme Michu ?
La même chose !
- Les pots pleins
- Les pots pleins et la recette
À l'infini...
Retour sur les droits de Madame Michu
- Manger la confiture en tartines
- Refaire la recette à l'identique
- Refaire la recette adaptée / modifiée
- Re-donner...
Retour sur les droits de Madame Michu
- Exécuter un programme
- Refaire la recette à l'identique
- Refaire la recette adaptée / modifiée
- Re-donner...
Retour sur les droits de Madame Michu
- Exécuter un programme
- Accéder au code source (s'instruire)
- Refaire la recette adaptée / modifiée
- Re-donner...
Retour sur les droits de Madame Michu
- Exécuter un programme
- Accéder au code source (s'instruire)
- Modifier le programme, l'adapter
- Re-donner...
Retour sur les droits de Madame Michu
- Exécuter un programme
- Accéder au code source (s'instruire)
- Modifier le programme, l'adapter
- Redistribuer des copies du programme, à l'identique ou modifié
Retour sur les droits de Madame Michu
- Exécuter un programme
- Accéder au code source (s'instruire)
- Modifier le programme, l'adapter
- Redistribuer des copies du programme, à l'identique ou modifié
... Ce sont les 4 libertés des Logiciels Libres !
C'est tout !
Mais c'est pas mal, déjà, non ?
Les autres thèmes inabordés
- Pourquoi autant de langages de programmation ?
- Quels langages pour apprendre à programmer ?
- La programmation n'est pas de la magie
- Ecrire des spécifications bilingues (informatique / client)
- Gestion de projet
Mais aussi...
- Le développement dirigé par les tests
- La gestion de code source (révisions)
- Les outils à faire des outils
Colophon
- Cliparts: de la collection Creative Commons, Domaine Public,
- Cooking 02, par Eric Schmuttenmaer, sous contrat CC-BY-SA
- Bonne Maman, par Marc Mateus, sous contrat CC-BY-NC-SA
- jam session: the first batch, par "audinou", sous contrat CC-BY
- Les mûres pour la confiture, par "wisemandarine", sous contrat CC-BY-SA
- Love Love, par Prakhar Amba, sous contrat CC-BY-NC
Retrouver cette présentation
Sur Je Hais Le Printemps
http://jehaisleprintemps.net/presentations/programmation/