BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Articles Questions/réponses avec l'Auteur de La Programmation Pour Les Enfants

Questions/réponses avec l'Auteur de La Programmation Pour Les Enfants

Favoris

Peter Armstrong a écrit un livre pour les enfants qui veulent apprendre à créer des programmes informatiques. Le livre La Programmation Pour Les Enfants comporte de nombreux exemples que des enfants de 9 à 14 ans peuvent utiliser pour apprendre les bases de la programmation, à l'aide du langage Ruby. Il leur montre aussi comment utiliser les lignes de commande sur un Mac. Les parents peuvent s'assoir à côté de leurs enfants et suivre avec eux.

InfoQ a interviewé l'auteur, Peter Armstrong, à propos des différentes manières dont les enfants peuvent apprendre la programmation informatique et développer leurs compétences en programmation, et sur l'utilisation de Leanpub pour l'auto-publication d'ebooks.

InfoQ : Qu'est-ce qui vous a décidé à écrire un livre pour enfants à propos de la programmation ?

Peter : Je voulais apprendre à mon fils. Il joue beaucoup, et quand il a eu 7 ans, il a décidé qu'il voulait apprendre à programmer. Alors, j'ai essayé de lui apprendre, mais il n'était pas vraiment prêt. Nous avons joué avec Scratch, et essayé de nous pencher sur Lego Mindstorms, mais il n'était pas prêt à faire le genre de programmation qui demande de s'assoir devant l'ordinateur, de penser et d'écrire. Vous savez, comme font les développeurs. J'ai donc attendu. Quand il a eu 9 ans, il a encore demandé à apprendre, et j'ai pensé qu'il pourrait être prêt. De ce fait, j'ai acheté quelques-uns des livres de programmation pour enfants en vogue, mais ils étaient frustrants pour lui. Les choses doivent être présentées plus explicitement, et les exemples doivent être plus courts, etc. J'ai donc décidé que, si mon fils devait lire un livre qui lui convienne, je devrais l'écrire. J'avais écrit quelques livres pour développeurs professionnels, mais je n'avais jamais écrit de livre pour enfants. Mais, ayant expliqué des choses à mon fils pendant des années, je me suis dit que j'allais essayer. De ce fait, quand j'ai eu du temps libre pendant les vacances de Noël, j'ai écrit le livre. Mon fils a suivi chaque chapitre, et quand ça devenait compliqué, j'en ai entendu parler, bruyamment !

InfoQ : A quel âge les enfants peuvent-ils commencer à apprendre la programmation ? Quelle est la tranche d'âges des enfants qui pourraient apprendre à programmer grâce à ce livre ?

Peter : Je pense que les enfants peuvent commencer à apprendre la programmation à 9 ou 10 ans. Peut-être même à 8 ans, dans certains cas. Ce livre cible des enfants de 9 à 14 ans. Il fonctionne aussi pour des enfants plus agés bien sûr - un de mes collègues plaisantait à moitié sur le fait qu'on devrait le donner aux étudiants de première année de l'université locale qui font de la programmation pour des spécialités autres que l'Informatique - mais il est plus adapté aux enfants entre 9 et 14 ans. Pour les enfants plus agés, il y a plus de choix.

InfoQ : Le livre comporte beaucoup d'exercices de programmation. Pourquoi avez-vous choisi d'utiliser des exercices pour enseigner la programmation ?

Peter : Initialement, le livre était juste quelque chose que j'avais écrit pour que je puisse le suivre avec mon fils. Il n'y avait pas d'exercices. Mais Yves Hanoulle a commencé à traduire le livre en Néerlandais, et a fortement suggéré par email que j'essaye d'utiliser des exercices. Et quand j'ai essayé, je me suis rendu compte que ce que je pensais que mon fils avait compris n'était en fait pas aussi bien compris que je le pensais. Cela m'a fait revenir en arrière et a fait des exercices une focalisation principale du livre. Il fait 185 pages, mais 30 d'entre elles ne sont que les réponses aux exercices ! Grâce à cela, vous pouvez vraiment savoir si vous avez compris la leçon.

InfoQ : Pourquoi avez-vous choisi Ruby en tant que langage de programmation ?

Peter : Tout d'abord parce que c'est simple. J'aurais pu choisir JavaScript ou CoffeeScript, mais je me retrouvais soit à parler de navigateurs et de DOM, soit à installer Node.js. J'ai donc décidé de prendre un langage qui soit (1) probablement déjà sur le Mac de l'enfant, (2) qui comporte un REPL et (3) qui soit simple. Il me restait donc Ruby et Python, et je suis bien meilleur en Ruby qu'en Python. Leanpub a été fait en Ruby on Rails, par exemple.

InfoQ : Pourquoi avoir évité de mentionner les objets, qui sont plutôt centraux à Ruby ?

Peter : L'objectif du livre est d'introduire les enfants à la programmation en général, pas à un type de programmation spécifique. De ce fait, ce n'est pas La Programmation Orientée Objet Pour Les Enfants ou La Programmation Fonctionnelle Pour Les Enfants ou La Programmation en Ruby Pour Les Enfants. C'est La Programmation Pour Les Enfants. Dans le livre, je ne cache pas complètement Ruby (j'utilise les blocs, par exemple), mais je voulais le garder centré sur les concepts universels de programmation, tels que les boucles, les itérations, les conditions, etc. De plus, je voulais que le livre soit amusant, c'est pourquoi j'ai beaucoup utilisé la commande say (avec les quotes inverses), etc.

InfoQ : Votre livre concerne-t-il uniquement l'écriture de code, ou est-ce que les enfants apprennent aussi à tester ?

Peter : Il se focalise sur l'écriture du code. Il y a du test ad hoc dans le livre, mais pas de test unitaire ou d'intégration. C'est un livre pour enseigner les bases de la programmation, pas l'ingénierie logicielle. En plus, c'est à mon avantage : je suis probablement le plus mauvais en tests automatisés dans mon entreprise, et sans doute le meilleur en tests ad hoc.

InfoQ : De nos jours, le développement logiciel est principalement réalisé en équipes. Y a-t-il aussi des exercices en équipes dans le livre, lors desquels les enfants peuvent s'entraîner ensemble ? Les enseignants peuvent-ils utiliser ce livre dans leurs classes, avec des équipes d'élèves ?

Peter : Ce livre est écrit pour qu'un enfant seul puisse le lire et le suivre. Ceci dit, les enfants peuvent aussi lire et faire les exercices du livre ensemble. Je crois que les enfants d'Yves ont suivi le livre ensemble, comme il effectuait la traduction en Néerlandais. Et pour les enseignants et les classes : absolument ! Les enfants peuvent utiliser le livre dans les classes d'informatique, seuls ou en équipes. Il n'y a pas de DRM sur le livre et son prix permet à une classe entière ou une école de l'utiliser.

InfoQ : Imaginons qu'un parent veuille aussi apprendre à programmer. Peut-il apprendre avec son enfant grâce à ce livre ?

Peter : Oui, bien sûr ! J'encourage les parents à s'assoir à côté de leurs enfants et de suivre avec eux - en particulier si l'enfant travaille sur l'ordinateur de ses parents ! Je souhaite que les parents et les enfants puissent apprendre à programmer ensemble. Pour moi, la programmation est la nouvelle littérature.

InfoQ : Le livre est en cours de traduction en Néerlandais, en Français et en Espagnol. Comment cela se passe-t-il jusque ici ?

Peter : Extrêmement bien ! J'ai eu d'excellents retours, particulièrement d'Yves Hanoulle, mon traducteur Néerlandais ! Il a pris un risque et a commencé la traduction du livre tôt dans son écriture (environ 5 chapitres). Mais, dans un sens, ce n'était pas vraiment un risque puisqu'il voulait le traduire pour l'enseigner à son fils. Ce qui était intéressant pour moi est que le fait qu'il soit traduit pendant le processus d'écriture m'a forcé à mieux définir à quel point un chapitre était fini. Je respecte Yves et la valeur de son temps, donc je ne voulais pas le gâcher à traduire quelque chose que j'allais réécrire. Je lui ai donc demandé de prendre quelques chapitres de retard, le temps que je sois sûr de l'objectif du livre. Une fois que ce fut fait, je lui ai demandé de traduire les chapitres à mesure que mon fils les testait. C'est uniquement une fois qu'il avait passé le test que je considérais un chapitre comme terminé. Je ne crois pas qu'un seul chapitre ait survécu à la lecture de mon fils sans quelques changements.

InfoQ : Comme votre livre est publié sur Leanpub, peut-on est espérer de nouvelles versions dans le futur ?

Peter : Oui ! Pour l'instant, je pense que cette version est terminée. Enfin, lorsqu'il aura été traduit dans beaucoup de langues, et gagné une renommée importante, je m'attends à vouloir faire une mise à jour. De plus, je pourrais peut-être lancer une série de livres. Par exemple, je n'enseigne rien concernant le web, les objets, la programmation fonctionnelle, etc. Mais au fur et à mesure que le livre évoluait, j'ai réalisé quelle était sa taille naturelle. La plupart des livres pour enfants ne fait pas 500 pages ! De ce fait, j'étais content de le finir en 143 pages en plus des réponses aux exercices. Lire ce livre, le suivre en faisant les exercices, et le finir est un accomplissement conséquent ! C'est particulièrement vrai si vous avez 9 ans ! Donc, je veux que ce sentiment d'accomplissement arrive en 143 pages, et ne pas avoir d'enfants qui abandonnent après 200 ou 300 pages.

InfoQ : Si les enfants veulent devenir de bons développeurs logiciel, quelles sont les compétences dont ils ont besoin pour en apprendre plus sur la programmation ?

Peter : Il y a de nombreuses compétences. Premièrement, et avant tout, la communication. A la fois à l'écrit et à l'oral, il faut être capable de communiquer clairement et précisément. D'un autre côté, il faut être capable d'écouter et de penser rapidement lors des discussions, pour comprendre ce que sont vraiment les exigences, et ce qui est, ou non, important. Il faut être sûr de soi, et ne pas hésiter devant un bon combat. J'ai été développeur pendant plus d'une décade avant de changer pour mon poste actuel de fondateur de start-up, qui est plus proche du Product Owner. Je pense que l'une des compétences que j'ai vraiment acquise au cours de ma carrière est celle de déterminer quelles étaient les exigences exactes, et quelles étaient les fausses exigences. Si vous êtes capables d'éviter de résoudre des problèmes compliqués et inutiles, c'est une bonne chose !

InfoQ : Si, après avoir lu ce livre, les enfants veulent en apprendre plus sur la programmation, que peuvent-ils faire ?

Peter : Il y a beaucoup de livres pour des enfants plus âgés, qui seraient en toute logique l'étape suivante. De plus, il y a des sites comme celui-ci, qui sont biens, et qui évoluent vite.

InfoQ : Vous avez écrit deux livres pour les développeurs expérimentés, Flexible Rails et Hello! Flex 4. Quels étaient les différents défis que présentait l'écriture d'un livre pour enfants ?

Peter : Tout d'abord, la connaissance supposée. Les enfants n'ignorent pas seulement ce qu'est Terminal, il ne savent pas forcement ce qu'est un fichier texte ou où sont les touches commande ou contrôle ! Du coup, il faut tout expliquer. Au début du livre, j'ai même intégré une photo d'un clavier, avec des flèches qui pointent vers certaines touches puisque, malgré le fait que mon fils soit un joueur, il n'avait jamais utilisé certaines touches auxquelles je faisais référence. De la même façon, quand vous utilisez un caractère comme la quote inverse (`) ou l'accent circonflexe (^), vous devez expliquer où il se trouve sur le clavier, et comment l'écrire. C'est beaucoup plus difficile. Avec mes livres pour les développeurs expérimentés, mon défi principal était de rendre le livre motivant et intéressant - mais je n'avais pas besoin d'expliquer comment démarrer Spotlight et lancer Terminal. D'un autre côté, c'était tellement gratifiant de voir mon fils suivre le livre - le voir immédiatement arrêter de jouer et attrapper son ordinateur portable quand je disais que j'avais un nouveau chapitre prêt à être testé. En plus d'apprécier le livre, il prenait cela au sérieux ! Je me rappelle qu'il m'avait réprimandé, en disant "Voilà pourquoi tu as un testeur. Ne serait-ce pas désastreux si cela avait été publié ?" à propos de quelque chose d'un peu compliqué. Il me ressemble donc par son perfectionnisme.

InfoQ : Vous êtes le co-fondateur de Leanpub, et c'est votre deuxième livre Leanpub. Avez-vous appris quelque chose de votre produit Leanpub en écrivant ce livre ?

Peter : Oui ! Nos processus de traduction et de co-création ont besoin d'être affinés ! Actuellement, ils travaillent en utilisant DropBox, qui fonctionne, mais quand il y a plusieurs versions de quelque chose (disons, le livre original) et que le traducteur se demande ce qui a changé, un processus basé sur Git serait beaucoup plus robuste. Ce serait aussi vrai dans les situations de co-création où de multiples auteurs veulent éditer le même fichier. Nous devons donc améliorer ça en 2014. Une autre chose qui me semble a été suggérée par l'un de mes traducteurs est que les traductions puissent hériter de tous les paramétrages de la page principale du livre original en un clic. Cela paraît tellement évident qu'il est choquant que nous ne l'ayons pas encore fait. C'est très agréable pour moi d'être dans le rôle du client, utilisant Leanpub : certaines choses paraissent être des problèmes mineurs, mais sont en réalité des problèmes majeurs pour nos auteurs ! Il n'y a pas de meilleure façon d'avoir de l'empathie pour les gens que de souffrir des mêmes problèmes qu'eux !

Vous pouvez télécharger un extrait de La Programmation Pour les Enfants sur Leanpub.

A propos de l'auteur

Peter Armstrong est le co-fondateur de Leanpub et Dashcube ainsi que l'auteur de 4 livres : Lean publishing, Flexible Rails, Hello! Flex 4, et La Programmation Pour les Enfants. Il a plus d'une décade d'expérience en tant que développeur logiciel, avec 8 ans d'expérience à développer des logiciels dans les start-ups de la Silicon Valley. Peter est un orateur expérimenté sur le lean publishing et l'entrepreunariat de start-up. Vous pouvez le contacter via peter@leanpub.com.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

BT