The Breakable Toys pattern addresses the issue of learning by making mistakes in an environment where failure is not an option. This can mean that learning substantially more difficult. The solution that they propose is to build yourself an environment in which failure is allowed to happen. The apprentice does this by creating a pet project (even if it’s reinventing the wheel) and just trying things until something works or something sticks.
This pattern really resonates with me and the way I learn. I can’t just pick things up by reading code or manuals, or copying premade solutions. I need to get my hands dirty and build things. Sometimes I’ll “sketch out” programs first by building a skeleton of files I know I want and adjusting as I go. Sometimes I implement the core of code and let the rest of the program grow around it. Neither approach is necessarily suitable for a professional environment where expectations may be high, but it helps me learn.
I also think that the Breakable Toys pattern can be applied in a more limited way to a more pressured setting. While you might not be able to just declare failure when tasked with writing a section of code, you could take a couple of runs at it if the logic or the language involved are unfamiliar. The main difference between this and Breakable Toys (maybe this is Partially-Breakable Toys? Scratchable Toys?) is that you still need to deliver a working end-product in reasonable time. The toy can’t be the whole assignment or program, but maybe it can be part of it. This approach, however, doesn’t have the longevity implied by the authors.
I really appreciate that this pattern is in the book. Playing with problems, writing code, failing, and then finding ways to do what I want to do is how I learn things. It’s also a big part of what I love about software development. Reading about something like the way I prefer to learn in a book like this makes me feel validated about my learning methods, like I’m on the right track.
From the blog CS@Worcester – orscsblog by orscsblog and used with permission of the author. All other rights reserved by the author.