15
juil.
'14

Du code à l'école ?

Publié le 15 juillet 2014

Hier, on a beaucoup parlé de la nouveauté de la rentrée 2014: l'enseignement du "code informatique" au primaire. Une nouvelle qui peut réjouir les technophiles, hackers et geeks tels que moi, mais à bien y réfléchir ce n'est peut-être pas si bien. Je profite de ce billet pour tenter de mettre à plat mes idées, au regard de ma situation actuelle: geek, hacker, et père de deux enfants (ce qui n'est pas une mince affaire).

Du "code informatique" pour nos chères têtes blondes

Cela fait plusieurs années que je milite pour l'introduction de notions informatiques dans l'enseignement, et ce dès que possible. Enfin, le terme "militer" est un peu fort, disons que dans mon for intérieur cela m'apparaît désormais comme essentiel, vu l'importance qu'ont pris les systèmes informatisés dans nos vies. A l'heure actuelle, je n'envisage pas d'élever mes deux enfants sans leur donner les bases des rouages d'un ordinateur, et tenter de développer leur esprit critique vis à vis d'Internet. Et pourquoi pas leur enseigner le "coding", s'ils sont intéressés.

A écouter le ministre M. Hamon, il faut enseigner "le code informatique". Quel code ? Notez bien que l'on ne parle ni de langage, ni de ce qui se trouve en amont (comme l'algorithmique). Cet aspect "code" est d'autant plus mis en avant par les médias: oui, vos enfants vont enfin comprendre le code HTML qui constitue des millions de milliards de pages web ! Ils deviendront ces petits génies français qui feront trembler la Silicon Valley ! Le sentiment que j'en ai, de cette nouveauté, c'est qu'elle a été choisie et mise en oeuvre (sans compter l'effet d'annonce) par des personnes qui, encore une fois, ne savent franchement pas de quoi elles parlent. Du code informatique, cela peut-être tout et n'importe quoi. Du code machine édité en hexadécimal, du JavaScript, du C, voire même du COBOL, sans oublier le code HTML bien sûr.

Cette décision a été prise dans l'espoir que nos petites têtes blondes ne restent pas passives vis-à-vis de la technologie, qu'elles soient en mesure d'appréhender la complexité des systèmes informatiques et de les modifier. Et pour cela, on va leur enseigner le "code informatique", avec l'inertie et l'innovation du système scolaire qu'on lui connait. Envie d'apprendre le BASIC sur un Windows 95, avec un intervenant qui ne maîtrise pas son sujet (bon ok, j'exagère un brin) ? Pourquoi ne pas commencer par le commencement ?

Déclic et des claques

Tout développeur est un amateur de problèmes. Et un fainéant. Amateur de problèmes, car ce qui l'intéresse, ce n'est pas de créer du code mais bel et bien de créer une solution à un problème. Cet aspect est universel, et on peut l'apparenter à celui de créer une invention: on crée quelque chose qui résout un problème, qui rend facile ce qui avant était difficile. On crée. Fainéant, parce qu'il ne souhaite pas avoir à trouver à nouveau la solution à ce problème à chaque fois que celui-ci se présente. Pour s'éviter cette peine, il se crée ses outils: des programmes qui mettent en oeuvre la solution qu'il a élaboré. Ceci illustre aussi l'importance de savoir développer (et cette fois-ci, je parle bel et bien de la création de code, et de programmes par essence): on dispose d'un outil permettant de créer des outils.

Alors, enseigner le "code informatique" ressemble fortement à mettre la charrue avant les bœufs. Leur apprendre à comprendre du code et à en pondre n'arrangera rien: ce sera une matière comme une autre, sans aucune étincelle dans leurs yeux d'écoliers technophiles et consommateurs de technologie. Il n'y aura aucun déclic, aucune envie de résoudre des problèmes, aucune envie de créer. Une fois de plus, on met de côté la créativité.

Il me semble intéressant d'envisager les choses sous un autre angle: celui de l'éveil. Cela prend peu de temps, mais peut ouvrir des horizons. Je vais illustrer cela avec un exemple, qui d'ailleurs ne touche en rien l'informatique. Le mois dernier, j'animais un atelier pour les enfants lors de la première édition de la NDH Kids (qui se déroulait en parallèle de la Nuit du Hack), durant lequel nous avons bidouillé des pistolets Nerf. Plusieurs enfants de divers âges ont suivi cet atelier, plus ou moins intéressés par le sujet. Et parmi eux, deux adolescents qui ont apprécié l'idée, et qui m'ont recontacté par la suite pour me transmettre les photos d'un pistolet Nerf qu'ils possédaient et qu'ils ont complètement désossé, amélioré et repeint. Rien que cela. Pourtant, je ne leur ai jamais montré comment faire, je m'en étais simplement tenu au modèle que l'on manipulait. Je ne leur ai donné aucun guide de démontage, ni de recette pour peindre. Mais malgré tout, ils s'en sont sortis comme des chefs.

Ce qu'il faut retenir de cette histoire, c'est que tout a été question de déclic. Ils ont découvert quelque chose de nouveau, qu'ils ont jugé intéressant et motivant. A partir de là, à l'aide de recherches sur Internet, ils ont pris les choses en main et ont obtenu le résultat mentionné plus haut. Il y a tant de ressources accessibles sur Internet, tant de choses déjà créées (Scratch, w3schools, codecademy) permettant d'approfondir ce vaste sujet qu'est la programmation, qu'il me semble superflu d'aborder simplement le "code informatique" à l'école. Pas assez de temps et pas assez de moyen.

Je n'ai rien contre le système éducatif, une de mes meilleures amies est institutrice !

De ce constat (que le système scolaire ne peut prétendre enseigner le numérique), il en ressort une multitude d'interrogations. Equiper les écoles en haut-débit c'est bien, mais quel rapport avec le "code informatique" ? Qui va se charger de cet enseignement, qui plus est effectué sur temps périscolaire ? Sur quelles bases ? Envisage-t-on des solutions OpenSource ? Comment va faire un écolier qui ne possède pas d'ordinateur pour travailler cette matière chez lui ?

Je pense de plus en plus à mon amie institutrice (et directrice d'école), qui aura à gérer cette nouveauté et les problèmes qui en découlent. Car oui, pour ne rien arranger, elle enseigne en milieu rural avec une classe à trois niveaux et une population un poil hermétique aux langages informatiques. Sans parler de la réforme du temps scolaire et autres joyeusetés administratives. Ah, et j'oubliais l'ordinateur sous Windows 95 avec si peu de RAM et disque dur. Challenge accepted.

De l'école au code !

L'école a un rôle moteur dans cette démarche: celui de faire découvrir le domaine du numérique aux élèves. Pas directement le "code informatique", oh non, mais au moins les bases: la constitution d'un ordinateur, les notions de programmes, applications, sites web, serveurs, etc... Tout comme lors de mon passage au primaire, l'on apprenait comment fonctionne un moulin à légumes, une paire de ciseaux ou le principe des vases communiquant. Des notions qui leurs seront utiles par la suite, pour mieux appréhender l'environnement numérique, et pourquoi pas avoir une autre vision sur les GAFA avides de données personnelles, voire créer leurs propres applications.

C'est bien cela que je souhaite montrer à mes enfants: que les systèmes numériques ne sont en réalité pas aussi complexes qu'ils y paraissent, et leur donner les bases pour comprendre ce nouveau monde (numérique) qui les entoure et ses enjeux. Et s'ils souhaitent apprendre à créer leurs outils, je serai là pour leur montrer le chemin, quitte à passer pour un vieux con.

08
janv.
'14

2014, cette grosse marade

Publié le 08 janvier 2014

La nouvelle année s'annonce plutôt pas mal, après une année 2013 plutôt mouvementée: les révélations de Snowden, des hacks en tout genre, le lancement du projet Open It, la nuit du hack, etc ... Toujours des hacks en cours, des projets dans les cartons, et des idées plein la tête !

Open It

Hourra ! Les fêtes sont passées, les délais de livraison aussi et avec 2014 arrive le moment de dresser un calendrier des jalons à venir =). Ainsi, la 12ème édition de la Nuit du Hack aura lieu les 28 et 29 juin 2014, pour laquelle je proposerai un workshop de bidouille hardware/électronique/informatique co-animé avec Tixlegeek. De même, plusieurs soutiens ont des récompenses en attente, à savoir les Minitels et pour certains des journées de hack en ma compagnie, ce sera l'occasion de booker rapidement les dates: je vais communiquer très bientôt sur celles-ci.

L'imprimante 3D suit son cours, je vais relancer une série de commandes cette semaine, en espérant être livré rapidement et pouvoir entamer le montage de la base. L'électronique viendra sur la fin, idéalement il me faudrait le cadre, la visserie/boulonnerie/quincaillerie et 5 moteurs NEMA17. La commande va être passée.

Côté acquisition de matériel, j'ai reçu en cadeau de noël une superbe clef USB permettant de faire de l'acquisition radio sur des plages de fréquences allant de 54Mhz à 1.76Ghz, je me suis installé tout le logiciel et j'ai quelques idées en tête pour les applications: une occasion de fourrer le nez dans GnuRadio et dans le SDR.

La saga du clavier USB continue, j'ai reçu les derniers composants permettant de tester l'interface USB cette semaine. Ne reste plus qu'à câbler, coder et tester, je compte m'y mettre sérieusement un soir cette semaine ou la prochaine. Rien de bien compliqué techniquement parlant, mais si ça fonctionne je pourrais designer un PCB de derrière les fagots et tenter un truc au propre (compter 4 semaines entre le design et la réception du PCB).

Côté Minitel, la carte d'adaptation v2 a bien avancé, encore une fois reste juste à boucler le draft de driver python et finaliser le montage sur breadboard en ce qui concerne le support de clavier. Idem pour la connectique GPIO du raspberry Pi et l'alimentation. Les composants ont été commandés, j'attends que ça arrive.

Comme vous pouvez le voir, pas mal de trucs en cours qui viendront nourrir le blog durant les prochaines semaines, et la documentation OpenSource sur le wiki OpenIt.

Meilleurs voeux

Avec tout ça, je pense que j'ai de quoi être occupé jusqu'à l'année prochaine. Les mômes en plus, et les interactions sociales auxquelles s'ajoute le boulot finiront de me convaincre que l'année de mes 30 balais ne sera pas chômée. Je vous souhaite une très bonne année à tous, tout plein de hacks, de leaks, de nouvelles révélations sur la NSA et ses grandes oreilles, plein de vidéos de l'ami JCFrog et toutes ces sortes de choses !

27
mars
'13

42, v'la l'école !

Publié le 27 mars 2013

Xavier Niel vient tout juste de présenter son école de programmation, 42. L'initiative est quelque peu inédite mais résonne tout particulièrement dans mon esprit car cela fait des années que je prêche le constat fait par M. Niel: le système scolaire actuel n'est plus efficace dans le contexte des nouvelles technologies. Cela fait aussi écho aux diverses initiatives récentes prônant le développement, telles celle mise en avant par MM. Zuckerberg et Gates ou encore le plébiscite de John Naughton sur le site du Guardian pour l'enseignement de la programmation à l'école. Décryptage.

Back to the future

La programmation c'est le bien. J'ai commencé par cela il y a de nombreuses années, et je crois que ce qui m'a fasciné dans ce domaine c'est tout simplement le potentiel de créativité qu'il offre. La programmation est un outil permettant de créer d'autres outils. Pas moins que cela. J'ai commencé avec du BASIC. Sur un PC 486DX400. Une vieille bête qui tournait sous Windows 3.1. Oui, ce vieil OS bien vieux où l'on devait taper "win" à l'invite MS-DOS pour lancer l'environnement de bureau (quand je pense aux windowsiens qui se moquent du startx ...), mais qui m'a permis de faire mes armes en programmation. Je n'en suis pas resté là, j'ai appris ensuite le C, le C++, l'assembleur, et les langages du web bien plus tard. J'étais au collège. Pendant que les autres passaient leurs soirées devant la télévision ou participaient à des boums, je codais. Je créais. Car coder ça n'est pas simplement "que" pisser du code. Comme le hacking, c'est un état d'esprit, un apprentissage qui entraîne à la logique et à la réflexion. Comme aime le dire Ange Albertini: il s'agit "juste" de résoudre des casse-têtes. Rien que cela. Et les résoudre de la meilleure manière qu'il soit.

Retour à la réalité. La réalité de l'école 42, une "école de programmation" ouverte à tous et gratuite avec une sélection à l'entrée: seuls les meilleurs codeurs seront retenus et se verront dispenser un enseignement digne d'un code guru. A l'époque où j'ai appris par moi-même la "programmation", je rêvais de trouver une école de ce type. Une école où l'on puisse s'épanouir dans la création de code, une école qui valorise les profils comme le mien. Mais je n'en ai pas trouvé. J'ai essayé l'université, une grosse déception. A quoi ça sert d'apprendre le Pascal ? D'apprendre seulement à aligner deux lignes de code sans que l'on sache pourquoi ? We're doing it wrong !. Et maintenant, cette école spécialisée, qui vise à former l'élite des codeurs. Qui vont apprendre à maîtriser le C, le C++, la vie quoi. Où l'algorithmique sera une composante essentielle et pas un truc qui se résume à apprendre par coeur des algos de tri. Il l'a fait. Sincèrement, sur le principe j'approuve totalement. Si, si. J'aurais aimé m'inscrire, il y a quelques années déjà.

We are not code monkeys anymore !

Le programme de l'école semble un brin prétentieux, mais avec des élèves motivés à bloc et ayant une capacité d'adaptation, cette école peut envoyer du poney, comme on dit par chez nous. Néanmoins, j'ai quelques angoisses pour la suite, qui peuvent se résumer à deux grosses angoisses:

Ma première angoisse est issue d'une observation depuis quelques années des profils d'élèves que je croise: lors d'entretiens, lors de stages, durant les meets HZV. Une tendance générale se dessine: ils sont attentistes. Ils sont en école d'ingénieur, apprennent à développer (du moins on le croit) mais ne perçoivent pas forcément l'ouverture que leur donne cette discipline. Certains ont ouvert les yeux et sont conscient de ce que cela leur permet de faire (n'est-ce pas Jonathan ;): je me rappelle la tête d'une connaissance quand je lui ai mis en tête de coder une machine virtuelle, et qui le lendemain me montrait un prototype presque viable. Tout bonnement motivant. Pour la faire courte: il faudrait que les élèves arrêtent de choisir leur école en fonction du salaire qu'ils souhaitent avoir, mais plutôt en fonction de ce qu'ils veulent vraiment faire. De leur passion. Et choisir une école qui met en avant le code, comme Epitech ou 42. Où ils devront s'immerger et repousser leurs limites. Et être créatifs.

La seconde est tout simplement une généralité en France: un développeur, c'est un pisseur de code. Point barre. Le prolo de l'informatique, incapable de réfléchir et qui pond juste le code qui fait quelque chose. "Bah tu cliques sur le bouton là, et ça te fait des chocapics. Okay, tu peux me faire ça ?". J'ai travaillé comme ingénieur R&D auparavant. J'ai pondu aussi du code. Et je me rappelle toujours d'une bonne blague dans le milieu:

«Quel est le futur d'un développeur en France ? Chef de projet !»

Cherchez l'erreur. Tant que l'on considérera la programmation comme une discipline qui consiste simplement à traduire une solution à un problème en langage informatique, les développeurs resteront maltraités et mal payés. Mais la programmation est et restera un art. Créer du code (ou "coder") n'est pas simplement pisser du code, mais apporter une réponse intelligente et parfois brillante à un problème posé, et cela de manière optimale. Coder, c'est tout simplement résoudre un ensemble de casse-têtes de la manière la plus intelligente possible, et faire en sorte que cela fonctionne dans tous les cas. Certains codes méritent le respect, même de la part d'un chef de projet ou d'un ingénieur sécurité. Pour illustrer mon propos, je vous propose de jeter un oeil à ce solveur de sudoku qui fait 67 octets, ou encore ces générateurs de labyrinthes, qui sont des bijoux de code. Allez, une petite vidéo en prime.

Alea jacta est

  1. Niel, quelle bonne idée que cette école ! J'admire l'initiative et l'ambition de celle-ci et de son programme, tout en appréciant la référence à l'univers de Douglas Adams. Cependant, n'est-ce pas mettre la charrue avant les boeufs, dans ce pays où le statut de développeur est à des années-lumière de ce qu'il est dans un pays comme les Etats-Unis d'Amérique par exemple ? Former de bons développeurs c'est bien, mais les sociétés françaises actuelles qui sont en partie responsables de l'immobilisme dans les cycles de formation sauront-elles valoriser les développeurs issus de cette école et de ce cursus particulier ? J'ai peur. Et je suis content à la fois. Mitigé en somme. Ce serait dommage de ne pas pouvoir récompenser les talents qui seront révélés. Vraiment dommage.


Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.