While starting my stage-hand project I ran into several ‘black box’ problems. After spending a frustratingly inordinate amount of time ripping code apart, I was able to identify two separate problems. One was an easy to make mistake that I thought I had checked for early in the debugging process. The other problem didn’t make any sense at all, but thankfully I stumbled across an explanation that made a load of sense.
An expert is a person who has made all the mistakes that can be made in a very narrow field.
Part of my learning process is to determine and implement ways to avoid repeating mistakes.
In this case, I had a mental process to check for the first of the two errors I encountered. Clearly this mental check wasn’t enough.
The second error is so illogical and, as a result, made a pretty indelible mark on my brain, so I doubt I’ll make that mistake again.
Both problems plagued my unconscious for the better part of a day before I realized that they are each errors that:
- move me closer to being an expert.
- were extremely difficult to diagnose.
- need to be shared with others; in particular, their symptoms need to be shared.
In keeping with my “don’t repeat the same mistake”, it also occurred to me that it would be useful to have a list of “all the mistakes” that I run into [1][1], their symptoms, and —if it’s not already obvious— their solution.
So, I’m starting a new blog tag “ATM” to collect this information.
[1]: “Well, at least the notable mistakes but ‘all the notable mistakes’ doesn’t sound as impressive as ‘all the mistakes’, and ‘atm’ is a way cooler acronym than ‘atnm’!””