Outils pour utilisateurs

Outils du site


issue71:critique_litteraire

Table des matières

1

Publisher: No Starch Press Pages: 318 Ideal For: Anyone with an interest in programming, no previous knowledge necessary Writing a book on learning to program has got to be difficult. Most of us think we know what programming entails, right? You type in some goofy-looking code that tells your computer what to do and, voila, Skyrim! How hard can it be? Very, it turns out. Even the most basic concepts in programming (functions, for example), require careful explanations that nest comfortably within one another like coded Matryoshka dolls. Leave out one of the dolls and you have an incomplete arrangement and, likely, a non-working program. Now imagine scaling that complexity down so that a child or, say, yours truly can understand it. Now you’re talking orders of magnitude harder than simply teaching someone how to code. Not only do you have to explain non-intuitive concepts carefully, you also have to do it in an entertaining way. It’s like a pediatric dentist who dresses like a clown to keep her patient from running away in tears at the first sound of drilling.

Éditeur : No Starch Press Pages : 318 Pour : Quiconque s'intéresse à la programmation, aucune connaissance préalable requise.

Écrire un livre pour apprendre à programmer doit certainement être ardu. La plupart des gens pensent qu'ils savent ce que c'est que de programmer, non ? Vous saisissez un peu de code bizarroïde qui indique à votre ordinateur ce qu'il va faire et, voilà, Skyrim ! Est-ce vraiment difficile ?

Il s'avère que oui. Même les concepts de programmation les plus fondamentaux (par exemple, les fonctions) nécessitent des explications claires qui s’imbriquent l'une dans l'autre comme des poupées russes codées. Si vous oubliez une des poupées, vous aurez un ensemble incomplet et, sans doute, un programme qui ne fonctionne pas.

Imaginez maintenant de réduire cette complexité afin qu'un enfant ou, disons, moi-même puisse la comprendre. Et là, la difficulté s'accroît de plusieurs ordres de grandeur ; c'est nettement plus difficile qu'apprendre à quelqu'un simplement comment coder. Il faut non seulement expliquer des concepts non-intuitifs avec soin, mais il faut aussi le faire de façon divertissante. Comme une dentiste pédiatrique qui se déguise en clown pour que le patient ne s'enfuie pas en pleurant dès qu'il entend la fraise tourner.

2

Cavity prone kids have Dr. Funny Tooth, and kids interested in programming have No Starch Press. Python for Kids basically dresses up the complexities of programming in a fun package, and tries to keep things light, while still working toward a functional program. I am clearly the right demographic for this book. I’m not a kid, but I pretty much eat like a teenager, so it’s almost the same thing. Plus, I have no working knowledge of programming, barely any knowledge about computers, and only a passing familiarity with the English language. If Python for Kids can teach me to program, it’s quite possible it was written by a wizard. The first thing I learned from this book was that Python was named after Monty Python, the English comedy troupe. If that’s all I’d learned then the book would be worth its cover price, because I LOVE Monty Python. But the learning continued, mostly because the book is well-written, engaging, and full of simple words for simple people like me. Installing Python for use with the book seems like it would be very straightforward. I say seems because Python came pre-installed in desktop Ubuntu. Woohoo, I’m a programmer already!

Les gosses dont les dents sont sujettes aux caries ont le docteur Dent amusant et les gosses qui sont intéressés par la programmation ont No Starch Press. Essentiellement, Python for Kids déguise les complexités de la programmation dans un emballage amusant et essaie de rester léger tout en continuant à travailler vers leur objectif : un programme fonctionnel.

Il est clair que je suis une bonne cible pour ce livre. Je ne suis pas un gosse, mais je mange grosso modo comme un adolescent, ce qui est à peu près la même chose. En outre, je n'ai pas de connaissances pratiques de la programmation, guère de connaissances sur les ordinateurs et quelques vagues notions de la langue anglaise. Si Python for Kids réussit à m'apprendre à programmer, alors c'est tout à fait possible que l'auteur soit un sorcier.

La première chose que j'ai apprise de ce livre était que le Python doit son nom aux Monty Python, l'ensemble comique anglais. Si c'était tout ce que j'avais appris alors le livre vaudrait déjà son prix, car j'AIME les Monty Python. Mais l'apprentissage continua, surtout parce que le livre est bien écrit, palpitant et plein de mots simples pour des gens simples comme moi.

L'installation de Python pour pouvoir l'utiliser avec le livre paraît être très simple. Je dis « paraît » car Python est pré-installé dans Ubuntu pour les ordinateurs de bureau. Ouah, je sais programmer déjà !

3

For non-Ubuntu platforms, the book offers clear installation instructions along with screen caps. Another point for No Starch: the screen caps in each chapter typically looked exactly like what I was seeing on my screen. It’s a small thing, but I always hate it when you have to take a moment to make sure you didn’t do something wrong because your picture doesn’t match up with what’s in the book. I also had to install the latest version of Idle (which allows you to run Python programs) and that took about 3 seconds. What is taking so long?! Kidding. After installing Idle and running through the first few chapters, I had my first “Hello World” moment finished in under 5 minutes. Not bad, especially when you consider the attention span of the average kid, which is on par with the attention span of the average door knob. Source: I’m the father of two kids. As I progressed through the book, I learned about calls, functions, strings, lists and loops. Each time a concept was introduced, I was given a small snippet of code to enter, and an explanation of how it worked. The only time something didn’t work as expected was when I had entered the code incorrectly. Since the code was short and simple, it was an easy matter of looking through it to identify the problem.

À l'intention des plateformes non-Ubuntu, le livre fournit des instructions claires pour l'installation ainsi que des captures d'écran. Encore un bon point pour No Starch : en général, les captures d'écran dans chaque chapitre ressemblaient exactement à ce que je voyais sur mon écran. Ce n'est qu'un petit truc, mais je déteste devoir prendre du temps pour m'assurer que j'ai tout fait correctement parce que l'écran chez moi ne ressemble pas à celui du livre.

J'ai dû installer aussi la plus récente version de Idle (qui vous permet de lancer des programmes en Python) et il m'a fallu environ 3 secondes. Qu'est-ce qui prend autant de temps !? Je blaguais.

Après avoir installé Idle et lu les premiers chapitres, j'ai terminé mon premier « Bonjour monde » en moins de 5 minutes. Pas mal, surtout quand vous prenez en compte la capacité de concentration du gosse moyen, qui est à peu près la même chose que celle du bouton de porte moyen. Source : J'ai deux gosses.

Pendant la lecture du livre j'ai appris des choses sur les appels, les fonctions, les chaînes, les listes et les boucles. Chaque fois qu'un concept fut présenté, il y avait un petit bout de code à saisir accompagné d'une explication de son fonctionnement. La seule fois où quelque chose n'a pas fonctionné comme on pouvait s'y attendre, j'avais mal saisi le code. Puisque celui-ci était court et simple, c'était facile de l'examiner pour identifier le problème.

4

At this point, allow me to rant on an issue all programming books have in common. Why the $#%! aren’t these books spiral bound so that I can read them comfortably while, you know, TYPING ON A KEYBOARD?! /rant Within an hour of opening the book, I was drawing squares using the turtle module (which, since it leaves a trail, is really more accurately referred to as a snail or a hobo - presumably those are different modules we learn about later). Each chapter builds on the previous, and puzzles at the end of each chapter test your knowledge. I have to say, these were not simple recreations of what had been done already but were, themselves, extensions of existing concepts. I actually got a little clammy-handed working through them, feeling like a high-school student taking a pop quiz. Thankfully, all the answers are available at http://nostarch.com/pythonforkids One of the neat things about reading beginner programming books is that you start to see the evolution of games. As I read through the creation of classes and objects, and learned about functions asking for the user to input information (age, number, direction, action, etc), I felt like I was peeking behind the curtain of the earliest text-based dungeon-crawling games I played as a kid. Modern kids, with their Facetube and their YouBooks and their X-Wiis, probably won’t have that sense of nostalgia, but maybe their parents will.

À ce stade, permettez-moi de me plaindre d'un problème commun à tous les livres de programmation. Pourquoi $#%! ces livres ne sont-ils pas des cahiers à spirale pour me permettre de les lire confortablement pendant que JE TAPE SUR UN CLAVIER ?!

/plainte

En moins d'une heure après avoir ouvert le livre, je dessinais des carrés avec le module « turtle », ou tortue (qui, puisqu'il laisse une trace devrait en fait s'appeler un escargot - et je suppose que c'est un module que l'on connaîtra plus tard).

Chaque chapitre s'appuie sur le précédent et, à la fin de chaque chapitre, des énigmes testent vos connaissances. Je dois dire que celles-ci n'étaient pas de simples refontes de ce qui avait été déjà fait, mais étaient, elles-mêmes, des extensions des concepts existants. J'avais même les mains un peu moites en les faisant, car j'avais le sentiment d'être un étudiant au lycée en train de passer un test improvisé. Heureusement, toutes les réponses sont disponibles sur http://nostarch.com/pythonforkids

Une des choses sympas dans la lecture de livres sur la programmation pour débutants est que vous commencez à apercevoir l'évolution des jeux. En lisant les chapitres sur la création de classes et d'objets et découvrant les fonctions qui demandent à l'utilisateur de saisir des informations (âge, nombre, direction, action, etc.), j'avais l'impression de regarder derrière les rideaux des premiers jeux d'exploration de donjons, basés sur du texte, auxquels j'avais joué étant gosse. Les gosses modernes avec leur Facetube et leur YouBooks et leur X-Wiis, n'auront sans doute pas ce sens de la nostalgie, mais leurs parents, si, peut-être.

5

By the end of the book, I had a cute little ball-and-paddle game up and running and a rudimentary understanding of the concepts used in its creation. While I’m not likely to get called up by Rockstar Games to work on Grand Theft Auto VI: Life in Sing-Sing, I do feel comfortable recommending the book to interested kids, or picking up some more beginner programming books for myself. There’s nothing quite like seeing the simple lines of code create something on the screen and knowing how and why it happened. I only have a few complaints about the book and none of them would keep me from recommending it (although they might be helpful in managing expectations for potential readers). First, of the games you get to program yourself, the first one, a ball-and-paddle game, doesn’t make an appearance until page 190. While all the concepts leading up to the creation of the game are explained clearly, and make up the bulk of what you’re learning, I felt the game came a little late. An easy fix for anyone interested in getting the book who thinks this might be an issue: simply download the final version of the ball-and-paddle game (available free at the publisher’s website), run it, and then take a look at the code. It will seem like gibberish at first, but, as you go through the book, you’ll start to see how certain modules and functions could be used to create the game.

À la fin du livre je pouvais exécuter un mignon petit jeu de ping-pong, avec une compréhension rudimentaire des concepts utilisés dans sa création. Bien qu'il y ait peu de chances que Rockstar Games me demande de travailler sur Grand Theft Auto VI : Life in Sing-Sing, je peux, sans hésiter, recommander ce livre à des gosses intéressés ou, même, me procurer davantage de livres sur la programmation pour débutants. Savoir comment et pourquoi de simples lignes de code créent quelque chose à l'écran, n'a pas son pareil. Je n'ai que très peu de plaintes au sujet du livre et aucune ne m'empêcherait de le recommander (bien qu'elles puissent être utiles pour gérer les attentes des lecteurs potentiels).

D'abord, parmi les jeux que vous pouvez programmer vous-même, le premier, un jeu de ping-pong, n'est présenté qu'à la page 190. Alors que tous les concepts requis pour la création du jeu sont expliqués clairement et forment le gros de ce que vous apprenez, j'ai eu l'impression que le jeu arrivait un peu tard. Voici une façon très facile de résoudre ce problème pour quiconque aimerait se procurer le livre, mais pense que ceci pourrait le gêner : il suffit de télécharger la version finale du jeu de ping-pong (disponible gratuitement sur le site de l'éditeur), exécutez-le et ensuite regardez le code. Ce sera du charabia de prime abord, mais, en lisant le livre, vous commencerez à voir comment certains modules et fonctions pourraient servir à créer le jeu.

6

Second, while the book says it’s for kids, it is important to explain to young readers what the book can and cannot do. When I showed the book to my seven year old, he got very excited and came up with a laundry list of things he wanted to see in the game I was apparently going to program for him, none of which I could accommodate (with the exception of naming the game Kitchen Confidential: The Ginsu Offensive - yeah, my kid is weird). If the target reader has a deep interest in programming, and understands that the final result will be rudimentary by comparison to even the simplest iPad app she might be familiar with, age shouldn’t be an issue. Otherwise, younger kids with unreasonable expectations and/or short attention spans are not likely to make it all the way through the book without boredom or frustration. As a side note, whenever someone is ready to pay me to write a beginner programming book using the Diary of a Wimpy Kid model (basically bathroom humor and silly cartoons), get in touch. I have some perfect fart jokes analogies for explaining inherited classes. Until my spiral bound New York Times Bestseller comes out, Python for Kids is a perfect substitute!

Deuxièmement, le livre dit bien qu'il est pour les enfants, mais il est néanmoins important d'expliquer aux jeunes lecteurs ce que le livre peut - et ne peut pas - faire. Quand j'ai montré le livre à mon fils de sept ans, il était très enthousiasmé et a fait une liste exhaustive de trucs qu'il voulait voir dans le jeu que j'allais apparemment programmer pour lui, et aucun dans le domaine du possible (sauf le nom du jeu - Kitchen Confidential : The Ginsu Offensive ; oui, c'est vrai, mon gosse est bizarre). Si le lecteur cible s'intéresse beaucoup à la programmation et comprend que le résultat final sera rudimentaire comparé à l'application iPad la plus simple qu'il puisse connaître, l'âge ne devrait pas poser de problème. Dans le cas contraire, les plus jeunes attendant des choses déraisonnables et/ou avec une capacité d'attention limitée, risquent de ne pas réussir à terminer le livre sans ennui ou frustration.

En guise de note marginale, quand quelqu'un sera prêt à me payer pour écrire un livre sur la programmation pour débutants avec, comme modèle, Journal d'un dégonflé (qui contient principalement de l'humour scatologique et des BD idiotes), contactez-moi. J'ai des analogies parfaites avec des blagues de pet pour expliquer des « inherited classes ».

Jusqu'à la sortie de mon New York Times Bestseller à reliure spirale, Python for Kids est l'alternative parfaite.

issue71/critique_litteraire.txt · Dernière modification : 2013/06/24 22:33 de diogene