In the realm of programming, the English language often comes into play, interview questions keep changing, and new technologies emerge frequently. It would be beneficial to remember all this information, keep it fresh in your mind, and stay well-versed, but let's face it, we often lack the time to memorize and especially to dedicate time to revising such material.
However, it's not always rational to do so. Speaking from experience (and I hope some of you can relate), when we attempt to revise certain information in our minds, we notice that it's not very well-structured. Sometimes, we remember some things well, while others not so much.
Some information sticks in our minds based on associations, while some is incredibly hard to remember no matter how much we repeat it. Unfortunately, that's how our brains work.
For instance, when we learn new words (tickets/questions), some topics/words come to us effortlessly, and we grasp them immediately, while others require repeated drilling before they stick.
In the context of this situation, if we set out to learn 500 new words/questions/tickets at once, it becomes evident that we might end up wasting time and effort revising questions we already know perfectly (since we've already memorized them), while forgetting others.
On the other hand, if we completely abandon the questions/words we've learned, after some time, we might forget those too.
So, what's the solution in such a scenario, and how can we achieve perfect memorization under such conditions?
Let's first take a look at the graph:
Ebbinghaus was fascinated by the idea of studying "pure" memory—memorization unaffected by thought processes. In 1885, he published the work "Über das Gedächtnis," which contained the results of his self-experimentation.
Ebbinghaus memorized meaningless syllables and then tested himself at intervals, recording the results. These results were plotted on a graph, thus, yielding the "forgetting curve."
The experiments revealed that after the first flawless repetition of such syllables, forgetting occurs very rapidly.
Within the first hour, up to 60% of the information is forgotten, and after 10 hours, only 35% of the memorized content remains. Subsequently, the forgetting process slows down, and after 6 days, about 20% of the initially memorized syllables remain in memory, with the same percentage retained after a month.
In general, almost any information tends to be forgotten after some time, and achieving perfect memorization requires periodically revising the necessary information over a long period. I must mention a slight peculiarity in these studies: they are based on memorizing meaningless syllables, information that doesn't carry any associations for our brains.
However, in the real world, almost any information for us will contain associations.
As I mentioned earlier, some topics/questions/words are better remembered than others, so such words need to be revised less frequently than others. You can manually perform all these operations (determine how well I know this word, rate it/give it a certain level, and revise it less frequently).
However, let's not reinvent the wheel and use ready-made applications and services for this purpose:
Here's what I found on the internet on this topic:
apps.ankiweb.net, the best application for this purpose
I can say that I personally use Anki for such purposes. It's a cross-platform FREE application available for Android, MacOS, Windows, and the web. There's also an iOS app, but it's developed by a different person, and unlike other platforms, it's paid. In Anki, we can add cards and create study materials ourselves.
It incorporates all the necessary algorithms mentioned above, and I've learned a tremendous amount of material thanks to Anki. In general, I highly recommend it to everyone!