Great questions @gossi! A skill tree sounds like a great way to think about the progression of knowledge and provide more structure to how you learn building ember applications.
I think order matters for acquiring skills and moving from beginner to advanced in topic. I think there would be a lot of reordering of the above topics, or even alternative orderings depending on what most interests the learner. I think you could architect and develop stellar ember applications without ever knowing the internals of broccoli.js.
Initializers are good mention to mention as well @Thameus. As a barely related, shameless plug: the community favors removing implicit injections, so that could be emphasized less in any teaching approach. (See the pre RFC)
In my experience, I find grouping concepts together quite helpful. It can also relate to experience in other technologies. For example, 2 major concepts stand out to me:
-
Thinking about state. To me this is the “cache invalidation” of the 2 hard things folklore. I think it is spot on that the Octane version of the guides dedicate an entire section to the topic.
-
building software with dependencies and managing those dependencies
The better I’ve understood these concepts the easier it has been to think of an ember application as a coherent system and tease apart internals and advanced functionality. In any application, you need to deal with state. You’ll also need to manage with dependencies.
As a naive way to navigate the order, you could ask “why do I need to learn x and what does it matter for my roles when building my application?”
I think this relates to defining “learning goals” through “evidence based learning”. While successfully applied in University settings, I think using the idea of learning objectives could really focus a skill tree.