Le développeur qui sait tout

Le développeur qui sait tout

J’ai rencontré un développeur qui savait tout. Il avait réponse à tout. Il était impressionnant. Intriguant. Limite bizarre. En passant tout mon temps avec lui, j’ai fini par comprendre comment il fonctionnait. C’est fascinant et surtout, reproductible.



Dans l’épisode précédent

Cher lecteur, ça devient une habitude. Je m’adresse directement à toi en ouverture de chaque épisode cette saison. Comme si j’avais besoin de parler.

Sûrement car je poste moins.

Sache que tous les articles de ce blog sont liés. D’une façon ou d’une autre. Et si tu lis l’article lié à celui d’aujourd’hui, tu auras plus de contexte.

Plus de dopamine sera libérée dans ton corps pendant la lecture.

Pour plus d’hormone du bonheur, voici l’article à lire : « Le pire piége dans lequel tombent les développeurs« . Ça porte bien son nom. C’est -sans filtres- ce qui m’est arrivé en France. Le pire piège dans lequel je suis tombé.

Ça a failli gâcher toute ma carrière.

Ça vaut le coup de vérifier si tu ne fais pas la même chose.

Voilà.

C’est tout pour l’option du jour.

Je t’apprécie fortement, et je te souhaite une bonne lecture.



Genèse

Nous sommes le 4 janvier 2016. Il est 20h et je sors à peine de l’aéroport de Montréal. Il fait -18 degrés et étonnamment, c’est pas si froid que ça.

Le plan est simple.

On a deux ans de PVT devant nous avec ma copine. On trouve des boulots vite. On fait de l’argent pendant 6 mois. On fait le tour du Canada. Et retour en France.

On vient d’arriver, mais le voyage ne fait que commencer.





On a trouvé un appartement en quelques jours. J’envoie quelques CV. Le jour même, je suis contacté par un géant du jeu vidéo.

Ça va vite dans ce pays.

Je t’épargne les entretiens. Rien d’extraordinaire. Ce qui est fou par contre, c’est que je suis pris. Une semaine et demi après mon arrivée au Canada, je me préparais à mon premier jour de taf.



La rencontre

C’est le jour J. Je suis accueilli chaleureusement par mon manager. Il m’emmène directement dans un gigantesque open space.

Et là, il commence à faire le pire truc possible.

Il va voir chaque personne, dans tout l’open space, une par une. Il la dérange dans son travail. Il la fait se présenter à moi et je dois me présenter à mon tour.

Satan en personne ne te fait pas ça quand tu arrives dans les sous-sols des enfers car c’est trop de douleur pour tout le monde.

Au bout d’une vingtaine de personnes, je commençais à me liquéfier.

C’est à ce moment précis qu’on est arrivé au bureau de Jean-Francois.

Déjà, j’avais repéré un premier truc étonnant avant même de lui parler. Il utilise deux écrans, mais il y en a un qui affiche seulement une sorte de compte à rebours.

Bizarre.

Ensuite, il met un temps FOU à réagir à notre présence.

C’était premier degré génant.

Il était scotché à son écran.

Il a fallu que mon manager insiste pour qu’il nous regarde enfin.





Je vois enfin son visage. Il ne peut pas s’empêcher de froncer les sourcils. On l’a tellement dérangé, il est à deux doigts de nous insulter.

La première chose que j’ai pensée en le voyant c’est qu’il ressemblait fortement au cliché du développeur nerd.

Un homme blanc, la trentaine, très mince avec une chemise bien trop grande, pas vraiment coiffé et une barbe de 3 jours.

Est-ce que tu va me cancel car j’ai dit que c’est un homme blanc ?

Tu peut pas me cancel, je suis déjà cancel.

  • Mon manager : « Désolé de te déranger JF, nous accueillons un nouveau collaborateur aujourd’hui, est-ce que tu peux te présenter rapidement et Mehdi va faire de même ensuite. »
  • JF : « Je suis un dev sur les services online. »

Pas le temps de niaiser.

Je comprends que je lui fais profondément chier. J’adapte donc la longueur de ma réponse.

  • Moi : « Ah super, moi c’est Mehdi et on va surement travailler ensemble alors, je viens faire la même chose ! »

Il sourit quand même un peu avant de se retourner sans un mot.

En s’éloignant mon manager m’apprend que JF est très important dans l’équipe technique. Donc très important pour moi désormais.

À ce moment-là, je n’ai aucune idée de l’influence monumentale qu’il va avoir sur toute ma carrière.



Le phénomène.

Les jours passent. Ça fait une semaine que je suis là. Dans ce flot incessant de nouveautés, je vois une seule constante.

JF a réponse à tout.

Tout le monde se retourne naturellement vers lui en cas de doute. Il est plus ou moins utilisé comme une encyclopédie qui marche. C’est vraiment hallucinant.

Si certaines personnes sont brillantes, lui c’est le soleil en personne.

Le legacy est écrit en JAVA, il y a pas mal de micro-services en NodeJS et on a certaines webapp imposées en PHP. C’est un expert ABSOLU sur tous les langages utilisés. C’est ridicule à quel point il les connaît.

Comment il fait pour savoir et retenir autant de choses ?





Le design technique de presque tout a été fait ou modifié par JF. Non seulement il a la connaissance métier, mais en plus il est à l’origine du système interne. Autant dire qu’aucune question reste sans réponse avec lui.

Sa capacité à faire des liens entre un problème, le système interne et les technologies est presque instantanée.

Côté infra on tourne sur une obscure machinerie Chef. Je trouve que c’est de la merde en barre pour être très honnête. En 2016, ce genre d’outils ops était très en vogue. Le cloud computing et les solutions comme Kubernetes n’étaient pas encore partout à ce moment-là.

Là aussi c’est JF aux manettes.

Il a écrit les règles de bonnes pratiques de l’équipe pour tous les langages. Toutes les merge requests passent par lui. Toutes les décisions techniques majeures sont de lui.

Peu importe où je regarde, je ne vois qu’une seule personne.





Des réunions étaient annulées car il ne pouvait pas être présent. Des décisions étaient annulées car il émettait des doutes sur la faisabilité technique.

Ce qui me sidérait à chaque fois c’était les réunions hebdomadaires « Tech Sync ».

À chaque fois qu’il prenait la parole tout le monde l’écoutait religieusement.

Le temps s’arrête, un ange passe.

Il faisait des designs de systèmes entiers live devant tout le monde sur un sujet qu’il n’avait pas préparé. Il pré-shotait avec une précision déroutante un futur problème avant même qu’il arrive. Il apprenait quelque chose de nouveau à tout le monde à chaque fois qu’il intervenait.

En fait, j’avais l’impression qu’il avait la science infuse.

C’est un extraterrestre qui a atterri au Québec ou c’est une vraie personne ?



La personne

J’ai donc commencé à passer beaucoup de temps avec lui.

Je m’incrustais à tous les meetings où il était présent. Je lui demandais toujours son aide sur mes affaires. Je lui proposais toujours de partager un café.

J’étais accroché à lui comme si ma vie en dépendait.





Très vite je lui ai demandé pourquoi il ne prenait pas le poste de lead dev. Voire de directeur technique. C’est clairement ce qu’il fait.

  • JF : « J’ai refusé plusieurs fois. Le code c’est facile, les gens c’est compliqué. Je ne veux pas gérer les gens. »
  • Moi : « Mais… Tu gères déjà pas mal de choses. Notamment plus ou moins certaines personnes. Comment ils font leurs solutions et la direction technique de .. »
  • JF : « J’ai pas les responsabilités. Ni les obligations, ni la pression. Je reste dans ce que je veux faire. »

Je comprends un peu.

J’ai quand même pensé qu’il s’asseyait sur un paquet de pognon. Soit il n’en a rien à foutre, soit il gagne déjà excessivement bien sa vie en restant dev. C’est courant dans ce pays.

Autre chose, si physiquement JF est un cliché ambulant, c’est pas le cas de sa personnalité.

Il est très bavard. Il a une ÉNORME passion pour le vélo. Bordel, il en parle tout le temps de son putain de vélo. C’est insupportable.

Alors, j’ai rien contre hein. Mais j’en ai un peu rien à carrer. C’est un culte pour lui. Je crois qu’il veut me faire rentrer dans sa secte.

Il a aussi un humour un peu spécial. Il fait des blagues de dev. Si tu n’as pas cinq années d’expérience sur la techno ou le concept en question, tu ne comprends pas.

C’est jamais drôle normalement ce genre de truc.

Mais j’ai déjà ri premier degré à une de ses blagues orientées objet.

Il était fier de lui.





Également, c’est pas un génie.

Je veux dire, je ne peux pas juste expliquer son niveau en disant qu’il a un QI exceptionnel. On pourrait se dire voilà, il a 350 QI, ceci explique cela, merci au revoir, fin de l’article.

C’est pas le cas.

Il est banal. Loin d’être bête. Mais rien d’exceptionnel.

Enfin, je dirais que son seul problème c’est qu’il n’est pas très courtois quand on parle technique.

C’est pas un développeur toxique.

Mais simplement froid. Radical. Implacable.

Il y a un manque de forme dans ses réponses.

Il avait toujours raison sur le fond, mais c’était parfois rude à entendre.

Je ne vais pas te mentir, ça c’est problématique.

Nous sommes dans un monde avec des gens si fragiles.

Même une tournure de phrase peut créer un drame. Des gens chialent sur Twitter et font un breakdown mental juste parce qu’on leur explique poliment qu’on n’est pas d’accord techniquement avec eux.

Alors oui Twitter, c’est tous des cinglés. Mais les gens en vrai, c’est pas mieux.

Dès les premiers mois j’assistais déjà à un petit drame pour cette exacte raison.





Bref, au bout de quelques mois, je n’avais toujours pas percé son secret. J’avais beau « l’étudier » de fond en comble, rien ne me sautait aux yeux.

Il y avait bien un truc que je n’avais pas encore essayé.

Et si je lui posais directement la question ?



Prérequis

On est plusieurs mois après mon arrivée. Ça arrivait fréquemment qu’on aille bouffer ensemble à l’une des tables de la grande cafétéria. On parlait de tout et de rien.

Ça commence à bien faire, cette fois on va parler de ça.

  • Moi : « Bon. Comment tu fais ? »
  • JF : « Quoi ? »
  • Moi : « Comment tu fais pour tout savoir ? C’est incroyable de répondre parfaitement à tous comme ça. C’est quoi c’est comment ? »

Il a bloqué un peu.





  • JF : « Va falloir que tu sois plus précis. »
  • Moi : « Tu sais tout. Donc tu retiens tout. C’est pas normal. Comment tu fais pour tout retenir comme ça ? »
  • JF : « Je sais pas tout. »

C’était le début d’une longue discussion.

Une discussion qui est devenu une sorte de fil rouge dans les semaines qui ont suivi. On a parlé de ça presque tout le temps à partir de ce moment.

Les quatre points qu’il va alors aborder ne sont que les prérequis pour le plat principal. On va bientôt arriver à sa « secret sauce ». Mais rien n’est possible sans maîtriser/faire ces prérequis.



Architecture des connaissances

Comme tout bon dev, il a commencé par la big picture. C’est stupide de rentrer dans les détails de l’implémentation sans ça. Il a commencé à me poser une question très étrange.

  • JF : « Comment architecturerais-tu ton savoir dans ton cerveau pour « avoir réponse à tout » comme tu dis ? »

Il a fait le geste des guillemets un peu énervant avec ces mains quand il a dit ca.

Car oui, je dois t’avouer quelque chose.

Le titre de mon article est putaclic. Une fois de plus. Bien entendu, sinon tu ne cliques pas.

On est dans le décevant monde réel de la réalité véritable.

JF, il sait pas tout. Il en sait tellement qu’on dirait qu’il sait tout. Nuance.

Dans un cadre professionnel, en particulier avec des clowns crédules comme moi, l’illusion est parfaite. Pour moi, et plein d’autres clowns, il sait tout.





L’idée est simple.

Il faut organiser son savoir comme un arbre. À la base, un grand et solide tronc. Notre spécialité. Et ensuite l’objectif est de faire des liens depuis cette spécialité vers les sujets connexes.

Prenons un exemple.

Je pars du principe que tu maîtrises déjà tous les concepts de base d’algorithmie.

Donc imaginons que tu es un développeur PHP. Tu dois commencer par être un tueur en PHP.

Commence pas à partir dans tous les sens avec des frameworks et des outils dans tous les sens. Deviens seulement un tueur dans le langage de base. Regarde autour quand c’est fait.

En d’autres mots, il ne faut pas essayer de tout savoir tout de suite, c’est stupide et surtout impossible.

Il faut d’abord se spécialiser. Ensuite, progressivement, essayer de tout savoir autour de cette spécialisation. Et bien plus tard, essayer d’aller plus loin en liant d’autres spécialisations.

C’est plus faisable et surtout plus utile.

Si ça te semble évident tant mieux. Sache que ce n’est pas le cas pour beaucoup de gens. Des exemples de devs de tous niveaux qui partent dans tous les sens, j’en ai des centaines.

Maintenant qu’on sait dans quel sens apprendre, il est temps de passer à comment.



  • Comprendre avant d’apprendre

Le second gros sujet dont il m’a parlé c’est comment aborder l’apprentissage. Toujours en prenant du recul. On est encore loin des détails de l’implémentation.

Il a eu cette phrase qui m’avait marqué et dont je me souviens parfaitement.

  • JF : « La plupart des gens ne comprennent pas ce qu’ils font et ça m’énerve d’aider des gens qui ne s’aident pas eux-mêmes. »

Une fois encore, le principe est assez simple.

Quand on veut apprendre quelque chose on commence par comprendre les concepts.

Ce que la technologie résout comme problème. Comment globalement elle le fait. Et dans quelle situation cette technologie est utile. Si tu n’es pas capable d’expliquer simplement tout cela avec tes propres mots, ce travail n’est pas fait.

Il faut impérativement faire ce travail de compréhension de haut niveau avant de pratiquer une technologie.

Encore une fois, on va hurler au bon sens. Et là, les amis, je vous jure que presque personne ne le fait. Car cela demande des efforts et cela prend du temps.

C’est plus drôle de faire du code que de le comprendre.

La plupart des dev utilisent leurs outils sans vraiment les comprendre.

Ces gens se trahissent avec des questions évidentes et fondamentales à la technologie qu’ils utilisent. On l’a tous vu. Et soyons honnête cinq minutes, on a tous été cette personne.

On arrête ça.

On comprend ce qu’on utilise.

Une fois qu’on comprend vraiment, on peut passer à la partie drôle.



  • La sacro-sainte pratique

Un autre point où JF a lourdement insisté, c’est la pratique. La sainte pratique. Le moteur au-dessus de tout.

La pratique est le principal facteur qui fait la différence de niveau entre les développeurs.

Oui.

Rien que ça.

  • JF : « Les tutoriels, c’est pour les fainéants qui veulent faire semblant d’apprendre. »

JF ne fait pas partie de ces gens qui font des code challenges toute la journée.

Par contre, il a un nombre impressionnant de side project en open-source. Beaucoup d’app pour faire du vélo. Plein de petits jeux.

JF fait partie de ces gens qui pensent que devenir un bon développeur, c’est comme devenir un bon artisan ou un bon musicien.

Je me permets de citer Aristote ici :

Nous sommes ce que nous faisons à répétition. L’excellence n’est donc pas un acte mais une habitude.

La compétence, et la confiance qui va avec, viennent de la pratique.

Se lancer dans un projet perso qui te motive. Rencontrer de vrais problèmes bien complexes et les régler. Chercher des paramètres dans les entrailles d’une bibliothèque obscure jusqu’à 2h du matin. Tellement lire de documentations que tu finis par aimer ça. Pour enfin publier un truc que personne ne va jamais utiliser à part toi.

Crois-le ou non, ça va faire de toi un tueur.

Le problème c’est que beaucoup de personnes ne font ou ne finissent pas tout ça pour une seule raison.

Ils sont incapables de se concentrer.



  • La concentration est le seul muscle à renforcer.

Le sujet de la concentration, c’est un sujet que j’ai déjà abordé plusieurs fois sur ce blog. Et comme beaucoup de sujets sur ce blog, à la base c’est JF qui m’en a parlé.

La version courte, c’est que plus tu es capable de te concentrer longtemps et profondément, plus ça va faire de toi un bon dev.

C’est une règle mathématique, éternelle, et absolue pour les développeurs. Nous avons un métier très intense intellectuellement. Ça demande de prendre en compte beaucoup d’informations, de connaissances et de paramètres, et d’y appliquer de la logique complexe sur plusieurs niveaux d’abstractions.

Être fort en concentration, c’est l’équivalent d’activer un cheat code dans GTA.

C’est pas du jeu pour les autres.





Au début de l’article, quand je te raconterai ma première rencontre avec JF, je te disais qu’il était scotché à ces écrans avec un compte à rebours. Il était en mode deep work et il utilisait la méthode pomodoro.

Encore une fois, la méthode pomodoro, j’en ai parlé 100 fois.

Encore une fois, c’est JF qui m’en a parlé.

Oui, c’est un vrai pattern.

Bref, je pourrais parler pendant trois articles de ce sujet de la concentration, mais soyons plus efficaces, je vais te donner une recommandation de livre à lire.

Deep Work de Cal Newport.

En fait, c’est pas une recommandation, c’est une obligation de lecture que je te donne.

Ce livre a tellement tout changé dans ma vie, pas seulement de développeur, il a eu un impact phénoménal, que ça me semble obligatoire pour tout le monde.

Enfin, pour ceux qui n’ont pas déjà brûlé leur cerveau.

TikTok ou Deep Work, c’est à toi de choisir.





Tu es toujours là?

Tu es deep down dans un article long comme la tour Eiffel. On est vraiment entre nous maintenant les amis. Vous êtes seulement quelques milliers à atteindre ce niveau légendaire.

Je me permets de vous remercier en plein milieu, comme ça.

Et il est temps que je balance des vraies infos.

Il y a quelque chose d’absolument central et crucial que je veux que tu comprennes avant de continuer.

On ne cherche pas à engranger de la connaissance pour faire monsieur je sais tout. On cherche à engranger de la connaissance pour faire des connexions entre des concepts techniques. C’est ces connexions qui permettent de résoudre des problèmes, d’imaginer des architectures et d’avoir de la créativité dans un milieu technique.

C’est ta somme de connexions de concepts techniques disponible dans ton cerveau qui te qualifie ou non dans la ligue des développeurs exceptionnels.

Monter cette arborescence de connexions de concepts dans ta tête – et la maintenir – est extrêmement long et difficile à faire.

C’est pour ça qu’on commence par une spécialisation.

Étendre cette spécialisation, c’est l’ultra trail du Mont Blanc. Un défi souvent abandonné en cours. La plupart du temps, même pas tenté par les athlètes élites.

Ceux qui atteignent les sommets ne le font pas au hasard.

Ils ont un entraînement particulier qui fait la différence.

Un système qui change tout.



Pourquoi un systéme ?

Y’a aucun secret qui va faire de toi un génie rapidememt.

Cependant, il existe bien des méthodes qui, regroupées ensemble, créent un système. Ce système permet de prendre un raccourci extrême dans ton évolution. Et tout ça sans sacrifier ton temps libre ou ta vie de façon générale.

Posé sur un graph, ça ressemblerait à ça.





En rouge, les gens qui s’en foutent de ce métier de façon générale.

Ils ne lisent pas ce blog. Ils font le minimum syndical. Ils refusent de passer du temps à se former. Ils n’évoluent que très peu, voire pas du tout.

Et qui suis-je pour juger ? S’ils sont heureux comme ça, c’est très bien.

En vert, c’est 80% des devs.

Ils aiment ce métier. Ils apprennent sans système, sans méthode. Ils se mettent à jour, car il le faut. Ils évoluent doucement, mais sûrement.

Certains sortent du lot ici aussi, mais eux ils ont 350 de QI pour le coup.

En bleu, les devs qui aiment ce métier et qui en plus ont décidé d’y appliquer un système d’apprentissage.

Un système qui prend quelques années à porter ses fruits. Un système qui explose exponentiellement leur niveau à la hausse après ça. Ces devs choisissent où ils vont et combien ils sont payés.

La bonne nouvelle, c’est qu’il suffit de lire la documentation pour emprunter cette voie.

Donc première étape, on lit la doc.



Documentation

Sur le sujet de la rétention de l’information, j’étais comme tout le monde. Un impressionnant poisson rouge pas capable de répéter un truc qu’on lui a dit y’a 5 minutes. Et la question à 1 milliard c’est : pourquoi on est tous des poissons rouges ?

Car on a aucune idée de comment fonctionne notre cerveau au niveau de l’apprentissage.

C’est comme utiliser un framework sans la doc. C’est débile et inefficace au possible. Et pourtant c’est ce qu’on fait en permanence à notre apprentissage.

Et là, heureusement, les scientifiques du monde entier ont bossé là-dessus depuis toujours. Je précise ça pour que tu comprennes que je ne sors pas ces infos de mon cul. Aujourd’hui, on a deux/trois infos plutôt solides disponibles qui viennent de personnes reconnues.

Il suffit de les consulter.

Pour me faire comprendre ça, JF m’a conseillé ce bouquin. Bouquin que je te conseille pas pour être très honnête. Il n’est pas mauvais. C’est juste beaucoup de contenu pour des concepts qu’on peut résumer assez rapidement.





Dans les grandes lignes c’est assez simple : sans une maniére ACTIVE de traiter l’information on est tous CONDAMNÉ à tout oublier.

On va detailler chaque étape, mais en gros on va parler d’un systéme qui va faire deux choses.

  • Stocker l’information d’une maniére bien spécifique.
  • Consolider l’information d’une facon et surtout dans un rhytme bien précis.

Et ca, peut importe la quantité d’information



Stockage

Je suis un lève-tard. Mais ce matin-là, pour une fois, je suis arrivé au taf avant tout le monde. JF était déjà là aussi. Et il m’appelle de loin avec un grand sourire pour me montrer quelque chose.

J’arrive à son bureau un peu dépité car je m’attendais à voir des photos de ses vélos pour être très honnête.

Mais non. Il me montre une sorte de site avec beaucoup de texte et beaucoup de schémas techniques. Une suite de fichiers MD avec toujours le même format de contenu. Tous liés les uns aux autres. Tout est classé et structuré par sujets avec des centaines de catégories et sous-catégories.

  • JF : « C’est ça. C’est mon système. Faque, il faut que tu t’en fasses un aussi, mon homme. »

Oui, il parle vraiment comme ça. C’est normal au Québec. Et encore t’as pas l’accent.

En parcourant son truc, sur le coup, j’ai pas compris. C’est ça le « système » ? Un site tout pourri avec des notes. Faut juste prendre des notes ? Il se fout de ma gueule ? Je le tabasse ?

Il avait l’air très sérieux.





Je ne le comprenais pas encore, mais c’était un bout de son système. Comment il stockait l’information. Et ce n’était pas fait n’importe comment du tout.

Chaque page était un concept/sujet qu’il essayait de se rappeler.

Chaque page était TOUJOURS structurée de la même façon.


  • 1 – Modèle Mental

Une phrase pour comprendre l’idée ou le concept. Une explication rapide du fonctionnement de quelque chose. Souvent une forte simplification. Presque à chaque fois une métaphore. Car le cerveau est étonnamment efficace à retenir des concepts sous forme de métaphores.

  • 2 – Aperçu

Trois à quatre phrases qui donnent un aperçu de l’idée ou du concept. Ça doit être simple à comprendre et facile à retenir. Plusieurs phrases permettent d’être plus précis et de limiter les simplifications.

  • 3 – En profondeur

Plusieurs paragraphes d’explication sur le sujet qui approfondissent l’idée ou le concept. C’est aussi long que nécessaire. Presque aucune simplification n’est admise ici.

  • 4 – Schéma

Une image, un schéma, un graphique du concept ou de l’idée. Car une image vaut 100 000 mots. Comme la plupart des gens, JF comprend mieux les choses avec un schéma. C’est très efficace.

  • 5 – Quizz

Une succession de 8 à 10 questions autour de l’idée ou du concept pour tester les connaissances autour de celui-ci. Très important, il utilisait la balise details pour cacher la réponse de chaque question. Le but étant de forcer la personne à aller chercher la réponse dans son cerveau. On va y revenir.


Chaque page est un concept.

Chaque page est liée à d’autres pages. Car tous les concepts sont liés de près ou de loin. Le tout formant une grille cohérente de savoir qu’on essaie de retenir. Comme un second cerveau où on pourrait stocker les choses sans craintes de les oublier.

Notre système d’apprentissage prend forme sous nos yeux.





Et j’insiste sur un point : les pages doivent se focaliser sur les concepts, pas les détails.

Ce que je veux dire, c’est que tu n’es pas un bon développeur JS car tu connais toute l’API et toutes les fonctions par cœur. Non, ce n’est pas ça dont on parle. Ça ne sert à rien de connaître toutes les fonctions par cœur.

Tu es un bon développeur car tu comprends parfaitement et maîtrises les concepts d’event loop, de closure, de promesses, de contexte, d’événement, de DOM et j’en passe. Des concepts généraux à ton langage qui te donnent un cadre et une vision d’expert sur ce que tu fais.

Maintenant, il nous reste la partie la plus compliquée à mettre en place.

C’est bien beau d’avoir une base de données organisée et liée. Ça ne sert à rien du tout si on ne sait pas comment et quand l’exploiter.

Le but ultime étant de consolider l’information à long terme dans le cerveau.



Consolidation

C’est là que tout se joue.

Au jeu de la mémoire à long terme, il y a des règles du jeu très claires et très précises.

Il suffit de comprendre et de pratiquer deux concepts qui, mis ensemble, ont la capacité de faire de toi monsieur « je sais tout ».

Tester le savoir

Ça ne sert pas à grand-chose de lire et de relire 100 fois la même affaire. Ça rentre à très court terme et ça ressort aussi vite. C’est tout sauf la solution efficace ou naturelle pour le cerveau.

Si vous faites partie des gens qui font des fiches en surlignant les parties importantes, sachez que vous perdez votre temps de manière phénoménale.

Ce qui compte, c’est le travail du cerveau de restitution/récupération d’une information dans la tête. C’est ça le secret qui va consolider une information dans la mémoire. C’est ça qui va empêcher l’oubli.

Et c’est pour ça que pour chaque fiche, il y a un quiz. On va utiliser les quiz pour ce travail de restitution d’information. Mais pas n’importe quand.

Répétition espacée

C’est tout à fait inefficace et surtout affreusement chronophage de revenir sur la même information, le même quiz chaque jour, pour retenir quelque chose. Ça te limite fortement sur la quantité que tu peux retenir. Et surtout, il y a une façon de faire plus naturelle.

Un schéma vaut mille mots :





En quelques mots, en faisant des révisions dans une temporalité bien précise, on va retenir mieux les choses. Et comme tout ce que je te raconte dans cet article, je me répète : je ne le sors pas de mon cul. C’est l’étude du cerveau et plus particuliérement des neurones qui ont créé ces régles qui marchent si bien.

Quand on combine le test du savoir, qui enclenche la restitution de l’information, avec la répétition espacée, ça fait des chocapic.

Tu as ici une synergie extrêmement efficace de la mémoire que tu peux exploiter en permanence. Ça t’ouvre les portes d’une totale liberté de mémoire cosmique vers un nouvel âge reminiscent.

C’est merveilleux tout ça.

Mais ca prend un temps fou non ?



Optimisation

C’était la première question que j’ai posée à JF quand il avait fini de m’expliquer tout ça.

  • Moi : Ça doit te prendre un temps fou. Comment tu fais pour retenir le bon timing pour chaque page ?
  • JF : Ça me prend entre 15 et 30 minutes par jour, tu connais Anki ?

Je ne connaissais pas Anki à l’époque. Ça allait devenir la seule application que j’utilise tous les jours sans exception. Pour une raison simple.

Ça gère tout le timing de notre système d’apprentissage.

Ça t’envoie une notification sur ton portable au moment où le système estime que tu vas oublier quelque chose. Et tu tombes sur une question de quiz d’une page.

Si tu n’arrives pas à faire le quiz, alors tu révises une fiche. Et c’est tout, c’est fini, tu continues ta journée.

  • Moi : Qui a le temps de lire des cartes tous les jours ? Tu fais ça quand ?
  • JF : Aux toiletess.
  • Moi :Quoi ?
  • JF : Tu fais quoi quand tu vas aux toilettes ?
  • Moi :Je sais pas, je scroll sur facebook
  • JF : Moi je scroll sur anki
  • Moi : Ouais, mais toi t’es fou

Ce jour-là, il m’a aussi expliqué qu’apprendre, c’est comme le sport. Plus tu en fais, plus c’est facile.

Le contraire est encore plus vrai.

Ce qui me semblait un incroyablement long et contraignant système à l’époque est un simple détail qui prend 20 minutes de ma journée aujourd’hui.

Je peux passer des heures sur YouTube sans me plaindre que ça me prend trop de temps, j’ai bien 20 minutes par jour pour bosser sur mon avenir non ?





Alors aujourd’hui, je te donne seulement les grandes lignes.

Pour deux raisons. La première, que si je rentre dans la pratique dans l’optimisation, cet article déjà trop long va doubler en taille.

La seconde raison, c’est que je prépare une formation sur ce système. Une formation où je rentre en détails sur la création et l’utilisation d’un système d’apprentissage. Des outils au flow en passant par l’utilisation de l’IA.

Ça fait longtemps que je n’utilise plus Anki, par exemple.

Ce système, c’est le mien. Fait et optimisé par et pour un développeur. Un système sur lequel j’itére depuis 8 ans pour garder ce qui marche bien en optimisant le temps passé.

C’est en écriture en ce moment, la formation devrait arriver soit cette année, soit l’année prochaine.

Pour ceux que ça intéresse, vous avez juste à vous abonner à la newsletter ou au twitter, je vous tiendrais au courant.

Pour les autres, les articles gratuits vont continuer normalement.

Et d’ailleurs, il est temps de finir celui d’aujourd’hui.



Le départ

Tout ceci m’est arrivé début 2016. Nous sommes début 2024 et il ne se passe un jour sans que je reçoive une notification me demandant de faire un quiz.

Parfois des quiz de fiches de 2016.

Et ça marche.

Je suis exactement là où j’ai toujours rêvé de travailler. Je suis payé de façon indécente. Et en termes d’apprentissage, plus rien ne me fait peur. Je pense que je pourrais apprendre n’importe quoi assez rapidement grâce à mon système.

C’est vraiment un super pouvoir qui me donne un avantage sur les autres.

J’ai rien de spécial.

J’ai juste un système d’apprentissage incroyable.

J’ai l’impression d’être devenu une sorte de JF.





Pour la petite histoire, une année plus tard, je disais au revoir à JF.

Il s’est fait remarquer dans le monde de l’open source. Il a rejoint Google en 2017. D’après son Linkedin, il y est toujours aujourd’hui.

Il a l’air de s’éclater sur des projets IA apparemment.

On s’est un peu perdu de vue depuis. Je sais qu’il est toujours dans la belle province. Je sais aussi qu’il lit mon blog.

JF call me maybe !



Épilogue

N’importe qui peut devenir un développeur qui sait tout. Il faut juste de la constance et du temps, couplés à un système d’apprentissage. Tout le reste, c’est du flan. Pas besoin d’être un génie. Il suffit de faire le travail. As-tu vraiment envie de faire ce travail ?

Qui me parle ?

jesuisundev
Je suis un dev. En ce moment, je suis développeur backend senior / DevOps à Montréal pour un géant du jeux vidéo. Le dev est l'une de mes passions et j'écris comme je parle. Je continue à te parler quotidiennement sur mon Twitter. Tu peux m'insulter à cet e-mail ou le faire directement dans les commentaires juste en dessous. Y'a même une newsletter !

Pour me soutenir, la boutique officielle est disponible ! Sinon désactiver le bloqueur de pub et/ou utiliser les liens affiliés dans les articles, ça m'aide aussi.

18 commentaires sur “Le développeur qui sait tout”

  1. Un grand merci.
    Voilà maintenant un moment que j’essaie de m’être en place un système comme celui-ci. Mais, c’est toujours aussi chronophage, malgré différentes tentative et l’utilisation de briques différentes.

    Tu m’ouvres de nouvelles perspectives, et ça c’est vraiment chouette !

    1. Avec moins de fautes d’orthographe.. c’est plus sympa.

      Un grand merci.
      Voilà maintenant un moment que j’essaie de mettre en place un système comme celui-ci. Mais, c’est toujours aussi chronophage, malgré différentes tentatives et l’utilisation de briques différentes.

      Tu m’ouvres de nouvelles perspectives, et ça c’est vraiment chouette !

  2. Super article comme toujours 🙂

    Je m’intéresse au système Leitner depuis un moment, ce qui me paraît plus abstrait c’est quoi choisir comme sujet (comment découper un gros sujet en plusieurs, quel indicateur pour se dire « tiens, ça il faut le mettre en fiche, etc).

    Hâte de retrouver ton guide sur le sujet !

  3. Très sympa comme article, le contenu et le ton sont parfaits, merci ! C’est réconfortant, je vais retourner trier mes bookmarks de connaissances en mode psychopathe des Internets 😉

  4. Super article ! Il m’a rappelé une vidéo de la chaîne Science étonnante sur le même sujet, qui s’appelle « MIEUX APPRENDRE & ÉTUDIER : les (vraies) techniques scientifiques »

  5. Super article merci c’est très motivant. Il tombe à pic car mon projet de cette année est de me remettre à niveau, de devenir un JF (ça tombe bien c’est déjà mon prénom). J’ai commencé à développer ma propre méthode justement grace aux notes (sur Onenote ou Notion) et j’utilise Chatgpt pour apprendre de nouvelles choses comme si j’avais un formateur. Le plus dur c’est d’avoir une méthode comme JF qui ne prend que quelques minutes par jours.

  6. Très intéressant. Je suis convaincue que c’est une bonne méthode, que j’ai essayé plusieurs fois de mettre en place, mais ça n’a jamais « pris ». Je suis donc impatiente de lire tes conseils et de voir quel système tu utilises. Merci pour tes articles que je lis toujours avec plaisir.

  7. Dès que vous sortez un article, j’arrête de faire ce que je suis entrain de faire et je me plonge dans la lecture ! C’est toujours un plaisir à lire et celui-ci ne déroge pas à la règle. Je suis votre blog depuis 2018, c’est une pépite ! Merci pour votre travail et j’ai hâte de découvrir cette fameuse méthode, parce que moi aussi je veux avoir une mémoire cosmique vers un nouvel âge reminiscent (made in Taiwan comme dirait Skippy le grand gourou) !

    PS : vous êtes toujours au Québec ? Et c’est quoi le salaire indécent (oui je suis curieux 😝) ?

  8. Encore un article qui fait plaisir à lire !
    J’ai retenu les 50 premières décimales de pi en 20min avec le major system quand je m’ennuyais, je sais ce que je vais pouvoir faire maintenant.
    Merci pour ton contenu, très intéressant et bien rédigé.

  9. J’ai adorer cet article, découvert via le blog de seb sauvage, et dévoré durant ma pause café de mon poste de dev’..

    JF« J’ai refusé plusieurs fois. Le code c’est facile, les gens c’est compliqué. Je ne veux pas gérer les gens. » [..]
    JF : « J’ai pas les responsabilités. Ni les obligations, ni la pression. Je reste dans ce que je veux faire. »
    (Je comprend tellement)

    Merci pour la vulga sur la méthode vers monsieur je sait tous (vivement la formation).
    Je connaissait déjà pomodoro (mais si je l’utilise peut) ainsi que Ankhi (que j’utilise surtout surtout pour l’apprentissage des langues étrangères , plus que de langages de programmation).

    Pourrait tu revenir, un peu plus en détails sur ce passage svp?:
    JF : « C’est ça. C’est mon système. Faque, il faut que tu t’en fasses un aussi, mon homme. »

    ça fait un moment que je cherche la méthode idéale pour un  » second cerveau « .
    Que mettait JF , plus précisément dans ces fichiers MD?

    Quelles type de soft recommanderais tu?
    (simplement du Mark Down, un wiki genre tiddlywiki, Notion, Obsidian)?

    Bonne continuation à toi (et à ton salaire indécent 😛 )

    1. Je suis intéressé aussi, j’ai testé rapidement anki après avoir lu ce super article, mais j’ai l’impression qu’il se limite au seul question/réponse, sans possibilité de mettre du texte riche comme du markdown ?
      Est-ce que tu peux dire à anki de récupérer des question d’un autre endroits, et ainsi avoir les question et les explication au même endroits, ou est-ce que tu à 2 base de connaissances ?
      a+

  10. Un vrai grand merci. Je suis dev junior et j’ai beaucoup de mal à me focus sur un truc : ça part dans tous les sens, j’ai envie d’apprendre tout et n’importe quoi du coup je progresse pas. J’espère devenir un JF et me basant sur ce système d’apprentissage. Encore merci.

  11. Trop long, ou est la version courte …
    Encore une autre théorie new-age . En réalité, ce système juste perds du temps.
    Vous voulez connaître le secret pour réussir dans ces études ? Étudiez chaque jour, et mettez un accent particulier sur l’aspect pratique (anciens exams, projet personnel, etc.)
    Voilà ne me remerciez pas !

  12. Il s’agit du premier article que je lis sur ton blog et j’ai adoré !
    Merci à mon collègue P. d’avoir partagé le lien 🙂
    L’apprentissage et la progression font partie de mon fil rouge en tant que dev, je vais regarder si je peux me servir de certains points remontés ici.
    Au plaisir de te lire à nouveau.

    Longue vie à JF 👑

T'en penses quoi ?

Your email address will not be published. Required fields are marked *