Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ember Skill Tree #727

Closed
gossi opened this issue Apr 8, 2019 · 5 comments

Comments

Projects
None yet
3 participants
@gossi
Copy link

commented Apr 8, 2019

What kind of skills does an ember developer have? In which order will a developer learn ember? What resources are available?

Those are some of the questions we currently have to get new joiners on board with ember and how to handle this with internal learning sessions. So we thought about a skill tree, which you can walk through go gain ember knowledge on the job. In order to get to a skill tree for ember (inspired by adam-golab/react-developer-roadmap), I did a flat acquisition of technologies or skills at first. See here:

  • File Layout: Classic, Pods, MU
  • Templating: Handlebars, Helpers and Modifiers
  • Structures: EmberObject, Native Classes
  • Decorators: Using and Writing!
  • Routing (includes Routes, Router, and Controllers)
  • Components: Ember, Sparkles, Glimmer
  • Component Patterns
  • State Management (tracked and computed)
  • Services
  • Testing Technologies: QUnit, Mirage, Sinon
  • Documentation: How to document (UML - ?) the workflow of a particular feature
  • Concepts of the Ember ecosystem: Apps + Addons + Engines + node packages
  • Creating addons and engines
  • Low-Level Ember: ember-cli, broccoli, babel, glimmer

This list for sure is incomplete. So, I was wondering whether we can create such a skill-tree together and align it with the guides?

@mansona

This comment has been minimized.

Copy link
Member

commented Apr 8, 2019

I'm personally thinking of the "Journey of becoming an Ember developer" in a slightly different way right now 🤔 I don't know the value of showing the "full tree" all at once to anyone, all of my experience training people is that this is more harmful than helpful because it just points out how much you don't know and how hard the technology is.

My view on the wider journey is a series of steps where you can be productive, but only with a small set of skills. For example, @locks has been working on extracting out the tutorials into a new site where we can have multiple tutorials that get progressively "harder". If someone were to do the new "quickstart" tutorial or the most beginner tutorial that we have on that site I would expect them to be able to do templates and routes, and that's about it 🤔

This would mean that you're productive writing Ember apps but you just don't know how to do some of the more complex data access things or anything to do with controllers (like data filtering). In fact, if you wanted to create an empress-blog template you don't even need to know routing, you just need to know about templates and components.

Then if we have multiple definitions of productivity (i.e. what we expect a particular "type" of developer to be able to do) then we can write a global map of what we need to learn to get from one point on the map to another.

I'm not sure I have explained my point enough here but let me know if you would like any more clarity on it 👍

@gossi

This comment has been minimized.

Copy link
Author

commented Apr 8, 2019

I don't think there is anything contrary to the whole idea in your answer :) In fact, it works in quite well in harmony. Let me go through it:

Skill Tree:

The skill tree here is clearly to show the path on how you can reach to a certain skill it is definitely meant you don't need to learn or know them all. Depending in which environment you work, those skills will most probably be different. If you join a new environment, you can see in which area you have to improve. With a skill tree this can be made visible.

Tutorials:

Those tutorials will help you learn one or multiple skills. That's nice, so you can point out at the beginning that at the end of that tutorial you will be able to do x, y and z - nice. Just map them to the skill tree and you have a material/courses associated with skills from the tree.

Empress:

Let's take it as a use-case example here. Given you would state all the skills required to fully work on this project and by viewing at the tree the path to learn them is visible. Depending on how much you already know, that truely might be overwhelming and might fence off people. That approach would be stupid, indeed. Instead an approach would be to pick a particular issue, something very beginner friendly, then map it to the skills in the tree. That way you can say: "hey, these are the skills for this issue, you gonna learn them as you finish this." Looking them up in the skil tree will reveal tutorials that'll teach them and will make a developer productive for that issue. That's the connection here.

Hope that makes it more clear.

P.S. I've been working with skill trees in sport before, they can easily have you busy learning the next 3-7 years (depening on how much you put in) ;)

@locks

This comment has been minimized.

@gossi

This comment has been minimized.

Copy link
Author

commented Apr 8, 2019

Yeah, that's the contents. Would be wrong if they differ. As stated in discord:

It's more looking for a framework in which a learner can achieve learning steps and a teacher is able to monitor and mentor it.

@gossi

This comment has been minimized.

Copy link
Author

commented Jun 28, 2019

@gossi gossi closed this Jun 28, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.