Andrew C Wang's Blog

Rubik's Cubers to Programmers

Edit History

I just watched a bunch of Asian kids like Yiheng Wang do cubing at 3-4 seconds average pace. To this day, I’m not sure how people thought Chess players would be good programmers. The rationale was that Chess was logical, and programming is naturally logical. But I’ve never found Chess to be that logical? I think Rubik’s cube solvers is a better analogy. There are tons of algorithms and strategies to solving Rubik’s cubes, but now that we have competitive cubing averaging 3-5 seconds, the strategy is even more interesting than before. Before, most people were simply aiming to solve a cube as fast as possible with the best memorized algorithm based on single turns. I still remember a lot of tips about learning as many algorithms as possible and choosing the one with the least turns.

But the complication has arisen in that your hands can only move so fast, so cubers do parallel turns. This means the most algorithm isn’t necessarily the least number of turns or most optimal turns, but rather the most optimal turns that maximizes using all your fingers in parallel like spinning two different sides that are unblocked from each other. I think that’s a great way of analogizing parallel computing and deciding how to parallelize processes to be faster than simply maxing out CPU/RAM and continuously optimizing code assuming you’re on a single process.

Side note, after these children solve their Rubik’s cubes, they start messing, decompressing, destressing might I say by ferociously turning a second cube on the table? It might be for competition reasons like changing up a cube, but I think it’s like their form of a smoke break to let out stress lmao.

Edit: turns out he doesn’t do parallel spins; boy is just fast af. He’s just very good at pattern matching, which makes this analogy comparable to chess. Yiheng and XuanYi both do simple calculations, but are able to pattern match which path leads them to faster turns rather than simply minimizing turns.

I liked this Reddit answer for training geniuses like Lionel Messi or Yiheng:

He started young. He was coached from the beginning. The cube wasn’t a mere toy. It is a tool, a sport’s tool. He was teached all the best techniques from the start. No room for trial and error. As an example a chess player https://en.wikipedia.org/wiki/Susan_Polgar She was taught by her father László Polgár, who sought to prove that children could make exceptional achievements if trained in a specialized subject from a very early age. “Geniuses are made, not born,” was László’s thesis. I saw a documentary about her many years ago. Her father wanted to prove his thesis. He exposed his daughter to different games/activities to see what she’d like. When she showed interest in chess he started teaching her.

And I think it generally true. It’s why we have prodigies in the first place. It’s why our geniuses were geniuses from the get go like Einstein. But it requires giving people natural interest. I think for my kids, I’d rather let them discover intellectual activities that provides them skill at an early age. And if that doesn’t work, they can go into business or product management.

I find dinner conversations most useful. I grew up to want to do business and politics because of my dinner conversations with mostly my dad (who loves American democracy given where he’s from) and sometimes my mom and sibling who also went to business school. When I went to business school, it was even more astonishing. My parents aren’t in business, but my classmates were fully prepared and seem to have a natural edge at all subjects because many people’s parents were already in the field, so these kids’ minds were just tuned from the start.

Now, some people can escape the need for (good) grooming via genetics, ambition, and natural interest. But I think it’s good to train kids early on for whatever interest they derive from because of the minimal responsibilities they have.