# Learning Ember: Ember Skill Tree

**URL:** <https://discuss.emberjs.com/t/learning-ember-ember-skill-tree/16725>\
**Category:** Learning Team\
**Created:** [June 28, 2019, 11:10am UTC](https://discuss.emberjs.com/t/learning-ember-ember-skill-tree/16725 "2019-06-28T11:10:09Z")\
**Posts on this page:** 1\
**Showing post:** 3

<div class="post-metadata">

**Author:** ![efx](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.emberjs.com/efx/32/17920_2.png) [@efx](https://discuss.emberjs.com/u/efx)\
**Post date:** [July 1, 2019, 1:57pm UTC](https://discuss.emberjs.com/t/learning-ember-ember-skill-tree/16725/3 "2019-07-01T13:57:48Z")

</div>

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](https://github.com/emberjs/rfcs/issues/508))

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:

1. Thinking about state. To me this is the “cache invalidation” of the 2 hard things [folklore](https://martinfowler.com/bliki/TwoHardThings.html). I think it is spot on that the Octane version of the guides dedicate an [entire section](https://octane-guides-preview.emberjs.com/release/state-management/) to the topic.

2. 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”](http://www.cwsei.ubc.ca/resources/learn_goals.htm). While successfully applied in University settings, I think using the idea of learning objectives could really focus a skill tree.

---

_[View the full topic](https://discuss.emberjs.com/t/learning-ember-ember-skill-tree/16725)._
