The “Learn How You Fail” blog pattern is about finding the ways in which you tend to fail or make mistakes. The solution does not claim to save a programmer from ever failing (that’s not possible), but is instead about learning what tends to lead you to failure. It’s part of drawing accurate boundaries around yourself as a learner: figuring out where you can grow and improve, what tends to throw you off track, and what may not be worth the effort of improvement. The authors have a very concrete action step to help: using only a text editor, write an implementation of a simple algorithm, write all of the tests, refine the algorithm until you’re sure it will compile and pass the tests, then actually try to compile and test it to see where you failed.
Learning my weak points, where I tend to make mistakes, is a big part of my life as a gamer. I try to improve my performance (whether that’s technical gameplay, strategy, tactical decision-making, etc.) with every game. A very important aspect of that is determining what kinds of mistakes I tend to make. Where do I overthink? Where do I underthink? What can I take away from losses, and when is it worthwhile to acknowledge but let go of a weakness (at least for a while) to focus on something else?
This apprenticeship pattern also resonates with me for a different reason. I struggled through much of middle and high school with a mild nonverbal learning disability. It took years of practice and tutoring for me to really be able to work through it. An important part of that (or, I think, any therapeutic process) was finding points of failure. I struggled to express myself in writing, especially meeting word counts for papers. I had (and still have) difficulty breaking focus or task-switching. Recognizing these things was the first step to improving them.
I think that learning how you fail is not just a skill that’s important for software apprenticeship and craft. It’s an important life skill; at least, it has been for me.
From the blog CS@Worcester – orscsblog by orscsblog and used with permission of the author. All other rights reserved by the author.