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.
Samedi dernier (le 28 juin 2014) se déroulait la douzième édition de la Nuit du Hack, le rendez-vous incontournable des bidouilleurs/codeurs/geeks de tout poil. Une douzième édition marquée par de nombreux changements, et plus de 1500 visiteurs. J'étais de la partie (qui a dit "comme d'habitude" ?), avec un talk et demi et plusieurs workshops.
Les nouveautés
J'en avais déjà parlé dans un précédent billet, mais cette édition regorgeait de nouveautés: * des ateliers pour les enfants (NDH Kids) * un badge collector * des challenges en tout genre * des partenaires de folie * encore plus de place
A noter en particulier le bug bounty lancé durant la nuit, sponsorisé par Qwant et qui offrait des PS4 avec le jeu Watch_Dogs, des Nexus 5 et plein d'autres lots, la présence de l'ANSSI qui tenait deux stands (un dans Yes We Hack et l'autre dans la salle plénière), et d'OVH toujours fidèle au poste =).
Je pensais que cela ferait un peu beaucoup de choses à intégrer, mais au final tout s'est déroulé merveilleusement bien, à commencer par la NDH Kids.
NDH Kids
Le réveil fut un brin difficile (peu de sommeil durant les jours prédédant le début de la Nuit du Hack, pour cause d'organisation) mais je débutais la journée en beauté avec mon premier atelier pour les enfants: du bidouillage de pistolets Nerf (de Hasbro). De mes deux ateliers de la journée, celui-ci est celui que j'appréhendais le plus: je n'ai pas l'habitude de gérer des enfants de 8 à 16 ans. Le challenge était présent, surtout lorsqu'il a fallu sortir la perceuse pour réussir à extraire une pièce du pistolet car sinon cela aurait pris beaucoup de temps (12 pistolets à modifier). Un peu impressionnant pour les enfants, mais rigolo (pour les enfants, moi je faisais super attention de ne pas me transpercer la main). Malgré les quelques impatients, on n'a pas trop débordé sur le planning, et même le staff Ndh Kids était fan !
N'empêche, voir leur enthousiasme est franchement épatant: ils ont de l'énergie à revendre et plein d'idées ! Le graal, c'est quand une jeune fille m'a dit: "Ah il est déjà 11h45, mais on n'a pas vu le temps passer !". Une expérience à renouveler l'année prochaine, mais avec quelques précautions: le staff a été un peu débordé par les batailles qui s'en sont suivies, et les parents m'en veulent peut-être un peu pour les futurs cadeaux qui seront commandés au Père Noël. Cela ne m'a pas empêché de modder par la suite un Vortex Praxis et un Maverick ;) ...
Les talks
Etant tout particulièrement occupé lors de mon atelier pour les kids, je n'ai pas pu suivre tous les talks qui se déroulaient dans la salle plénière (Times Square). Cependant les quelques bribes que j'en ai vu étaient bien sympa: Benjamin Bayart, Renaud Lifchitz, Jayson Street, que du bon. J'ai assuré un talk et demie lors de cette Nuit du Hack, car cela faisait plus d'un an que je n'avais pas parlé sur cette scène et ça faisait du bien d'y retourner. Le premier talk que j'ai donné, intitulé "Break, dump & crash" parlait de rétro-ingénierie matérielle, et en particulier d'une puce Broadcom que l'on retrouve dans les modems câble supportant la norme DOCSIS 3.0. Apparemment j'ai fait un peu mal à certaines têtes, mais donné des idées à d'autres (et ça, c'est super).
Le second talk était en réalité une présence de soutien à mon ami et collègue Romain E Silva, pour qui ce talk sur la domotique était le tout premier. Lui qui stressait déjà devant une dizaine de personnes a complètement assuré devant plus de 1000 personnes! Je me suis juste chargé de l'introduction, de la description des vulnérabilités et des private jokes sur scène (base64 + lien Youpr0n). C'était bien marrant, et au final le talk a permis de soulever des problématiques actuelles quant à la domotique et sa sécurité (en mettant l'accent en particulier sur les solutions opensource).
Les workshops
Les workshops ont débuté à 19h, et celui que j'avais organisé avec TixLeGeek (et auquel sont venus s'adjoindre y0no et olivier-network, encore un grand merci à eux) a vite été débordé. Question organisation ce n'était pas top, je ne m'attendais pas à autant de monde. Les personnes qui ont soutenu le workshop via Ulule ont (presque) toutes reçues leur matériel, et ont pu s'initier à la soudure. Cela a pris toute la nuit, alors que je pensais avoir suffisamment de temps pour faire plein d'autres choses. Il me reste encore quelques bidules à envoyer par la poste, afin que tout le monde ait son dû.
Résultat: on a passé la nuit à souder, à résoudre des problèmes de soudure et de communication USB avec le badge collector de la Nuit du Hack, mais aussi à rencontrer des gens intéressants et motivés. De belles rencontres, des échanges super sympas, et plus de voix à 8h du matin (l'année prochaine je prévois la sono en plus). Bref, pas mal de choses à améliorer, mais je pense que l'on va monter un petit "village" de hacking hardware inspiré de celui de la Defcon, car il y a encore énormément de choses à faire de ce côté. Et mettre des stations de soudage en accès libre, histoire que tout un chacun puisse s'éclater avec le badge électronique. Avis aux amateurs pour la prochaine édition !
Pour ceux qui seraient intéressés par le badge électronique, cela inclut ceux qui ont eu la chance d'en avoir un et les autres bien sûr, tous les outils nécessaires sont disponibles sur GitHub. Et cela comprend la ROM d'origine ;).
Et de la fatigue ...
A l'heure où j'écris ce billet, je ne me suis pas tout à fait encore remis de cette édition qui fut encore une fois trop courte mais rondement menée, grâce au boulot formidable de toute la team. Merci aussi à vous d'être venus si nombreux, d'avoir bravé les transports en commun et d'avoir répondu présent pour cette douzième édition: c'était juste magique. On remet ça dans un an ?
La Nuit du Hack 2014 arrive à grand pas, et comme promis je vais y co-animer un workshop traitant de hardware hacking avec TixLeGeek. Cet atelier pratique se veut être une initiation à différents domaines connexes à l'informatique, mais où l'on utilise ses dix doigts pour réaliser de vraies choses palpables, ce qui procure une satisfaction toute particulière (identique à celle que l'on trouve à coder).
Que va-t-on faire durant ce workshop ?
Différents aspects du hacking hardware seront abordés, dont notamment:
L'idée de cet atelier est de faire découvrir et démystifier le hardware hacking, de découvrir les joies de l'électronique et son utilisation couplée à des ordinateurs. Pour ce faire, l'édition de cette année de la Nuit du Hack a introduit un badge électronique, conçu par mes soins, sur lequel se basera ce workshop. Vous n'en avez pas acheté sur le site de l'évènement ? Pas grave, j'en ai quelques-uns en supplément, sous réserve de participer au workshop bien entendu.
Le badge réserve quelques surprises, car il peut notamment:
Quelques photos ont fuité sur Twitter, si vous voulez vous faire une idée du bazar !
Comment participer ?
Pour vous inscrire au workshop, rien de plus simple: il y a une campagne de financement participatif en ligne sur le site Ulule.fr . Pourquoi un financement participatif ? Parce que c'est simple, dans la philosophie communautaire, et que cela permet de faire des pré-commandes sans se prendre la tête.
Plusieurs "packages" sont disponibles, selon que vous ayez déjà acheté le badge en tant que goodie sur le site de la Nuit du Hack 2014 ou non, et en fonction de vos outils. Ainsi, si vous n'avez pas de fer à souder adapté, ni de multimètre et encore moins de plaque de prototypage, un package "Hardware Master + Badge Collector" est disponible, incluant un badge collector en kit à monter au workshop et tout ce qu'il faut pour bien débuter dans le hacking hardware. Si vous avez déjà un fer et du matériel, viendez avec et optez pour le package "Hardware Bonus + Badge Collector", afin de profiter de composants supplémentaires et d'un shield infrarouge collector pour le badge (permettant de faire de l'envoi/réception de données).
Et si vous avez déjà un badge de réservé, les mêmes contreparties sont prévues, mais sans le badge. Notez que je ne dispose ni d'un nombre infini de badges collectors, ni d'énormément de place pour le workshop =).
NB: la place pour l'évènement la Nuit du Hack 2014 n'est pas incluse dans le prix du workshop, mais vous en aurez besoin pour y participer. Si vous n'en avez pas encore, vous pouvez vous inscrire à la NdH 2014 sur le site officiel.
Et si on veut participer sans badge ni bonus matériel ?
Le workshop reste ouvert à tous, et vous pouvez très bien participer sans avoir le matériel nécessaire. Nous aiderons ceux qui souhaitent souder leur badge, et le bidouiller (on fournit aussi des idées), mais nous serons aussi disponible pour réaliser des hacks en tout genre lors de l'évènement, et on ramène même pour l'occasion pas mal de matériel divers ! Cependant, le badge électronique reste une bonne plate-forme de jeu pour les divers challenges à relever.
Au plaisir de vous y voir !