Hey all! This is my first post, and I’d love to introduce myself. I’m a 25 year old Electrical Engineer from Canada. For once, youtube recommendations paid off and I clicked on a random “Dominic O’Brien” lecture where he told a story about memorizing PI’s 10 digits (1415926535, the story is still in my head lol). I was completely shocked, especially because he wasn’t some sort of Autistic Savant. I always thought memory was something you either had or did not have, and his presentation completely blew that idea out of the water.
Being mostly a programmer, I’m interested in trying to use this technique for quite a different domain. If anyone here is a programmer, I was wondering you guys worked on memorizing stuff like the different overloaded functions, their return values, class signatures and templates, and other things like that. I think you’d sort of map a signature like void find_words(std::vector<std::string>& c, std::string& text); to a certain story where each type links to a object (like void could be an dark hole burning, etc…)? Lemme know if anyone here has used memory techniques in this sort of way! Or, even some good resources on creating my own mapping technique.
Yes. Focus in what you want to memorize. But don’t be stupid to memorize code verbatim, unless of course that’s what you want to do, but even if you want to memorize 1600 lines of a C++ source code, you pretty much would find plenty of shortcuts. For instance when you find namespace::class or something like that, that’s information that you know. If you recognize an snippet of code that you know is an application of a known algorithm, that’s another thing that you don’t need to commit to memory. Syntax, unless you’re literally beginning with the language then, you could help yourself making images for the syntax so you learned in a day (variables, functions, classes, namespaces, structs, pointers…). But if you already know these things or you’re miss only few, then shorten, chunk your target data to the absolute not knowns. Only commit to memory what’s to be learned.
Some people will say, coding does not need to be memorized. I say, that’s absolute stupidity. Everything that’s committed to memory is memorized, everything that’s recalled, come from already memorized ideas. What’s on your mind has been either made from the memories or acquired from input ways consciously or subconsciously if that makes sense.
Consider coding like dancing or swimming. Instead of standing up and failing to do it 50 times, and grasping it slowly or by luck. You could simply take a good look at each step the person you’re learning from makes, convert into image each step or whatever information that even the teacher does not say but you observe and you think you need to keep in mind to perform the move, then when you’re actually going to try the dance, you will do it from your memory.
Now, as you maybe interested in knowledge or skill acquisition or even if you want to compete, I’d like you to be sure you know and master these, that I consider to be the only mnemonic as “techniques” that exist: method of loci, link system (the story method, what you mentioned) and memory pegs. Also understand the relationship between the principles: location, image and association. These are essential.
The method of loci have three variations: the roman room, the journey method, and the every object method (this name I invented just now). Roman Room method: a place real or imaginary that you have memorized in your mind. Journey method, could be a place or anything else, however the positions are ordered so you follow a path. Every Object method: like your body (Body Method), a piece of soap, a Barret M89 Cal. 50, a literal book, a fox, anything really… you’d use it as a place in the Roman Room or the Journey method. The method of loci is the central technique of the art of memory. From the ancients: greeks, indians, romans… and many polymaths who advocate to have used it.
The link system, that you apparently know already, it’s super strong and many times is dismissed because you need to memory information one by one in order. But if you master the principles of memory, you’d understand how combining this method with the others, you can memorize virtually anything however difficult.
Memory pegs lists, is what’s make must of us do the impossible feats of memorizing thousands of digits, words, names…
Now, final non asked advice that I’ll give anyways: memorize and avoid procrastination. Once you know you can, it could be tempting to say: later.
LOL very true about procrastination. And yeah, the primarily focus of coding is more algorithm design, however, there’s benefits in having a good memory (sadly, auto complete popups that give us the method/member function signature and every overloaded signature have made us rely on documentation too much lol).