Self-Taught Learning Methodology

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 )