Mickael Ferrer dispense chez nous les formations .Net Débutant avec C# et programmation parallèle avec .Net avec C#. Il a accepté de répondre à quelques questions pour nous présenter ces deux formations.
Human Coders: Bonjour Mickael, peux-tu te présenter en quelques lignes ?
Je suis essentiellement un geek :)
L’informatique est en effet, depuis que je l’ai découverte sur ma calculatrice au collège, le fil rouge de ma scolarité et de ma vie professionnelle, bien que j’aie un peu zigzagué pendant mes études supérieures, pour finalement obtenir un diplôme d’ingénieur IT/finance.
J’ai commencé ma “carrière” comme développeur pour la recherche quantitative d’une banque d’investissement, puis je suis devenu, à mon corps défendant, développeur commando (c’est-à-dire au plus près des opérateurs de marché), ce qui fût une très belle et enrichissante expérience, dont l’exigence a changé ma vision de l’IT.
Plus tard le virus de l’enseignement m’a (re)pris et j’ai démissionné pour m’y consacrer, ainsi qu’à d’autres projets, à plein temps.
Je tiens un modeste blog technique sur les technologies .Net (mais pas que) : pragmateek.com
HC: Quand et comment as-tu découvert le développement .Net ?
C’est un peu le destin qui s’est acharné :)
Comme beaucoup j’ai commencé avec C et C++ puis j’ai été initié à Java durant mes études.
Mon premier stage devait être du PHP, ce fût de l’ASP.Net avec C#.
Pour le second on m’avait appâté avec du Python avec Qt, ce fût du C# avec WPF.
A partir de là tout s’est enchaîné : un 3ème stage puis une mission, dans le même environnement, qui m’ont permis de construire mon expertise .Net.
Avec le recul j’en suis très heureux, .Net est vraiment un bel écosystème, que je continue toujours à explorer, et que je n’aurais sans doute pas autant approfondi autrement, me concentrant sur Java et C++.
Aujourd’hui une partie de ma valeur ajoutée en tant qu’expert et formateur est ma capacité à mettre en perspective ce qui se fait en .Net/C# avec Java et C++.
HC: Peux-tu nous présenter ces deux formations ? A qui s’adressent-elles ? Comment se déroulent-elles ?
La formation .Net débutant s’adresse aux développeurs souhaitant monter rapidement en compétence sur la plateforme .Net avec C#.
Elle est très progressive et amène, autant que faire se peut, chaque concept logiquement.
Une grosse partie est consacrée à la programmation orientée objet qui, avec la programmation parallèle, est l’un des domaines les plus fondamentaux et pourtant les moins maîtrisés par les développeurs, toutes technologies confondues.
Ce qui n’aide pas les développeurs changeant d’écosystème, c’est que les conventions choisies par chacun varient : un exemple marquant est celui de la virtualité des méthodes : explicite en C++, implicite en Java (ce qui explique que beaucoup de développeurs Java ne savent pas ce qu’est une méthode virtuelle alors qu’ils en manipulent plus que n’importe quel autre développeur :)) et … explicite en C#.
J’essaye donc au maximum de mettre les choses en perspective avec les technologies connues de mon auditoire, typiquement C++ et Java, dans la mesure bien sûr de mes connaissances dans ces domaines.
Je mets aussi beaucoup l’accent sur les tests unitaires que je considère comme essentiels mais qui font encore débat dans certaines équipes.
La moitié du temps est consacrée à la pratique qui est très importante pour fixer les fondamentaux, dont la maîtrise est un pré-requis à l’assimilation durable des connaissances.
La formation programmation parallèle s’adresse à des développeurs .Net qui connaissent bien les fondamentaux de .Net et de C# et veulent découvrir les nombreux outils de programmation parallèle disponibles en .Net.
Comme toute plateforme riche et mature .Net possède souvent plusieurs outils pour résoudre une problématique donnée, outils qui ont été ajoutés et affinés au fil du temps, rendant parfois les précédents obsolètes mais d’autres fois ne les remplaçant pas complètement.
Sans le recul suffisant on a vite fait de faire le mauvais choix et malheureusement cela engage souvent pour plusieurs années de maintenance.
Ce problème est particulièrement vrai pour la programmation parallèle : du simple thread au pipeline push .Net propose un spectre d’outils très large (et à ma connaissance inégalé dans les écosystèmes mainstream).
Le déroulement de cette formation est plus sur-mesure : certains vont vouloir pratiquer tout de suite parce qu’ils ont un projet dans la foulée, d’autres sont surtout là pour capter un maximum de connaissances et veulent surtout avoir un panorama : les outils, les bonnes pratiques, les pièges… et ils pratiqueront directement sur le terrain au moment voulu, souvent au fil de l’eau.
Pour toutes mes formations les maîtres-mots sont : la précision et la rigueur technique, le flou artistique n’ayant pas sa place en programmation, et l’interactivité chacun pouvant intervenir à tout moment, les digressions (à l’unanimité) pouvant avoir beaucoup de valeur ajoutée.
HC: Pourquoi as-tu décidé de donner des formations ?
J’ai toujours aimé partager mes connaissances informatiques, que ce soit en aidant des camarades pendant mes études, en participant, parfois avidement, à des forums, plus tard en échangeant avec mes collègues, puis en écrivant sur mon blog (pragmateek.com).
J’avais pensé commencer la formation dès la fin de mes études mais ayant eu l’opportunité de travailler au sein d’une super équipe tant humainement que techniquement j’ai débuté comme beaucoup une carrière de développeur.
Et ce fût la bonne décision puisque j’ai été mis dans des situations qui m’ont amenées à mûrir rapidement et à revoir ma vision du développement logiciel : sous contrainte forte de temps et de résultats seul le pragmatisme fait loi.
C’est cette “révélation” qui est à l’origine du nom “Pragmateek” mélange de geek (avec les bons côtés comme la passion et l’expertise technique mais aussi les mauvais comme le dogmatisme et le décalage avec les objectifs du business) et de pragmatique qui est une qualité essentielle mais qui manque parfois cruellement.
Ainsi, en plus de connaissances techniques, qui sont la première chose que viennent chercher les participants à mes formations, je fais mon possible pour transmettre cette philosophie, en mettant notamment en garde contre l’overengineering, qui n’est jamais bien loin, et les mauvais exemples vécus sur le terrain ne manquent pas pour illustrer mon propos, ne serait-ce que parce que moi-même je l’ai pratiqué, mais je me suis soigné et je suis en rémission. :)
HC: Quel est ton meilleur souvenir de formation ?
Il m’est arrivé une fois de préparer une formation “à l’aveugle”, sans avoir été mis préalablement en relation avec les participants et sans même connaître leurs profils exacts, juste qu’ils avaient besoin de maîtriser les outils de programmation parallèle (et oui ce sont des choses qui arrivent quand il y a 5 acteurs dont 2 intermédiaires).
Dans le doute, afin d’avoir du contenu même face à des experts, j’ai donc développé une formation .Net (très) avancée abordant la plupart des points tricky, et allant chercher des sujets tout au fond de .Net pour lesquels Google n’aide plus, et peut même tromper quand il remonte les propos de personnes qui ont compris les choses au mieux partiellement, au pire à l’envers, et il faut alors en revenir à la bonne vieille méthode de l’essai-erreur pour comprendre le comportement d’un composant.
Finalement les participants avaient un profil .Net junior mais ils étaient très expérimentés en C++ et ils ont vraiment apprécié de ne pas passer trop de temps sur les bases comme la syntaxe de C# et la POO, et d’être mis directement en présence de tout ce qui n’est pas évident et que l’on apprend généralement à ses dépends sur le terrain après avoir commis des erreurs, sur plusieurs années.
Cette formation, un peu à part par son spectre et sa profondeur, est, en tant que telle, pour le moment restée un one-shot, mais la partie qui était consacrée à la programmation parallèle (plus d’un tiers) est devenue une formation à part entière, que j’ai présentée plus haut.
HC: Merci Mickael !
Retrouvez le programme complet de ses formations .Net Débutant avec C# et programmation parallèle avec .Net avec C# sur Human Coders Formations.