Archives de
Mois : août 2014

Ebene Zolli témoigne sur sa formation en ligne pour apprendre à coder

Ebene Zolli témoigne sur sa formation en ligne pour apprendre à coder

Ebene Zolli a suivi une formation à la programmation Toxicode financée par Pôle Emploi et par le DIF. Plutôt contente de son expérience et de son contact avec son formateur, Jérémy, elle a accepté de partager avec nous ses motivations et ses impressions sur cette formation pour apprendre à coder.

Petite intro sur toi : qui es-tu, quels sont ton profil et ton activité professionnelle ?

Je suis issue d’un cursus d’arts appliqués, donc une branche plutôt graphique orientée design de projet. Je travaille dans le domaine du jeu vidéo en tant que game designer, avec beaucoup d’intérêt pour les mécaniques sociales. A présent je souhaite réaliser mes projets par moi-même, alors j’essaie d’apprendre à programmer depuis quelques temps. J’ai déjà sorti quelques petits jeux, que je vois comme des exercices. C’est en forgeant qu’on devient forgeron !

Qu’est-ce qui t’a donné l’idée de faire une formation en ligne ?

Je n’ai pas le niveau d’un grand programmeur; je sais que pour certains c’est un art, mais pour moi c’est un outil avec lequel je suis obligée de composer, même si on est pas très copains. Jusqu’ici j’ai pu me débrouiller avec des tutoriels et des exercices en ligne et l’aide d’amis patients. Mais mon objectif, ce sont des jeux web sociaux, donc j’ai besoin de gérer des relation multijoueurs. C’est un aspect de la programmation qui m’effraie un peu et sur laquelle j’ai tendance à bloquer. Une formation en ligne pouvait me permettre de « franchir le pas » en étant bien accompagnée.

Comment as-tu entendu parler de nos formations ?

J’ai vu plein de cours généralistes sur le web, mais je voulais une formation qui puisse me permettre d’aborder les besoins spécifiques de la programmation dans les jeux video. De part mon metier je fréquente beaucoup de developpeurs de jeux et j’ai donc demandé dans mes réseaux si ce genre de formation existait en france. Plusieurs vous connaissaient, alors on m’a tout de suite parlé de vous.

Etait-ce ta première expérience de formation en ligne ? Si oui, avais-tu un a priori positif ou négatif sur les formations en ligne ?

Oui, mais dans le domaine on a généralement l’habitude de travailler à distance donc je n’avais aucun problème avec l’idée de travailler en ligne. C’est bien pratique parce qu’on peut faire appel à quelqu’un d’où on veut, en l’occurrence ça nous a permis d’échanger directement sans devoir faire 12h de train pour rejoindre un lieu de formation. Ca s’est passé en conversation orale avec partage d’écran et d’outils (en gros jsfiddle et git). Et ça fonctionne toujours très bien.

Quel était le contenu de ta formation ?

Nous avons réalisé un petit serveur en POO pour un jeu multijoueurs en temps réel, sous nodeJS.

Quel était ton niveau avant la formation ?

Très basique; je savais faire des jeux simples en javascript avec canvas; j’avais déjà abordé la POO sur certains exercices mais c’était inhabituel pour moi d’en pratiquer. La formation à été l’occasion de s’y remettre un peu plus sérieusement.

Quel était ton objectif pour cette formation ? A-t-il été atteint ?

Oui, ça m’a bien aidée. J’ai pu voir que c’était à ma portée avec un peu de pratique, c’était une bonne façon de démystifier la chose. Maintenant, il faut transformer l’essai.

Les bons points de ta formation avec Jérémy ?

C’est quelqu’un d’attentif et de pédagogue, ce qui est bien utile quand on a comme moi des apprehensions à défaire. Et c’est aussi une personne sympathique, que j’aurai plaisir à recroiser.

Cette formation t’a-t-elle donné envie d’aller plus loin ?

Eh bien n’étant pas passionnée de programmation je ne peux pas dire que j’ai subitement envie d’en faire plus que nécessaire, mais ça m’a permis de poursuivre ma voie, c’est déjà super.

A qui recommanderais-tu cette formation ?

A toute personne qui en aurait besoin. :3

Et finalement, que recommanderais-tu à des gens qui veulent se faire financer une formation ?

Vérifiez auprès de votre entreprise ou de Pôle Emploi si vous avez des heures de DIF – c’est géré par l’OPCA de votre dernier emploi. Vous avez droit à quelques heures d’une formation de votre choix si vous avez été salarié auparavant, et c’est une bonne aide. En tant qu’ancienne employée ma formation a été financée moitié par ce dispositif, moitié par une aide combinée de Pôle emploi, qui a été assez moteur dans les démarches pour engager la formation et que je remercie au passage.


Pour en savoir plus sur l’activité d’Ebene Zolli : http://fenntasy.com/wanuts/

Et si vous souhaitez vous aussi vous lancer dans la programmation (même grand débutant ! ) ou bien développer une expertise plus avancée, découvrez nos formations Toxicode. Faites-nous part de vos besoins et disponibilités en remplissant notre questionnaire et nous vous proposerons la formation la plus adéquate : http://www.toxicode.fr/formations


Apprendre à coder à des réfugiés birmans : l’interview de Pierre U.

Apprendre à coder à des réfugiés birmans : l’interview de Pierre U.

Il y a quelques semaines, Pierre Usselmann s’envolait pour la Thaïlande pour aller apprendre à coder à des réfugiés birmans situés en Thaïlande. C’est juste après son retour que j’ai recueilli ses impressions sur cette aventure humaine.

Alors, premières impressions au retour ?

Pierre U. : Les jeunes réfugiés étaient vraiment motivés, ils avaient soif de connaissance et les conditions de cours étaient plutôt bonnes dans un endroit si reculé.

Comment t’est venue l’idée de réaliser ce projet ?

Pierre U. : J’ai toujours aimé former d’autres personnes, que ce soit des stagiaires, amis, membres de famille. Quand tu m’as parlé de ces réfugiés birmans en Thaïlande, j’ai voulu aller voir sur place et aider des gens motivés et qui n’ont pas accès à ce type de formation.

Justement tu parlais des conditions de cours… Tu peux décrire un peu quelles étaient tes conditions de vie et les conditions dans lesquelles tu as fait cours ?

Pierre U. :  Je vivais dans un village à une heure à pied d’un camp de réfugiés birmans situé au Nord de la Thaïlande. Le village était composé de maisons en bambou, c’était des conditions assez sommaires. Les jeunes vont pêcher pour se nourrir, ils récupèrent les eaux de pluie dans des réservoirs. Pourtant ils avaient accès à internet grace à une antenne wifi connectée au village thaï voisin. J’étais hébergé gratuitement dans les locaux d’un organe de presse karen, ktimes, et également nourri. J’enseignais le code au sein du Karenni Community College. Au départ, je devais donner des cours de code uniquement l’après-midi, mais finalement, j’ai fini par donner des cours le matin, l’après-midi et le soir, car les élèves en demandaient toujours plus. Et ils ont voulu poursuivre ce rythme le week-end également, ils sont même allés jusqu’à rester dormir à l’école pour pouvoir suivre plus de cours ! Quant aux conditions de cours, l’école avait fourni un ordinateur à chaque élève le temps de la formation et un rétroprojecteur dans la salle de classe.

Apprendre à coder à des réfugiés, pas trop dur ? Quelles difficultés as-tu rencontrées en tant que professeur volontaire ?

Pierre U. : J’avais déjà formé quelqu’un en anglais, mais la personne maîtrisait mieux la langue. Avec les réfugiés birmans, il y a eu quelques petits soucis de communication car ils ne maîtrisent pas parfaitement l’anglais. Je ne suis pas non plus professeur de métier donc ma pédagogie laissait peut-être un peu à désirer. Du coup, ça n’a pas forcément été simple de leur expliquer certains concepts. Par contre, le point positif, c’est qu’il y avait des profs locaux qui suivaient également mes cours. Après que je m’en suis rendu compte, j’ai pu me focaliser davantage sur eux pour m’assurer qu’ils comprenaient bien et puissent expliquer et transmettre leurs connaissances aux élèves en Birman, même lorsque je ne serai plus là.

Tu les as formés à quoi principalement ? Donne nous un aperçu du contenu

Pierre U. : Je leur ai demandé si ils connaissaient l’HTML. Ils m’ont répondu qu’ils avaient déjà suivi des cours d’HTML. Quand je leur ai posé davantage de questions, j’ai pu me rendre compte qu’ils connaissaient les balises, mais lorsque je leur ai demandé de créer une simple page web, ils ne savaient pas comment faire. J’en ai donc déduit qu’ils avaient simplement suivi quelques cours théoriques mais n’avaient jamais pratiqué. Je leur ai donc appris l’HTML et le CSS : les balises classiques en HTML et les selecteurs en CSS.

Et pour la suite, que prévois-tu ?

Pierre U. : J’aimerai bien retourner là-bas et tester nos outils Toxicode en direct avec eux, former des élèves plus jeunes et plus vieux et pourquoi pas essayer de monter quelque chose sur place pour leur permettre d’accéder à des formations et à un emploi. En attendant, je continue à les suivre à distance, je leur envoie des ressources et des exercices pour les plus motivés.

En conclusion, quels points positifs et négatifs retiens-tu de ton expérience ?

Pierre U. : Rien à dire de négatif , à part que c’etait trop court ! Quant au positif, j’ai beaucoup appris et beaucoup transmis en l’espace de deux semaines et j’ai vraiment envie de retourner les aider davantage.

Et peut être une question bonus : quels conseils pour les gens qui veulent se lancer comme toi et faire du volontariat ?

Tout simplement, s’y prendre un peu à l’avance, préparer des plans de cours et trouver des exercices ludiques à faire avec eux; ne pas se préoccuper des conditions de vie un peu sommaires; être prêt à enseigner beaucoup pour répondre à l’enthousiasme des élèves. Et pour plus de renseignement et d’infos, qu’ils n’hésitent pas à me contacter !

Histoire pour apprendre à coder – Le boulier

Histoire pour apprendre à coder – Le boulier

Lorsque l’on souhaite apprendre à coder, on pense que l’on va apprendre un métier qui est très récent. C’est vrai, si vous apprenez un langage de programmation votre objectif sera certainement de vouloir réaliser des sites web ou des logiciels via un ordinateur. Cela fait partie des nouveaux métiers qui ont vu le jour avec l’essor des nouvelles technologies.

Si je vous demandais à quand remontent les origines des langages de programmation, je pense que la majorité des lecteurs de ce billet de blog estimerait que cela remonte à moins d’un siècle. C’est là qu’il peut sembler y avoir un paradoxe. Même si le métier de développeur web ou de développeur de logiciel est très récent dans notre Histoire, l’origine de l’informatique et des langages de programmation est bien plus lointaine que l’on ne pourrait le penser.

En réalité, l’informatique que l’on connaît aujourd’hui est le résultat final de trois innovations humaines (que je traiterai à travers trois billets de blog) :

  • La mécanisation des opérations de calcul
  • La programmation
  • La notion d’algorithme

Dans ce premier billet de blog, je vais revenir sur la mécanisation des opérations de calcul.

Qu’est-ce la mécanisation des opérations de calcul ?

L’homme a cherché depuis plusieurs siècles des solutions pour calculer plus rapidement. Les méthodes pour compter et calculer peuvent être radicalement différentes d’un endroit du globe à l’autre.

Ainsi, le boulier, essentiellement en Asie, est un outil mécanique utilisé pour calculer, et ce depuis des siècles.

Dans un article du journal Le Monde du 26 novembre 1987 (réservé aux abonnés), un journaliste avait suivi des expériences faites dans des classes pour utiliser le boulier. Il est expliqué que lors de concours de calcul au Japon, le choix du boulier était supérieur à la calculatrice électronique. Le boulier permet même de calculer plus rapidement qu’une calculatrice !

« Avec le boulier, un enfant est capable de raisonner sur un nombre qu’il ne sait pas désigner », observe Mme Josette Huso, institutrice en CP à Grigny.

Le boulier offre la possibilité d’acquérir une réflexion visuelle où l’on va déconnecter le nombre de son aspect abstrait. On ne visualise que des boules. De plus, cela permet de voir les opérations dans leur ensemble. Une addition ou une soustraction sont des opérations pratiquement identiques dans cette méthode de calcul alors que dans les pays occidentaux, on va les traiter comme deux éléments d’apprentissage distincts. Les élèves qui ont appris à calculer avec un boulier sont souvent meilleurs en calcul mental. Ils ont une méthode de calcul différente.

En développement, c’est la même chose. En fonction de la façon dont sera écrit le code, on va avoir une réflexion différente pour arriver à un résultat. C’est pour cette raison qu’il est important de maîtriser les bonnes pratiques de la programmation car cela permet d’avoir un code plus efficace et lisible.

Le boulier illustre le paradoxe que l’on retrouve au Japon mais également dans le développement et l’informatique. Nous avons des outils ultra modernes tout en utilisant des logiques, des méthodes, qui sont ancestrales (même si l’usage du boulier n’est pas nécessaire pour apprendre à coder). Cette méthode est ancienne et les bouliers sont des objets rustiques dont la puissance pédagogique a traversé les siècles.

A l’heure du débat sur la nécessité d’apprendre le code à l’école, cela pourrait commencer par l’apprentissage de certains socles. L’usage d’un boulier dans une classe pourrait, paradoxalement, être un élément de l’apprentissage du code à l’école.

C’est donc assez amusant de constater que nos élèves (ceux qui ont eu des leçons avec un bouliers) « apprennent » depuis des décennies des logiques courantes en programmation à l’école…

Pour aller plus loin, je vous invite à comprendre le mécanisme du boulier à travers cette vidéo et pourquoi pas vous amusez avec un boulier … numérique !

Google Analytics pour les jeux JavaScript

Google Analytics pour les jeux JavaScript

Lorsque l’on crée son jeu HTML5, on ajoute souvent le script de Google Analytics sur sa page web, afin de savoir combien de personnes jouent à notre jeu, et d’autres infos utiles comme leurs pays, leurs langues et leurs navigateurs. Mais si on utilise l’API Google Analytics, on peut faire bien plus que ça.

Vous aussi, devenez de véritables big brothers grâce à cet article qui vous expliquera toutes les ficelles de l’espionnage de vos joueurs.

toxicode_blog01

Que pouvez-vous enregistrer ?

Virtuellement tout ce pour quoi vous pouvez donner une valeur sous forme de chaîne de caractères à votre utilisateur. Par exemple : le niveau actuel, le nombre de Game Over, le nombre de clics, en combien de temps il passe sur le tutoriel, le niveau de difficulté choisie, est-ce qu’il a désactivé le son…

Cependant, gardez le tout le plus simple possible. Google Analytics ne vient pas remplacer votre base de données, et il n’est pas intéressant de mettre par exemple l’ensemble de l’inventaire dans une variable que vous sauvegarderez. En faisant ça, vous perdrez la possibilité de trier via les valeurs comme vous pourriez le faire avec des valeurs simples.

Il est également possible d’enregistrer des évènements (le joueur bat un boss, finit une partie etc.). Les fonctionnalités du site Google Analytics vous permettront ensuite de visualiser la fréquence des évènements sous forme de statistiques. Vous pourrez ainsi observer si l’ajout d’un nouveau boss dans le jeu le jeudi 30 février augmente le nombre de Game Over, ou autre…

Enfin, vous pouvez segmenter vos joueurs en leur donnant des tags particuliers. Typiquement, vous pouvez ainsi dire à Google que le visiteur a payé son abonnement, a déjà acheté un contenu In-Game, que c’est un nouveau joueur. Ou alors que c’est un joueur qui n’est pas venu depuis plus d’un mois.

Grâce à ces segmentations, vous pourrez ensuite trier les joueurs sur l’interface de Google Analytics. Vous pourrez ainsi voir l’effet de l’ajout de votre nouveau boss sur les nouveaux venus VS sur les joueurs vétérans.

Tout ceci vous permettra de rendre votre jeu plus fun, plus addictif, ou même plus rentable selon vos aspirations personnelles.

toxicode_blog02a

Rentrons dans la technique

Avant toute choses, il faut savoir qu’il existe deux versions de l’API Google Analytics : ga.js et analytics.js. La seconde (plus récente) sera utilisée dans cet article.

Elle permet entre autre de déclarer des évènements et variables à la volée (il fallait auparavant les déclarer depuis l’interface web), et se charge de manière asynchrone.

Voici un exemple du script à inclure dans la page.

(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');

ga('create', 'UA-XXXX-Y', 'auto');
ga('send', 'pageview');

La première partie très condensée est un peu de magie vaudou made in Google, qui permet de déclarer la fonction ga, et de commencer à charger le script de Google Analytics. Une fois le script chargé, il remplace ga, tout en lançant la série de méthodes que l’on aurait pu appeler entre temps. De cette façon, il n’y a pas besoin de faire de callback une fois le fichier chargé, tout est transparent.

Ensuite, la première ligne du deuxième bloc initialise l’analytics avec votre compte utilisateur (il faut mettre son identifiant à la place du UA-XXXX-Y qui n’est qu’un placeholder). Le troisième paramètre, ‘auto’, se réfère au paramètres que vous pouvez donner à votre Tracker Analytics.

Par exemple, vous pouvez interdire d’envoyer des données si le domaine n’est pas le bon (pour empêcher d’envoyer des données sur votre serveur de développement par exemple). Plus d’infos sur les possibilités ici. Mais sachez que vous pouvez par exemple y autoriser les envois de données depuis localhost, si vous souhaitez tester le fonctionnement de Google Analytics.

La deuxième ligne du second bloc envoie une page vue. C’est par défaut le seul comportement de Google Analytics. Elle peut également prendre un troisième paramètre, qui configure les propriétés de la page vue.

Vous pouvez l’utiliser par exemple pour overrider l’url que vous envoyez, afin de savoir si le joueur est dans le menu de votre jeu, ou dans les options, ou sur l’inventaire…. Pensez à rappeler cette commande à chaque fois que vous voudrez envoyer une valeur de pageview.

Envoyer des events

Pour envoyer des events, il suffit d’utiliser la méthode send :

ga('send', 'event', 'playerGotItem', 'diamondSword', 5);

Le premier paramètre, « send« , est commun avec la méthode pour envoyer une pageview. C’est en réalité le nom de la méthode commune à tout envoie de donnée sur votre Tracker Analytics.

Le second paramètre, « event« , permet de dire que vous envoyez un évènement, par opposition à une pageview par exemple.

Le troisième paramètre, « playerGotItem » ici, est le nom de la catégorie d’évènement. Dans le cas d’un jeu, considérez le comme le nom de l’event. Sentez vous libre de le remplacer par ce que bon vous semble.

Le quatrième paramètre est normalement le nom de l’event. Dans le cadre d’un jeu, il est plus intéressant de le considérer comme une valeur. Par exemple, je dis ici que le joueur a obtenu l’épée en diamant. Ce paramètre est optionnel.

Enfin, le dernier paramètre est normalement la valeur numérique de l’évènement. Utilisez la (ou non, elle est optionnelle), pour stocker des informations complémentaires. Par exemple, lors d’un Game Over, vous pouvez y stocker le niveau actuel du joueur. L’intérêt est que cette valeur étant numérique, vous pouvez utilisez Google Analytics pour faire des graphs l’utilisant.

toxicode_blog02b

Segmentez vos utilisateurs avec les dimensions

Pour segmenter vos utilisateurs (premium / non premiums par exemple), il est d’usage d’utiliser les dimensions. Dans notre cas, ça peut être premium, non-premium, beginner-user, advanced-user…

Vous devez définir pour chaque dimension un index entre 1 et 20 (entre 1 et 200 si vous êtes un utilisateur Google Analytics payant). Vous pouvez ensuite déclarer votre dimension en utilisant :

ga('set', 'dimension5', 'premium-user);

Dans cet exemple, vous dites que l’utilisateur est un utilisateur premium, ce qui le place dans la dimension numéro 5.

Vous pourrez ensuite trier vos utilisateur dans l’interface Google Analytics en fonction de ces différents critères.

C’est tout pour aujourd’hui. N’hésitez pas à poster vos astuces, questions, corrections en commentaire.

Illustrations par Lou Pine (www.loupine.fr)