25 octobre 2016

[Interview] Henri Lepic à propos de la formation Go

Henri Lepic dispense chez nous les formations Go, Go avancé et Go web. Il a accepté de répondre à quelques questions pour nous présenter ces formations.

Human Coders : Bonjour Henri, peux-tu te présenter en quelques lignes ?

henri-lepic

Bonjour Human Coders, oui bien sûr. Je suis un passionné de Go. Dès 2013 j’ai rejoint un Meetup à Paris appelé très aléatoirement Golang Paris. Au début nous étions une trentaine puis nous sommes devenus un groupe de plus de 900 membres. Je suis actuellement freelance ce qui me laisse du temps pour organiser des conférences sur mon sujet favori qui est Go. Au-delà de Go, je viens juste de gagner un concours appelé #FrenchIoT organisé par le groupe La Poste qui me permettra de présenter une solution de sol intelligent au CES en janvier 2017. Parallèlement j’écris un livre sur Go en Français qui je l’espère permettra à beaucoup de francophones de découvrir et ou redécouvrir des concepts du langage.

HC : Quand et comment as-tu commencé à t’intéresser à Go ?

En 2013, j’ai fait de la veille techno, financée par une sous-commission Européenne, pour un projet d’ERP en Afrique. Go avait deux caractéristiques que je visais à l’époque : une faible consommation et une facilité d’apprentissage qui permettent l’autonomie plus facile en termes énergétiques et humains.

golang-sh-600x600

J’ai réellement commencé à utiliser Go avec l’arrivée de projets open source, notamment tout l’écosystème de Gorilla qui permet de faciliter grandement le développement web. À ce moment-là les bibliothèques étaient encore jeunes mais déjà très performantes.

Par la suite, un grand nombre de projets open source ont décollé comme Docker et dernièrement Kubernetes ou encore Go-Micro qui permet de réaliser des micro-services.

Entre temps le runtime de Go n’a fait que s’améliorer et là où nous avions des temps d’arrêt assez longs au passage du ramasse miette sur la version 1.6, nous sommes passés à des temps bien en deçà des objectifs visés qui étaient 10ms à 3ms pour 500Mo. Sur les benchmarks on a vu Go dépasser (sur certains cas d’usage) JAVA puis le C++ et dernièrement même le C.

HC : Peux-tu nous présenter cette formation ? A qui est-elle destinée ? Comment se déroule-t-elle ?

Cette formation est le fruit de tout ce que j’ai appris sur Go ces dernières années. J’y ai mis du cœur en créant les modules de formation pour donner vie à des moyens efficaces pour monter en compétence. Mon objectif dans cette formation est de rendre le participant autonome et qu’il puisse par la suite acquérir d’autres compétences seul ou avec l’équipe avec laquelle il travaille.

Les modules de formation que je propose sont découpés en deux temps :

  • Une première partie où je fais un point théorique ;
  • Une seconde partie où il y a un ensemble d’exercices pratiques à réaliser.

J’ai constitué trois ateliers :

  • La découverte du langage
  • Le développement avancé (programme bientôt en ligne)
  • et enfin le développement de backend (programme bientôt en ligne)

La découverte du langage est destinée pour tous types de développeurs qui viennent fraîchement de se mettre à Go. L’idée derrière est de permettre, à travers des exercices, de découvrir soi-même l’implémentation sous-jacente du langage. Je vous donne un cas concret, par exemple, vous comprendrez comment Go gère la capacité d’un tableau dynamique (slice) au runtime par une fonction que vous aurez écrite.

La majeure partie des exercices pratiques sont écrits avec un client en Go que j’ai créé et qui permet d’afficher l’énoncé du problème et de valider la réponse avec des tests unitaires.

Le développement avancé permet de savoir utiliser les tools fournis en Go. Nous partons des programmes buggés qui ont des fuites de mémoire et nous utilisons des outils pour les détecter et corriger les problèmes. Aussi, l’installation et la configuration des outils se fait au cours de l’atelier.

Cet atelier est pour des participants déjà à l’aise avec la syntaxe et qui veulent approfondir leurs connaissances dans les concepts plus avancés.

Le développement de backend permet d’utiliser Go dans un contexte de la création du webserveur à l’écriture dans la base de donnée. Nous pourrons découvrir les solutions qui sont proposées pour l’utilisation de micro-services et nous développerons nos propres services au cours de l’atelier. Enfin nous verrons l’usage des templates HTML pour injecter des variables et composer du contenu en fonction des contextes. Comme vous l’aurez compris cette formation est destinée aux développeurs backend.

1500x500

 

HC : Pourquoi as-tu décidé de donner des formations ?

Quand vous discutez avec un ingénieur qui a l’habitude d’utiliser Go il vous dira trop souvent que c’est un langage facile. Pourtant plus j’évolue dans ce langage plus je m’aperçois qu’il contient beaucoup de subtilités. Certes il est facile de l’aborder, il ne contient que 25 mots clés. Mais en réalité écrire du Go idiomatique nécessite de connaître un grand nombre de bonnes pratiques du langage et les limites de certains outils. Raison pour laquelle je trouve ce langage exigeant.

La formation est pour moi un des piliers qui permet de lancer une dynamique. Ensuite dès qu’on est mordu on peut approfondir avec des vidéos, des blogs et des livres. Le workshop n’est pas un cours théorique. Ce que je propose est un échange sur du concret appuyé par des exercices pratiques.

Enfin depuis 2013, j’ai rencontré des gens qui m’ont beaucoup inspiré tels que William Kennedy, Francesc Campoy et Rob Pike qui m’ont énormément apporté. La formation est aussi pour moi un moyen de les remercier.

HC : Quel est ton meilleur souvenir de formation ?

J’ai reçu une formation organisée par le groupe #FrenchIoT où nous n’étions pas devant nos écrans bien au contraire. La qualité des intervenants, le niveau d’organisation et le lieu en on fait un moment magique. Ce bootcamp m’a fait revoir ma copie sur les modules de formation que j’avais créés ce qui m’a permis d’avoir de nouvelles idées pour améliorer le workshop et… je vous en dirai pas plus c’est un secret entre moi et les participants !

Merci Henri !

Retrouvez la formation Go et toutes nos autres formations en ligne !