Je rajoute cette page pour vous parler de méthodologie d'apprentissage. En effet, dans les retours qu'on m'a faits, on m'a dit, entre autres, que je n'avais pas ou quasi pas donné de méthodologie d'apprentissage, et de conseils pour tout ça !
Alors, me voici.

Dans cette page, on va voir comment j'apprends, comment je fais pour me former, et comment je fais pour parcourir tout ça, et ainsi faire de "l'autodidacte".
Comment je fais pour réussir à bosser entre 10h et 15h par jour, et à avoir 7-10h de "flow" par jour.

Tldr; de l'entraînement, savoir ce qu'on veut et pourquoi on le veut.


Première Étape - Le contexte, le lieu, le moment

Tout d'abord, le plus important à mes yeux, le cadre : posez-vous, mais vraiment.
Coupez vos notifications sur le téléphone, éteignez-le. Mettez-le loin de vous, sur votre lit, sur une commode, bref, le téléphone sans notifications, sans mails, sans réseaux sociaux, et à distance de vous.
Pourquoi ? Car votre cerveau va détester l'ennui, votre cerveau va détester ne rien faire.

Donc, vous coupez tout, discord, mail, message, notif, et vous vous mettez dans un endroit où vous êtes tranquille.
Pendant 30 minutes au départ.
La prochaine fois, ça sera 1 heure.
La fois d'après, ça sera plus.

Vous pourrez, avec de l'entraînement, vous mettre dans des états de concentration et de focus pendant plusieurs heures, et surtout sans interruption.
Ça vous permettra d'avancer réellement, et d'avancer surtout efficacement, de comprendre, d'emmagasiner des informations et d'être le plus efficient(e) possible !

Seconde étape - Définir un objectif

Quel est votre objectif ? Vous voulez apprendre le JS ? Vous voulez apprendre le Typescript ? Vous voulez apprendre NextJS ?
Très bien, vous pouvez faire les tutos ici, suivre les cours ici, mais évitez de lire "bêtement". La lecture, en informatique, ne vous fera pas énormément progresser, c'est en faisant qu'on apprend, et surtout en développement et dans le monde informatique.

-> Vous trouvez un tuto, vous suivez une formation, une vidéo YouTube. Et quand vous écoutez ce qu'il fait, vous changez légèrement le contexte et le sujet.
La vidéo vous parle de faire une todo liste et une gestion de tâches ?
Faites autre chose : une gestion de vos films lus, une gestion de vos sessions de sports ? une gestion de vos sessions shopping ? une gestion de la consommation de votre moto / de l'usure des pièces ?
Peu importe l'idée, le but est de ne pas suivre le tutoriel mot à mot, et ligne par ligne. On prend les concepts, on les utilise, et on les conceptualise ! On les modifie, et on se les approprie !

Également, si vous êtes sur la "base" d'une techno, d'un langage, INTERDICTION de faire faire à l'IA, on utilise l'IA UNIQUEMENT pour poser des questions, et pas pour faire à votre place !

Après avoir décidé de votre sujet, de votre objectif, et de ce que vous voulez, définissez ce que vous voulez faire dans une période de temps donnée.
1h -> ok, je vais aller jusqu'à telle feature.
2h -> ok, je finis cette page
3h -> ok, je finis cette API
4h -> ok, je mets en place mon VPS
etc.. etc...

Troisième étape - Prenez des notes, organisez votre vie, votre cerveau

En effet, en apprentissage, ça va être compliqué de comprendre tous les concepts. Personnellement, je vous conseille fortement l'utilisation d'"Obsidian", pour faire des "liens", avec les notes et les différents concepts que vous allez voir pendant votre apprentissage. Le but est de tout expliquer comme si vous expliquiez ça à votre mère qui ne connaît rien à l'informatique. Rendez tout intelligible, et facile à comprendre.
Obsidian - Sharpen your thinking

Quand vous êtes sur Obsidian, ça peut être intéressant d’utiliser les concepts autour des méthodes de Zettelkasten, GTD ( getting things done ), et PARA ( projects, areas, resources, archive )

En résumant très grossièrement pour éviter de partir trop loin, avec GTD, PARA, et cette méthode, l'idée, c'est qu'on va venir grossièrement organiser nos dossiers comme ceci :

  • Projects : tout ce qui est fait en ce moment, toutes les données brutes, ce qui est chaud, et pas forcément viable dans 6 mois, tous les trucs sur le tas, notre prise de notes, le daily
  • Areas : tout ce qui est consolidé. En gros, l'idée, c'est de venir toutes les semaines, tous les mois, venir clean la partie "projets", et consolider les notes. C'est votre partie "révision" // "reprise de notes". Ici,
    on va suivre les principes de Zettelkasten, à savoir, l'idée d'avoir les principes suivants:
    • Avoir des notes les plus petites possibles,
    • Que ces notes soient le plus propre possible, (être capable de les expliquer à quelqu'un de non technique, ou même un enfant.)
    • Réussir à interconnecter les compétences et les notes entre elles, ( exemple, on parle de React, on va vouloir connecter "React" à "Framework JS", à "JS" etc. )
  • Resources : tout votre bazar, screenshots, pdf, docx, etc etc. bref, toutes les ressources.
  • Archives : tout ce qui est outdated / vieux projets etc, histoire de garder une trace

Avoir ce genre d'organisation vous permettra dans votre apprentissage de ne pas trop vous perdre et SURTOUT de consolider vos compétences au fur et à mesure.

Quatrième étape - Commencez votre nouveau projet, pratiquez, pratiquez, pratiquez

Pas de Chat GPT, pas de Claude, pas de Gemini, que du code, à la main, des cheat sheets, de la doc. Prenez le temps de lire, prenez le temps de comprendre. Un concept est flou ? Vous ne comprenez pas l'utilité ?
UNIQUEMENT à ce moment-là, vous pouvez utiliser l'IA, pas avant !

Ensuite, faites, refaites, et encore, des side projects, des tests, bidouillez, regardez des vidéos YouTube, essayez de comprendre, de mettre en pratique, bloquez-vous, essayez de comprendre pourquoi ça ne marche pas.

Un souci ? Pas d'IA. Comprenez le problème, step by step, mettez des logs partout, notez vos logs.
Exemple:

console.log("etape 1, ça devrait être un objet", variable_a_log)
...
console.log("etape 2, ça doit être autre chose", variable_a_log)
...
console.log("etape 3, ça devrait réagir comme ça", variable_a_log)
...
console.log("etape 4, ça passe ici ? non ?", variable_a_log)

Comprenez, lisez vos logs, étape par étape, faites des schémas sur papier, essayez de vous poser et de comprendre les soucis, écrivez sur papier les étapes, les grandes lignes, le code global.
Utilisez des debuggers : Guides: Debugging | Next.js C'est game changer !

Ça existe sur TOUS les langages, et sur TOUTES les technos, ça permet d'arrêter votre code à un moment précis, et de voir exactement ce qu'il y a dans la mémoire, là où ça passe etc.

Cinquième étape - Allez plus loin

Suivez votre voie comme ceci, des tutos, des éléments pour aller plus loin, essayez de faire des projets utiles pour vous et votre entourage,
automatisez votre vie, vos process, les process de vos proches, faites des applications, des sites web, bidouillez, encore et encore.
C'est ça qui vous fera devenir meilleur(e) ! C'est ça qui est le plus important !

Ne voyez pas trop grand d'un coup, étape par étape, quelque chose de petit, puis on rajoute feature par feature, mais toujours fonctionnel.
On ne fait pas une voiture, on construit un skateboard en premier, puis un vélo, puis un scooter, puis une moto, et enfin une voiture.
Pas besoin de partir en sucette et faire une app qui fait 2 000 000 de choses, concentrez-vous sur la vraie valeur de votre app, l’utilité globale.

Et surtout, prenez du recul, utilisez l'IA pour voir l'étendue des possibles, perplexity, claude research ou gemini research pour demander les alternatives payantes, open source, self-hostable, les possibilités.
Regardez sur Reddit.
Regardez sur Youtube.
Regardez sur Medium.
Regardez sur Github.
Regardez sur les "Awesome ... ( votre recherche )" : Awesome Tailwindcss: 2 milliards de ressources pour TailwindCSS

Prenez ce qui vous intéresse, ce que vous voulez, et foncez !
Kiffez ! Soyez curieux ! ( et je vous promets, tout ça, ça vaut vraiment le coup <3 )