Kangmin Tan

CS/Math major sophomore at University of Southern California

International Master of Memory (WMC 2015)

Algorithm Enthusiast

I believe every zealous computer lover has a story about how they ran into the field and found passion. Mine is quite unusual. It starts with a rather strange hobby — mnemonics.

If you haven’t heard of mnemonics, it refers to the skills of memorization. It is a set of well-developed mental techniques that enables one to memorize random information significantly faster than rote. I was a memory athlete when I was 15, which means I practiced memorizing random numbers, cards, names/faces, words, and abstract images to compete in memory competitions. 

I got into mnemonics thinking that it is no more than a mental game like Rubik’s cube or chess. The only difference is that it entertains one’s ability of associative thinking — connecting random information with vivid figures and pictures. For instance, when I see the digits 1031, I don’t see four random numbers. Instead, I see a baseball bat hit a shark. And I have practiced to the point that the picture pops into my mind the moment I see the digits. When you think memory athletes are memorizing numbers, they are actually memorizing scenes. 

At some point, I decided to push this hobby to a professional level. In a closed training program for the 24th World Memory Championships, I locked myself up in a small apartment for four months. For more than eleven hours a day, I roamed around the memory locations in my mind, or “mind palaces,” as some would call it dramatically. Those four months are intense. The most demoralizing times were those when I ran into performance plateau. Imagine facing pages of random numbers all day for a week without seeing the slightest sign of improvement. That’s extremely disheartening. Being good at associative thinking may be fruitful at first, but when you can memorize 200 digits in 5 minutes, you need more than that to improve.

Of course, bottlenecks didn’t stop me forever. I went through a lot of bottlenecks in those months. But I found that the thing that helped me made major improvements every time is not an improved proficiency of skills; instead, it’s always a revelation about how my mind works. It’s a discovery of underlying components that constitutes a robust memory. 

For example, I learned that smells, taste, and sound could all help the mind retrieve information. Therefore, when I imagine a bat hit a shark, I not only see it, but also hear the sound of the lethal hit, feel the texture of the shark’s rough skin, and smell the blood. Then, I learned to blend in emotions because our minds tend to remember the things that churned up inner feelings. I would feel the shock of seeing the heavy hit and feel sad for the shark’s pain. Moreover, I learned to adjust my mind to a mildly belated state before start memorizing by imagining myself in a peaceful natural environment like a bamboo forest, because our minds form deeper memory when they are in a good mood. Each of these revelations and discoveries leads to significant improvement, and I shiver in excitement each time I figure out one. 

Gradually, as I continued to sharpen my memory skills, my love for mnemonics transformed into a general curiosity about the essence of intelligence, I became fascinated by the potential of human minds and excited by the idea of finding the secrets behind it. “There’s gotta be something.” I thought, “There’s gotta be something that can give me all the revelations of how our minds function, the cold hard rules that govern intelligence.” And I decided, after prolonged thinking, that the “something” must be algorithms.

After the memory championships, I started programming. I believe algorithms and human intelligence are a secret duality. Mnemonics, for example, is an algorithm to build resilient memory of random information. And some algorithms, decision tree, for instance, reveals the rules behind our daily choices and decisions. The seed of intellect, I believe, is buried deep under the mountain of algorithms. 

It’s been three years since I started my journey, and I think I am ready to share some insights from my algorithmic inquiries with you. As a retired memory athlete, I understand the power of association. When introducing algorithms, I will not only reason but also analogize, being not only accurate but also figurative. I will tackle abstract concepts by connecting them with common knowledge — building “hooks” between old and new, familiarity and novelty. I believe that is the best way to expand the tree of knowledge. And that is also one of the core values of Boplet. I would not overwhelm my readers with formulas, because I don’t want to be another Wikipedia. Just laying out cold hard logic is a good way to prove things but not a good way to understand things. So, I would try every possible method to help you build models and vivid representations for abstract ideas. Because it is important to me that you, someone who also enjoys algorithm, actually benefit from my work.

Finally, the mission of this blog is not only to help other people, but also to help myself hammer on some obscure understandings because the best way to learn something is explaining it to others. Just like Richard Feynman puts it, “What I cannot create, I do not understand.” I hope this website is a place where ambiguity recedes, and clarity comes to visit. So, dear reader, no matter who you are and where you are, as long as you share my passion for algorithms, I hope Boplet can provide you with something thought-provoking. 

GitHub | LinkedIn

Contact: kangmint@usc.edu


Copyright © 2019 by Kangmin Tan. All rights reserved.

For permission to reprint articles from this site, please contact kangmint@usc.edu.

%d bloggers like this: