Chicken Curry, Piece by Piece
For most of my adult life, I solved problems in the wrong way.
I either hoped for a lucky insight and ‘got it’, or I gave up.
I tried to mimic the historical science movies. The main character has a big eureka moment when they’re staring into space. Like John Nash in the bar, something clicks, he runs back home, and classical economics is changed forever.
I wished for this kind of ‘mini-moment’ every time I came across a problem.
This is partly because of how science is taught in school. You see really clever things done by great people, which are then condensed over decades into a neat line of reasoning. Like wow, how did Dirac come up with the anti-matter idea so neatly?
It’s also quite appealing to just leave a problem up to a dice roll - laziness.
But this is an unreliable way to fix things.
How I really learned to solve hard problems, was by cooking.
It took five years to be able to replicate mom’s chicken curry.
Cleanly organise the ingredients. Take time to do so.
Heat the oil to medium. Fry the herbs until fragrant. Cook onions, garlic and ginger until perfectly brown. The temperature can’t be too high. Curry powder goes in. Cook for thirty minutes. Chicken in. Keep salting throughout. At last, a dash of coconut milk.
To get the flavour, I had to perfect each step in isolation.
A step was only ‘learned’ when my brain no longer had to use any mental energy to do it. It’s either committed to muscle memory, written down, automated or delegated. Slowly reducing the degrees of chaos, like carving a gem out of rock.
This had to be done fully, with each step I was learning at the time. Only then, did I have the strength to move on to the next one.
This compartmentalised, clean approach to make a complex dish has inspired my current, most reliable way to solve problems.
I call this technique ‘solving by destruction’.
It doesn’t matter if it’s in research, bike touring or writing - it works for me.
Suppose I have a big problem.
I first ‘destroy’ useless and messy features of the problem I’m trying to solve.
The main way to do this is cleaning.
It is the organising step of the ingredients of the curry.
This takes around twenty percent of my total work time.
Yesterday, I had hundreds of lines of research code that lead to a weird result. I changed everything about the code that ‘annoyed’ me. I changed weirdly named files and variables. I broke down scripts into smaller ones. I made scripts that automated parts that had to be run manually. I put in effort to destroy complexity.
If I’m planning a complex bike tour (I’m going cycling on the wild Atlantic coast in Ireland in May), this means sorting, organising, and resorting complex parts like bike tools, equipment and bike maps. Hell, sometimes even cleaning my desk counts. I then lock up everything that’s ‘done’ in a separate file and only focus at problems which are not obvious.
That leaves a ‘clean’ problem that is either a) easily solvable and I’m done, or b) I have something really hard, and that’s interesting in it’s own right.
If it’s the latter, I break it down even more.
It’s now time to cook individual components to the best of my ability. Like starting to fry the onion and garlic.
This step takes eighty percent of the time.
I find smaller features of the problem that I can easily do. The parts should be fixable preferably within the day. For example, if I don’t understand the relationship between two physical quantities in a complicated formula, I’ll write code to graph out the different cases.
If I’m writing an essay, the text should be rewritten over and over again so that these ideas are easy to digest.
Like slowly simmering the chicken, practicing over and over to get it moist.
If it’s mathematics or engineering, my favourite trick in the book is to look at small cases. Do I understand how a problem works when the numbers involved are just one and zero? Or in chemistry, if I find something too hard to analyse, I try to see if it works on a simple water molecule.
I solve these sub-problems to the point they don’t require any extra mental bandwidth. Even a slither of difficulty that comes thinking about these prior steps is unacceptable.
At the end of all this, if I did this correctly, I should be left with sub problems that I have done, that I previously couldn’t do.
Now it’s time to add the finishing touches, like a neat write up, or publishing.
The dash of coconut milk at the end.
And that’s progress. The next day, I repeat the process with the parts I couldn’t do, and I’ll eventually get there.
A tasty curry lies in wait for me at the end.
