- for the sake of learning programming languages
- each branch is bound to a group of branches related to a specific language
- the most specific branches
are focused on implementation of a single concept, algorithm or a task
- the most generic branches
are focused on being the base of all of it's sub-branches