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