I’ve been thinking about ways to excel at thinking, inspired by thinking about the technical interview process for software engineers. Interviews famously focus on skills that are different from everyday work, but I don’t want to have to study for them by learning algorithms and carefully practicing writing them out on paper. I don’t want to “crack the coding interview”, though I’ve done that in the past with great success: you can really become quite good at being meticulous and error-free on this one task, with practice.
Instead, I want to have superpowers. I want my brain to be able to produce those optimal algorithms flawlessly, with full confidence, without taking time out to prepare for an interview.
I want the fundamental way my brain works to produce error-free thoughts, and give it a notation to naturally express itself with laser-like precision (i.e., write out code as naturally as thoughts).
So instead of focusing on “how do I solve algorithms questions?”, I’m going to focus on “what are the components of thinking, and how do I perfect each one?”.
What are the components of thinking? I hope to get more and more insight and depth around this question. I have something to start with, however: focus, creativity, thoroughness, seeing blindspots and edge cases, understanding assumptions, logical and critical thinking, systems thinking, humility, sensitivity, respect.
I want to think about how to improve each of those components. And I want to have standardized loops to measure these things for myself. I won’t be able to be scientific, but I’ll try my best to be honest with myself in evaluating exactly why the routines I choose don’t go perfectly smoothly, and figure out what sort of improvement in my way of thinking could have remedied it.
One reason I wish to improve my thinking in this way, is that I believe that applying this sort of thinking the best you can, every day – leads to a dramatic difference in how you grow, who you become, over time; I believe that through every action, the path of someone who puts this much care into every aspect of life – shines through; and I believe that that is the best way to be human, the best way to connect to other people, the best way to be a source of positive change.
I’m going to apply this to: creative puzzle solving (such as algorithms), learning pieces of music, learning Spanish, training to do a handstand, improving dancing in tango and zouk, improving my posture, a hobby project app/game that I’m working on, and my everyday work, which involves time-sensitive operations that require great care, prioritizing, scheduling, diagnosing, thinking creatively, teamwork, planning, and executing plans. I’m going to do my best to use these time slots as opportunities to watch my mind think, and understand what about that thinking lies outside of my framework for optimal thinking.
When I say “standard loops”, I mean something quite subtle. For instance, when writing out algorithms, one thing to keep track of is how good the algorithm is; similar, when practicing music, a thing to look at is how well the melody comes out. For the sake of this work, I’m not going to care about those aspects of practice at all. Instead, I’m going to care about what my mind is doing while it’s trying to come up with an algorithm and write it down, and retroactively look for what went wrong. I’m going to look at the thinking process that creates the performance process, not the performance process itself, and that will be the “standard loop”. Which is why I put it in quotes; there’s no standard path; I’d solve the same problem differently on a different day, though I hope to isolate the aspects of thinking, and practice them individually, similar to how I may practice a dance move 1000 times.
Some things that make sense to measure: how well did I understand a problem after first encountering it, how thoroughly did I explore solutions, was the solution I arrived at optimal, did I make any trivial mistakes as I went through it, did I panic or get lost or discouraged or distracted, did I lose sight of my goals, did I focus on the wrong aspects of the problem, was my solution perfect?
This will always be pushing the front in how I think, and perhaps some “improvements” will cause me to make more mistakes. I’ll have to get outside of my comfort zone, be honest with myself, and focus on the smallest, improvable details of how I think. The outcome will be thoughts, rather than numbers.