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 )
I'm adding this page to talk about learning methodology. Indeed, in the feedback I received, I was told, among other things, that I hadn't given any, or almost any, learning methodology or advice for all this!
So, here I am.
In this page, we'll see how I learn, how I train myself, and how I go through all this, and thus act as a "self-learner".
How I manage to work between 10 and 15 hours a day, and have 7-10 hours of "flow" per day.
Tldr; practice, knowing what you want and why you want it.
First Step - The context, the place, the moment
First of all, the most important thing in my eyes, the setting: settle down, but really.
Turn off your phone notifications, turn it off. Put it far away from you, on your bed, on a dresser, in short, the phone without notifications, without emails, without social media, and at a distance from you.
Why? Because your brain will hate boredom, your brain will hate doing nothing.
So, you cut everything off, Discord, email, messages, notifications, and you put yourself in a quiet place.
For 30 minutes at the beginning.
Next time, it will be 1 hour.
The time after, it will be more.
With practice, you will be able to put yourself in states of concentration and focus for several hours, and above all, without interruption.
This will allow you to make real progress, and above all, to progress efficiently, to understand, to store information and to be as efficient as possible!
Second step - Define an objective
What is your objective? Do you want to learn JS? Do you want to learn Typescript? Do you want to learn NextJS?
Very well, you can do the tutorials here, follow the courses here, but avoid "mindless" reading. Reading, in IT, won't make you progress enormously; it's by doing that we learn, especially in development and in the IT world.
-> You find a tutorial, you follow a training course, a YouTube video. And when you listen to what he does, you slightly change the context and the subject.
Is the video about making a todo list and task management?
Do something else: manage your watched movies, manage your sports sessions? manage your shopping sprees? manage your motorcycle's fuel consumption / wear and tear of parts?
Whatever the idea, the goal is not to follow the tutorial word for word, and line by line. We take the concepts, we use them, and we conceptualize them! We modify them, and we make them our own!
Also, if you are on the "basics" of a technology, a language, IT IS FORBIDDEN to have the AI do it, we use the AI ONLY to ask questions, and not to do it in your place!
After deciding on your subject, your objective, and what you want, define what you want to do in a given time period.
1h -> ok, I'll get to this feature.
2h -> ok, I'll finish this page
3h -> ok, I'll finish this API
4h -> ok, I'll set up my VPS
etc.. etc...
Third step - Take notes, organize your life, your brain
Indeed, when learning, it's going to be complicated to understand all the concepts. Personally, I strongly advise using "Obsidian", to make "links", with the notes and the different concepts you will see during your learning. The goal is to explain everything as if you were explaining it to your mother who knows nothing about IT. Make everything intelligible, and easy to understand.
Obsidian - Sharpen your thinking
When you are on Obsidian, it can be interesting to use the concepts around the Zettelkasten, GTD ( getting things done ), and PARA ( projects, areas, resources, archive ) methods.
To summarize very roughly to avoid going too far, with GTD, PARA, and this method, the idea is that we will roughly organize our folders like this:
- Projects : everything that is being done right now, all the raw data, what is "hot", and not necessarily viable in 6 months, all the stuff on the fly, our note-taking, the daily
- Areas : everything that is consolidated. Basically, the idea is to come every week, every month, to clean up the "projects" part, and consolidate the notes. This is your "review" // "note refinement" part. Here,
we will follow the Zettelkasten principles, namely, the idea of having the following principles:- Have the smallest possible notes,
- That these notes are as clean as possible, (be able to explain them to someone non-technical, or even a child.)
- Succeed in interconnecting skills and notes, ( example, we talk about React, we will want to connect "React" to "JS Framework", to "JS" etc. )
- Resources : all your stuff, screenshots, pdf, docx, etc etc. in short, all the resources.
- Archives : everything that is outdated / old projects etc, just to keep a record
Having this kind of organization will allow you not to get too lost in your learning and ABOVE ALL to consolidate your skills as you go.
Fourth step - Start your new project, practice, practice, practice
No Chat GPT, no Claude, no Gemini, just code, by hand, cheat sheets, docs. Take the time to read, take the time to understand. Is a concept unclear? You don't understand its usefulness?
ONLY at that moment, you can use AI, not before!
Then, do, redo, and again, side projects, tests, tinker, watch YouTube videos, try to understand, to put into practice, get stuck, try to understand why it's not working.
A problem? No AI. Understand the problem, step by step, put logs everywhere, write down your logs.
Example:
console.log("step 1, this should be an object", variable_to_log)
...
console.log("step 2, this must be something else", variable_to_log)
...
console.log("step 3, it should react like this", variable_to_log)
...
console.log("step 4, does it pass here? no?", variable_to_log)
Understand, read your logs, step by step, make diagrams on paper, try to sit down and understand the issues, write down the steps, the outlines, the global code on paper.
Use debuggers: Guides: Debugging | Next.js It's a game changer!
It exists for ALL languages, and for ALL technologies, it allows you to stop your code at a specific moment, and see exactly what is in memory, where it's passing, etc.
Fifth step - Go further
Follow your path like this, tutorials, elements to go further, try to make projects useful for you and those around you,
automate your life, your processes, the processes of your loved ones, make applications, websites, tinker, again and again.
This is what will make you better! This is what is most important!
Don't think too big at once, step by step, something small, then we add feature by feature, but always functional.
We don't build a car, we build a skateboard first, then a bike, then a scooter, then a motorcycle, and finally a car.
No need to go off the rails and make an app that does 2,000,000 things, focus on the real value of your app, the global utility.
And above all, take a step back, use AI to see the extent of what's possible, perplexity, claude research or gemini research to ask for paid, open source, self-hostable alternatives, the possibilities.
Look on Reddit.
Look on Youtube.
Look on Medium.
Look on Github.
Look on the "Awesome ... ( your search )": Awesome Tailwindcss: 2 billion resources for TailwindCSS
Take what interests you, what you want, and go for it!
Enjoy! Be curious! ( and I promise you, all of this is really worth it <3 )