I need to show you how bad my mental math actually was, because the method only makes sense once you see the starting point.
To add two numbers, I counted up one at a time. For 7 plus 5, I would not “know” the answer. I would start from the larger number and tick upward, fast and under my breath: “seven… eight, nine, ten, eleven, twelve.” Every single sum, counted out. It was slow, it was exhausting, and it quietly told me, every time, that I was not a math person.
To keep the count straight I leaned on a crutch: the dots on an ordinary die. A pip die shows you a quantity at a glance, so I would picture those dots to track how many I still had to add. That worked up to 6. For anything bigger I visualized the number as a combination of smaller faces, an 8 as a 6 and a 2, a 5 and a 3. Without knowing the word for it, I was building little visual chunks so my brain did not have to hold raw numbers.
Then I realized the problem with all of it: I needed to stop counting and just know. So I built something to force that.
Why counting up keeps you stuck
Counting up works, so it feels fine. But it never gets faster, and worse, it eats your attention. Every time you stop to count, your working memory is full of the counting instead of the actual problem. In math class that means you lose the thread. In code, as I would learn later, it means you cannot think about the logic because you are busy doing the arithmetic underneath it.
The goal is not to count faster. It is to not count at all. You want 7 plus 5 to simply be 12, the way your own name appears when someone asks for it. That instant recall is called automaticity, and it is built by repetition, not by understanding. You already understand that 7 plus 5 is 12. You just cannot recall it instantly yet. Recall is a separate muscle.
The homemade drill I carried in my pocket
Here is the setup I actually built and carried around.
I got a pair of 20-sided RPG dice, the kind with real numbers printed on the faces, not dots. That detail is the whole trick. With numerals there is nothing to count. You see a 13 and an 8 and either you know the answer or you do not, so it forces your brain to memorize the combinations instead of falling back on counting dots.
To decide what to do with each roll, I made a little operation selector: a strip of cardboard folded into a triangular prism, like a miniature Toblerone box with open ends. Its three long faces were marked with a plus, a minus, and a times. I would set it on a surface, whichever symbol faced up was the operation, then throw the two D20s and force an instant answer.
I carried the dice in my pocket and drilled in spare moments. Roll, read the two numbers, do whatever the prism said, say the answer. Over and over, no pressure, no grade, no one watching. I was already solid on my times tables, so the real work was addition and subtraction, exactly the thing I had spent my whole life counting out. The dice did not let me count. After enough reps, the answers simply started being there.
The trick is volume under zero pressure, with numerals so you cannot cheat by counting. You are not studying math. You are doing so many tiny reps that the answers stop being calculated and start being remembered.
How to copy it
- Get dice with numbers on the faces, not dots. A pair of 20-sided RPG dice is ideal because the bigger range kills any temptation to count. A dice-roller app works, but real dice in your pocket means you actually do it.
- Make an operation selector if you want the variety: a folded cardboard prism with plus, minus, and times on its faces, or just alternate operations in your head.
- Roll, read, answer out loud, fast. If you have to count at first, fine. Then roll again.
- Drill the operations you are actually weak at. I already had times tables, so I hammered addition and subtraction. Be honest about your own gap.
- Keep it short and frequent. Ten minutes in spare moments beats an hour you dread. Frequency builds recall.
- Let the crutch fade on its own. One day you will answer before you can count. That is the whole goal arriving.
Why this matters for code
When I finally started programming seriously, I understood why years of shaky arithmetic had hurt so much. It was never that programming needed advanced math. It was that when the small numbers do not come automatically, they steal the mental space you need for the actual logic. Free up that space and the logic gets easier, even though the logic was never the real problem.
If you count on your fingers, if you dread mental math, if you quietly believe that disqualifies you: it does not. I added by whispering up from the bigger number, using dice dots as a crutch, and I built a cardboard Toblerone to dig myself out. I still got here. Build the recall the boring way, a few minutes at a time, and watch how much lighter everything else gets.
This is part of a series on the strange, self-invented methods that actually got me through learning hard things. The free roadmap below is where to start.