89

I've posted a few candidates for educational codebases before, and I'm wondering what would be a good taxonomy for them.

One approach could be by programming language, but I don't think reading code as a means of education is worth the time if what you can learn from it does not transcend the language.

Another idea would be to divide by application types, but that is rather arbitrary. You could learn many design techniques from for example the implementation of a compiler, but you'd have to know what you're looking for already.

Then of course there are aspects like the complexity of a codebase: how much time do you need to invest.

I think an educational codebases as a tool for self-study would profit from a companion document, which gives a coarse overview on what to expect and maybe pointers where to start, where to skim, what to ignore.