Pattern Writing Aids Learning

It is possible to write Patterns or a PatternLanguage for subjects for which you are not yet a master.

The exercise of discovering and documenting patterns can help you master a subject. Of course, these patterns should not be published (or even distributed), but if you follow the rule of revise and rewrite, then they will perhaps improve to the point of being publishable.

I will use DonKnuth's LiterateProgramming as an example. By documenting everything as you write code, you are forced to understand what you are coding. You eliminate magic code (code that you may have cut and pasted from other sources) because you have to explain the magic away. For example, if you implement a sophisticated sorting algorithm in your code, you may not have to understand exactly how it works in order to use it. Re-casting it as a literate programming document forces you to understand exactly how the sort works. You may even find that you can improve the implementation of the algorithm.

The same can be said for writing Patterns. Writing can be used as an aid to mastering a subject. This is similar to, but not the same as, writing Patterns as part of the design process.

Keep in mind that Patterns written as learning aids are just experiments, they may not be true. In the end they will often be discarded (or archived as personal notes).

-- ToddCoram


EditText of this page (last edited November 15, 1995) or FindPage with title or text search