"Learn by taking apart"

I have seen over my many decades of programming that no one should invent a framework until they have completed three concrete examples from scratch.

Once you have three, you can start to see (a) what you need every time, (b) what things are optional, but most important (c) which things are correlated with other things and should be controlled from some common settings or code.

Randal Schwartz (gitter)

dart