Punching Through the Board

May 24, 2024

A black-belt kicking through a few boards, as three others hold the (now-broken) boards, looking away.

In my youth, I practiced Tae-Kwon-Do1. I had very little talent, but I still learned many valuable lessons. Few of those lessons were directly related to computer programming, but I have a knack for drawing tenuous connections between code and the outside world.

Board-breaking was an occasional2 event in the school that I trained with. We didn’t do anything too fringe3 (mostly thin4 boards), but it was still sketchy5 enough to be taken somewhat seriously. Thus there was usually a lot of talk leading up to breaking, including the famous advice to “punch through the board” (not into it or at it).

The precise meaning of this might take a little thought, as it’s sort of an odd way to describe a movement (though it might seem intuitive for some): the words “through the board” don’t directly describe any concrete technique, but a way of conceptualizing a motion, a frame of mind to have during the split-second execution of the punch (or kick, or other technique). The underlying technical definition is one of velocity: keep the speed of the punch steady, despite the target.

This advice is necessary, because it’s in our nature to adjust for the board. Our hyper-awareness of the board’s presence makes it natural to slow our fist as it approaches. We must deliberately fight this instinct to make a clean and successful break.

Boards Not Made of Wood

Programmers face many challenges throughout software development. Each challenge can be viewed as a board to be broken6. The same challenges (and advice) apply to these metaphorical boards.

In the same way that it’s easy to lose momentum as the fist approaches the board, it’s easy to lose motivation as a problem (or commit, or project, or milestone) nears its solution (or immediately after)7. This is a natural inclination, but it slows us down and creates less force to break the board.

This is especially true if you’re trying to break multiple boards with one punch (this might equate to multiple commits when developing a feature, or even multiple unrelated challenges tackled with a single kreplit8). The boards might be spaced out, so the velocity of your fist when it reaches the first board doesn’t do much to help you break the boards beyond it. It’s critical that your fist maintains momentum as it passes through each board, because, as soon as it slows, the subsequent board will refuse to break, and you will be left sore-knuckled and egg-faced.

We can attain this through the same strategy used to break physical boards: by focusing on punching through the challenges: by refusing to slow once a task is done, by finding a rhythm to commits, by preventing ourselves from getting distracted in those critical moments where we decide between stopping and taking one more tug on the strand of solution.

This mind-set can be applied on the next level up too: each punch (or kreplit) can be thought of as a bigger type of board, which is punched by a bigger fist (a work/grind-session), and each of those is its own board, which is punched by an even bigger fist (the work week), etc.

The Two Mindsets

Imagine a spectrum of the degree of adoption of this mind-set. At one end, you have the people who fear board-breaking, and dreadfully break one board at a time. They view each board as an unpassable obstacle, a chore, an annoyance, a pain. It’s no wonder they resent board-breaking: it is slow and painful for them, and highly unsatisfying and unrewarding.

On the other end of the spectrum, you have people who can break large stacks of boards in single smooth strokes. They either think of the boards as fragile, conquerable speed humps, or ignore them entirely, focusing on (and sending each punch towards) the space beyond the boards. They either enjoy board-breaking, or they’re indifferent about it.

Personally, I’ve frequently seen myself with both mind-sets, often when breaking similar (or even indistinguishable9) boards. I’ve found that there is little space in the middle of the spectrum: most days are either painful grind, or blissful spree. The latter is the most efficient and enjoyable; the feeling resembles that of an addicting video game. The former exemplifies my experience with school.

Finding Balance

This is all easier said than done. You can’t expect to constantly be on the grind, 10X-dev mode, tackling swathes of problems with minimal effort. There’s a physical limit to how many boards a human can break with a single punch. That being said, I have reason to hope that the skill of “punching through” can be trained, and that we can teach ourselves to solve more problems with less effort by moving more smoothly and decisively (unthinkingly) from one problem to the next. And by doing so, we can break more boards with fewer punches, and savor the process of board-breaking a little more.

  1. Here’s proof, if you insist. ↩︎

  2. Most notably, it was required for testing (for promotion to the next belt level). ↩︎

  3. “fringe” = many stacked (and spaced) boards, cinder blocks, other bizarre materials. ↩︎

  4. ~1in, as shown in the picture. ↩︎

  5. Usually the action of breaking the board itself is pretty safe, assuming proper technique: I don’t recall anybody ever getting injured from hand-on-board. But there are several other mechanics of breaking that could go wrong (most notably if the target is missed, and something else (a person, the apparatus holding the board) is hit instead). ↩︎

  6. If you want to get really detailed on the analogy, you can view the different varieties of challenges as boards of different material and thickness, in a variety of locations (calling for different techniques). For example, making a trivial change to documentation might be a centimeter-thick sliver of wood that can be sliced like butter by a downward knife-hand strike (your typical “karate-chop”), while finding the cause of a seg-fault might be more like breaking a cinder block with a flying back-piercing kick. And that wicked interview problem you’re supposed to white-board in 30 minutes is like trying to break a stone pillar with a high-flat finger-tip thrust. ↩︎

  7. The reason for this loss of momentum is different depending on the situation and the person. Frequently it might be a “burn-out” or “senioritis” mentality, but it can also be a more positive/celebratory slow-down, or anything else that causes disengagement or a pulling away from focus once a problem is solved. I’m sure there are fine-tuned ways of dealing with each variant, but that’s beyond the scope of this post. Frequently, these feelings are subtle and unnoticed: my goal is to bring awareness to these difficulties and to push through them, not necessarily to find ways of preventing them (though the latter might be necessary or helpful in some cases) - this is consistent with the analogy, as the instinct to slow down is never completely extinguished, it’s just fought against (and doing so becomes easier over time). ↩︎

  8. I learned about the wonderful word “kreplit” (“a unit of time and attention”) from a Jessica Kerr talk. You can imagine a kreplit equating to a single punch or kick. ↩︎

  9. Usually my enthusiasm and ability to “punch through” decays over time for very specific types of board (i.e. very-similar problems grow monotonous), yet the opposite is true for loosely-related boards (I get better at general problem-solving). ↩︎