Comment apprendre efficacement en tant que développeur
Ça fait un bail que j’ai pas touché au blog dis donc! Avant de me jeter des pierres j’aimerais dire que j’ai une bonne excuse : j’ai changé de boulot et de langage de programmation principal. Même si j’étais au point sur ce que j’allais faire, je ne masterisais pas comme le langage que j’utilisais auparavant depuis des années! Et du coup j’ai beaucoup appris, mais alors je peux vous dire que j’ai appris en TABARNAK ! Et puis vite en plus et je continue là en ce moment. Du coup, ça vous dit du free tips ?
Le seul truc qui marche
Bon alors si vous avez lu mes anciens articles vous savez ce que je vais vous dire car je prêche ça depuis des lustres : le seul truc qui marche c’est la pratique. Mais aujourd’hui on va détailler comment. Etape 1 : il faut vous trouver un projet. Je me moque de la taille, du langage, si c’est pour la NASA ou pour Mamie, peu importe mais il vous faut un projet, un sujet, un objectif à atteindre. Il vous faut une quête comme sur WoW vous pouvez même vous mettre une récompense à la fin si ça en motive certain \o/. Seule règle : un objectif raisonnable. Commencez pas à vouloir concurrencer Google sur l’intelligence artificielle parce-que ce projet là vous allez jamais le finir. Exemple d’objectif raisonnable : Je veux apprendre React => Je me donne pour objectif de créer un système de galerie d’images paramétrables.
OK maintenant que vous avez votre quête, étape 2 : c’est l’étape « YOLO » et probablement la plus fun de toute. L’idée est d’en apprendre juste assez sur le site officiel pour démarrer. Concrètement c’est faire la partie « Installation » et la partie « Quick start » du Framework/Language que vous voulez apprendre. Et une fois ça fait, juste s’amuser avec la techno, tenter des choses sans trop savoir, explorer l’API, les fichiers, faire planter tout le bordel. Bref mettez vos grosses mains dedans et voir comment c’est fait et comment ça réagit. Bien sûr tout ça en tentant de commencer votre projet. L’objectif est d’analyser ce que vous comprenez, ce que vous ne comprenez pas et passez à l’étape 3 avec cette expérience.
L’étape 3 consiste d’abord à trouver de bonnes ressources. Que ça soit article, livre, vidéo youtube ou ce que vous voulez et d’apprendre de cette ressource en connaissant déjà le sujet de loin grâce à l’étape 2. Le but c’est de déclencher le « HHAAN D’ACCORDD » moment quand tout devient clair et que vous comprenez ce concept incompréhensible dans l’étape précédente. C’est bête mais ce déclic de connaissance est excellent pour asseoir une connaissance et la garder!
Etape 4 : JUST DO IT ! C’est le moment de vraiment commencer votre projet et de mettre en pratique ce que vous avez appris. Vous êtes coincé? Et bien répétez l’étape 3 jusqu’à acquérir tout ce que vous devez savoir pour réussir votre (raisonnable!) objectif. By the way arrivé à cette étape il vous faut une vrai organisation et un découpage des tâches de votre travail. Allez voir un de mes anciens et fabuleux article très réussi qui s’appelle : « Comment enfin finir votre projet dev perso« .
Le secret pour rien oublier
En fait c’est pas vraiment secret. Y’a même de grandes chances que vous ayez pratiqué ça plus jeune, genre à l’école par exemple. Personnellement je ne l’ai pas fait car j’étais pas mal fainéant mais les premiers de la classe faisaient toujours ça pour rien oublier. OK Fin du tease : les tronches faisaient des fiches ! Mais si ! Les petits papiers en mode Trivial Pursuit avec la question et la réponse blindées de surligneur jaune fluo dessus.
Alors vous allez me dire : « Je suis pas un gamin, je vais pas faire des fiches, j’ai pas le temps et j’ai la flemme » et je suis totalement d’accord avec vous. Mais c’est là qu’intervient AnkiDroid (Android/iPhone/Linux/Windows/Mac) et la magie du 2.0 super connecté de la mort. Concrètement cette appli vous permet de faire des collections de fiches numériques avec une question et une réponse pour réviser quand vous le voulez, comme vous le voulez. C’est donc dispo sur votre téléphone et votre pc/mac, évidement vous pouvez sync’ vos collections entre les deux. Ce qui est super important avec cette technique c’est que vous devez faire vous même vos questions et réponses. Commencez pas à télécharger des collections de questions/réponses toutes faites (oui c’est possible) en mode grosse flemme car on veut faire travailler la mémoire ici! Vous voulez créer vous mêmes vos collections et vous même vos questions pour vos séances de révision express sur votre téléphone. C’est ça qui va pinger votre mémoire. Et elle se passe là la magie de la mémorisation!
Si vous lisez ça vous êtes un être humain. En fait je peux pas être sûr à 100% pour le coup, mais je pars du principe que c’est le cas. Et comme tous les êtres humains votre cerveau quand il absorbe une nouvelle info en quelques jours il la vire ! Oui rien à foutre le cerveau, il wipe tout ce que vous avez appris comme ça d’un coup. A part si vous êtes un génie à mémoire absolue, y’a rien à faire, c’est comme ça on oublie comme des poissons rouges. Enfin SI, y’a un truc pour arranger notre cas et la science appelle ça la réactivation! Ré-activer la connaissance en la révisant de façon ponctuelle étaler sur plusieurs jours. Et des fiches numériques qui vous suivent partout c’est PARFAIT pour ça.
Non mais sans déconner on fait de la science (ou presque) là les gens. Brain control je vous dit. Sans rire cette réactivation est utilisée par énormément de gens. Fréquemment par ceux qui doivent absorber des camions entiers d’informations. Et ce qui est bien avec cette technique c’est qu’une réactivation ça prend peu de temps une fois que les fiches sont faites. C’est d’ailleurs cette argument qui m’a intéressé à la base. Je peux sortir mon portable à tout moment lancer une session de 2/3 minutes et me rappeler (et ancrer un peu plus cette connaissance dans ma tête) de quelque chose que j’ai appris y’a 1 mois de ça. Le moment nul ou t’attend quelqu’un dans la rue qui est évidemment en retard et que tu te mets à scroller Facebook comme un idiot c’est fini! Et tout ça 100% gratuit. Enfin à part sur iPhone (lol je sais pas les gars de l’appli aiment pas les iPhones apparemment).
Lire des bouquins
Les blogs et les tutos c’est bien, mais si vous voulez gratter et aller plus loin il vous faut un bouquin. <- Non mais vous avez vu cette rime ? \o/ Je commence à gérer ma prose à force d’écrire des articles. Bref oui une autre manière complémentaire d’imprimer de l’information dans votre cerveau est de lire de l’information imprimer dans un livre. En opposition à l’apprentissage actif dans la section d’avant avec les fiches, ici on va plus être passif dans la façon d’apprendre. Un livre va vous donner de l’information de qualité et en rentrant dans les détails. Et c’est difficile de trouver ce genre de contenus sur internet ou la plupart des tutos sont une suite de copier/coller de code pour la plupart des gens 🙂 Bref oui lire des livres c’est le bien et vous devriez sérieusement vous y mettre.
Alors je vous vois arriver à 200km vous allez me dire : « Ouais t’es gentil, tu m’as l’air sincère, mais j’ai pas le temps de les lirent tes bouquins. » et encore une fois je comprends et c’est exactement ce que j’ai pensé au départ. Alors deux conseils : d’abord chercher et choisir un bouquin qui va vraiment vous intéresser et vraiment vous apporter énormément pour votre travail de tous les jours et ça de façon immédiate. Il faut que dès les premiers chapitres le déclic « j’aurais dû lire ça depuis longtemps » pop dans votre tête sinon le bouquin va servir à réajuster un de vos écran plus haut. Quand vous reachez ce sentiment dans une lecture croyez moi vous ne perdez plus votre temps et vous allez en trouver encore plus du temps tout d’un coup.
Ensuite je dirais que le meilleur moment pour ce genre d’activité est le soir avant d’aller dormir. Un chapitre par soir avant d’aller dormir. Comme les enfants et leur petites histoires. Déjà parce que la science a prouvé que lire avant de dormir aidait fortement à la mémorisation, aussi parce que c’est mieux que de regarder une rediff des feux de l’amour non ?
Les livres c’est la vie, certains en ont même fait une passion et lisent deux livres par semaine. Je dis pas qu’il faut lire autant, mais avoir son petit bouquin à lire tous les soirs c’est comme les petits raccourcis qu’on apprend pour son IDE. Une fois qu’on a essayé on peut plus s’en passer.
Bon OK et je lis quoi ?
Essential Skills for the Agile Developer: A Guide to Better Programming and Design
Si malgré mon argumentaire infaillible la flemme est plus forte dans votre tête : n’en lisez qu’un et lisez celui-là. Ce livre c’est de la folie honnêtement. En résumé ce bouquin vous apprend à mieux organiser votre code et votre façon de voir votre code dans un langage objet. Depuis la lecture de ce livre ma manière d’aborder une problématique via mon code est radicalement différente. Beaucoup plus méthodique et surtout beaucoup plus efficace. J’ai gagné une chose très importante : plus de confiance dans mes choix techniques. J’ai également gagné en vélocité grâce à la programmation par intention par exemple. Oui comme t’as pu le voir dans le titre du livre c’est en anglais, mais tu parles anglais c’est pas gênant. Et les exemples de code sont en Java, mais on s’en fout, c’est très très compréhensible et ils ne sont là que pour illustrer la façon de penser du design du code. Je viens de PHP/JavaScript j’ai eu aucun problème à tout comprendre. Bref achetez moi ce livre, il est pas long, 200 pages à peine, et il va tout changer dans votre code croyez-moi.
Vous savez pas ce qu’est un Patron de conception (Design Pattern) en programmation objet ? Vous connaissez le concept mais très globalement et/ou vous ne les connaissez pas tous? Ce livre est fait pour vous! Les design pattern, si vous faites de l’objet, c’est la vie, la mana, la base, l’alpha et l’oméga bref c’est important. Et quand j’ai commencé à lire ce livre je connaissais vaguement et je pensais honnêtement que ça suffisait largement. Et là un monde est apparu devant moi et en quelques pages j’étais hooked comme disent les jeunes. Toujours pareil en anglais et en Java mais encore une fois c’est juste des détails et ça empêche en rien l’apprentissage. Par contre je vous cache pas que celui là est plutôt fat, on parle d’un gros 450 pages.
Soft Skills: The software developer’s life manual
Ce livre n’est pas vraiment un bouquin technique. Mais il est indispensable à votre carrière. J’aurais aimer lire ce bouquin plus jeune mais tant pis. Il m’a beaucoup aidé et il continue chaque jour à m’aider. C’est un livre sur les softs skills. C’est ce livre qui ma pousser à faire ce blog. C’est ce livre qui m’a pousser à apprendre, comprendre et partager plus. Ce livre est un cheat code pour votre carrière. Ce livre va vous donner la motiv’ et vous faire réfléchir à vos choix passé et futur. Ce livre est une sorte de coach pour votre vie professionnel en tant que développeur. Et croyez moi on en a tous besoin ! Ce livre est une source d’inspiration et va changer votre façon d’aborder votre carrière dès la première lecture. Bref vraiment, lisez moi ce livre, vous ne le regretterez pas.
Être le plus bête dans la salle
Et nous voilà arrivés au point le plus important de l’article. Que ça soit au boulot ou à tout autre endroit où vous êtes censé apprendre, démerdez-vous pour être le plus bête dans la salle, c’est CRUCIALE! Alors quand je dit plus « bête » c’est pour faire un titre accrocheur, en vérité c’est plus « celui qui s’y connaît le moins » sur un sujet donné. C’est la façon la plus efficace et la plus rapide d’apprendre. Mon dieu que c’est efficace, en élevant le niveau autour de vous, inévitablement vous vous tirez vers le haut et réhaussez vos attentes envers vous-même.
Je dirais que la manière la plus puissante d’appliquer ce conseil c’est un nouveau boulot très exigeant dans lequel vous êtes en retard par rapport au niveau général. Ho boy ! Ça c’est intense, on parle plus d’accélération là, c’est comme être dans une grosse fusée, va falloir s’accrocher ! Mais en quelques mois vous apprenez beaucoup plus qu’en quelques années à ce boulot rassurant et « facile » que vous connaissez par cœur. J’en parlais déjà dans un article précédent, c’est pas une partie de plaisir -surtout au début- mais ça le devient rapidement et sans vous en rendre compte vous avez pris 300 niveaux d’xp !
Après il y plein d’autres moyens d’être le plus bête dans la salle. Un des mes préférés reste le meet-up. Ho les meet-up c’est le top. Sujet intéressant, présentateur brillant. Des développeurs partout, tous aussi compétents les uns que les autres. J’ai déjà réglé des problèmes que j’avais dans mes projets juste en discutant avec d’autres développeurs à des meet-up. C’est impressionnant la richesse qu’on peut retirer de ce genre d’événement! En plus y’en a partout, tout le temps et sur tous les langages ou les sujets que vous voulez, checkez par vous-mêmes. Pour couronner le tout y’a souvent à bouffer type pizza et même parfois de la bière que demande le peuple ?
Épilogue
Quand on parle d’apprentissage on en revient toujours un peu à la même chose. Les deux choses qu’il va falloir sortir c’est de la motivation et de la mise en danger. Les sites type CodeSchool ou Egghead sont bien aussi, mais pour moi ils sont plus efficaces pour approfondir une connaissance déjà acquise qu’à vraiment apprendre de nouveau concept. Non, il va falloir mettre les mains dedans. Essayer, galérer, se planter et recommencer encore et encore. Vos meilleurs professeurs restent vos expériences, vos succès et surtout vos erreurs, et vous le savez.
Oh mon dieu, un nouvel article. J’adore ! 😀
Franchement très intéressant. Mon plus gros problème est de trouver un projet perso pour apprendre de nouvelles choses (type React, ça me tente vraiment mais 0 idées de projets).
Par contre tu as laissé quelques fautes :p (« cette argument », « c’est CRUCIALE! », et quelques autres que je retrouve plus)
Pour trouver une idée de projet, il ne faut vraiment pas avoir peur de se lancer dans un truc qui existe déja ! C’est pas grave, c’est pour le fun 🙂
salut ! félicitation pour ton blog très instructif et plutôt drôle ! Que penses tu d’une reconversion dans le développement informatique à 40 ans ? Beaucoup de concessions pour pas grand chose ou possibilité de trouver du taff et de s’épannouir? A Montréal d’ailleurs si c’est pas trop compliqué de s’y installer… Merci de m’éclairer un peu 😉
Merci pour cette article, super intéressant et simple à lire. Et une bonne touche d’humour que j’apprécie 🙂
Article très motivant et agréable à lire, ça sent le vécu merci pour ces conseils.
Super article et bravo pour ton blog !
Je vais en relayer quelques uns sur notre page Linkedin Easy Partner 😉
Bonjour,
Je viens de tomber sur ton site, et lire cet article là.
Je le trouve intéressant, mais je me demande comment des livres pourront vraiment m’aider.
J’ai l’impression que mon plus gros soucis c’est de mettre vraiment en pratique ce que j’ai appris.
Je travaille en php (Symfony) en ce moment, et je n’arrive pas à vraiment avancer car j’ai l’impression de ne rien assimiler du tout, je me perds dans tous les fichiers, j’ai du mal à différencier les types de fichiers etc…
C’est vraiment problématique pour moi et je ne sais pas trop comment y remédier, on m’a dit mille fois que la doc en ligne de Symfony était formidable et bien fournie, moi je ne sais jamais comment l’appliquer.
J’ai l’impression de manquer de beaucoup de logique dans ma façon de coder, de voir les différentes imbrications des fichiers et composants.
Je sais pas trop pourquoi j’écris ce commentaire ici, j’ai pas l’habitude de laisser des commentaires.
J’imagine que j’ai l’espoir que tu puisses me donner des conseils qui pourront m’être utile et m’aider.
Pour info, je suis dans le « code » depuis 2015, et j’ai toujours l’impression de débuter.