Resources for Learning Ember.js

Overview

A while back I had decided to checkout and study a JavaScript framework. There are tons of frameworks out there – so which one to choose?

I choose Ember.js as the framework that I was going to learn. My reasoning was that I liked Yehuda Katz’s approach to software and Ember’s adoption within industry. I also liked one of Ember’s core tenants of not making breaking changes in a major version.

I worked on this for a few weeks trying to put a little bit of time each day when I could (amongst all my other personal and work responsibilities). I think that my timing was a bit off because Ember 2.0 was in the process of coming out and all documentation (whether the official documentation or books describing Ember) was off. I got little headway because I was straddling the which Ember should I study line. When asking for ideas on the best approach I got the advice of sticking to 1.13 while also getting the advice that 2.0 changes things drastically even though it’s just a removal of things.

I’ve decided to put my Ember studies on hiatus for now. I’ll revisit when it has more stable documentation-wise and I’m able to get a more solid mental model of Ember 2.0.

The purpose of this post is to list out some resources that I’ve come across. The Ember community is really friendly and really smart. If you’re looking for Ember information then this post may be useful to you. Of course the best source of Ember information is the the Ember website and the community.

What is Ember.js?

Wikipedia has a great summary of Ember’s philosophy:

What is Ember.js?

Approach

My approach was as follows:

  • Learn about the Ember community and the available resources
  • Apply what I learn to a project of interest
  • Document the highs and the lows

Wes Bos wrote a great post about how to approach the constant change in the software industry.

Ember Community and Available Resources

I like to soak in the the components of a framework. Here are some things that I found along the way.

Ember’s site

Where to begin but at the beginning – http://emberjs.com/ .

Ember's site

Twitter users worth following

I used Twitter’s ‘lists’ feature to create an Ember specific list. I found these users to be full of Emberness 🙂

Twitter users worth following

Reading the fantastic Ember newsletter

A very nice weekly newsletter from http://emberweekly.com

This newsletter give you a feel for the current happenings in Ember.

Reading the fantastic Ember newsletter

I had started reading the ember-cli 101

I came across a recommendation for https://leanpub.com/ember-cli-101 from the an Ember screencast site (https://www.emberscreencasts.com/faq). I looked around other authors and Adolfo seems to be amazingly eager to keep his book and his readers up-to-date. He certainly deserved the $35 suggested payment for his book.

I had started reading the ember-cli 101

-> ember-cli 101 (continued)

Adolfo deserves even more than $35. Have you heard of 24 x 7 support for a book? I haven’t seen that anywhere else.

-> ember-cli 101 (continued)

Ember podcasts

The Ember Weekend podcast – a nice casual weekly podcast about Ember related projects.

The Ember Land podcast – latest and greatest release and Ember evolution

Ember podcasts

Slack Channel

You can find the Slack channel on this page: http://emberjs.com/community/

Ember has a Slack channel. Lots of helpful folks and it seems flame-free for newbies though you should of course do some due diligence before asking questions.

Slack Channel

Possible places to start from

These are some things that I’ve encountered and like everything else in this post – it’s all opinion.

Where to begin?

I started reading through the ember-cli 101 book, but the problem (my problem) was that it didn’t give me the architecture/mental model for Ember.js. It looks like a great hands-on lab type of book. So I needed to find something more along architecture/mental model.

Where to begin?

Frank’s article is about architecture

Frank Treacy wrote a great article about Ember’s architecture: http://emberigniter.com/5-essential-ember-2.0-concepts/ . I read through it and although the MVC concepts make sense. The pieces he describes don’t click for me. He has some code examples but this code forms a partial application. I needed something that’s more like a whole pie rather than slices of different pies that are put next to each other.

Frank's article is about architecture

John Fisher had a good article about how he ramps new developers at his company

The article is at http://spin.atomicobject.com/2015/08/24/learn-ember-js-quickly/ . It’s a good source of information but it is geared towards experienced developers (John states this upfront).

John Fisher had a good article about how he ramps new developers at his company

-> Starting Ember Guide

While John’s Ember guide links go to 1.13, I went to the 2.0 guides since this changed just happened. Unfortunately, the 2.0 docs seemed a bit out of sync.

-> Starting Ember Guide

Ember Weekend recommendation for a book

The Ember Weekend guys have the best show notes that I have ever seen. They recommended Balint Erdi’s book.

Ember Weekend recommendation for a book

Rock and Roll with Ember.js

The “Rock and Roll with Ember.js” book can be found here: http://balinterdi.com/rock-and-roll-with-emberjs/

Looks interesting…but now that ember-cli 2.0 is out – does that mean that the book is still valid?

Sent questions to the author. Balint was extremely responsive.

Rock and Roll with Ember.js

Balint’s response to my questions

Balint also mentioned that he’s working on a 2nd edition of the book for Ember 2.

Balint's response to my questions

So…

So if I go with 2.0 – it’s still in the oven being baked and there aren’t books/materials to support Ember 2 beyond scattered tutorials here and there. So no cohesion. If I stick with 1.3, then I get the books and (per Balint) “90% it is the exact same thing as 1.13”. So get clarity with 1.13 or go with 2.0 with significant less support materials. Which one to pick?

The Ember core team is committed to “stability without stagnation” (per https://en.wikipedia.org/wiki/Ember.js)…so understanding 1.3 should lead me into 2.0 without too much headaches. So initially I went with 1.3.

So...

Time to ask on Slack (EmberJS Community – #needhelp channel)

Time to ask on Slack (EmberJS Community - #needhelp channel)

Slack response

Slack response

Bought “Rock and Roll with Ember.js”

This was for Ember version 1.0 when I bought it a few weeks ago. As of 10/06/15 “Rock and Roll with Ember.js” has been revised to 2.0. I’ve gotten a couple of updates since that time.

Bought "Rock and Roll with Ember.js"

Conclusion

Hopefully some of the resources I mentioned are useful to you. If you’re an experienced Rails developer then Ember seems like a natural choice and it is likely to be easy to pick up. For all other developers and newbies Ember 2.0 is the way to go and up-to-date docs are almost here.