About 6 months ago I started learning Ember.js. The first few months I was spent reading the Ember.js Guides (which are amazing by the day), and going through every screencast I could find. We had some Ember projects at work, but the main reason for learning it was to overcome some of the limitations and code clutter that was starting to present itself in more advanced Backbone.js applications I'd worked on.
While the subject of learning Ember.js is still fresh my mind, I wanted to share what worked for me.
Warming Up With Ember.js
@pull left @
I'll start at the end. This isn't what I used to learn Ember.js, but it is the result of everything I learned. In December of 2013, Code School released Warming Up With Ember.js, a course which teaches Ember.js from scratch. It features over 100 minutes of video, with about as much time also doing in browser challenges. It's the result of much research, discussion and incorporates feedback from many people to create what I think is the best way to get started using Ember.js. It's the resource I wanted going in.
I lucked into being able to write the content of the course, in that I got to immerse myself in the very lively and thriving Ember community. If you choose to go down the Ember.js path, I'm sure you'll understand what I'm talking about.
Ember.js Main Site
@pull left @
After downloading the library from the Emberjs.com, reading over some of the examples on the homepage helps understand what you can do with Ember. It might be too complicated to understand if you're just getting started, but going through the guides will help that.
The Ember website has an amazing Ember.js Guides page which has really taken shape in previous months. They walk through all of the main types of objects you'll encounter in an Ember.js application one by one. This is format that's extremely helpful when getting started and not overwhelming. We do this in the Code School Ember course as well, but the Guides have more space to go into increased detail on individual topics.
The only downside of the guides is that if you're getting started you might not know what you need to focus on from them. After trying out some of the concepts mentioned, I'd often return to the guides and then better understand the shape of the problem and solution.
I'm a sucker for screencasts. I learned Ruby on Rails almost entirely by watching every single Railscast video -- once to watch and a second time implementing them. Seeking out high quality Ember.js screencasts proved a little more difficult though -- not because there weren't any, but because there weren't many.
Pluralsite (formerly Peepcode) has a pair of Ember.js videos which I watched early on when I was learning Ember.
@pull right @
Fire Up Ember.js
In early 2013, the only long form Ember.js screencast I could find was the Peepcode, now Pluralsite video, Fire Up Ember.js. Geoffrey Grosenbach does an amazing example walking through the individual parts of Ember and going into nested routing, Ember Data and some user interaction. I learned a lot from this screencast, and would put it as the best screencast for learning Ember (well, besides the Code School course).
The downside is that it was released in January of 2013, before Ember 1.0 and Ember Data 1.0rc. There have been a good number of changes since this time, especially concerning Ember Data (ie, using
store rather than
App.Model everywhere). The bulk of the content holds up well, but if you're just getting into Ember, it'll be difficult to know which parts are out of date.
Play by Play: Yehuda Katz
The Play by Play with Yehuda is also a good one. He spends about an hour doing the Ruby on Rails side, then another hour on the Ember.js side. It doesn't cover learning Ember from scratch in the same way as Fire Up does, but it concentrates on solving a real world problem, and is worth watching if you have a Pluralsite subscription.
Erik Bryn put up Embercasts, which includes a handful of free Ember.js videos. The amount of content is rather small, but they're free and dive into some more advanced topics like authentication and building an autocomplete widget.
Ryan Florance released 8 great screencasts that start from scratch with Ember on Ember 101. These start with an introduction to Ember and progress from there. These were some of the best free screencasts I came across, and watched the first few multiple times.
Tom Dales Talks
Tom Dale, one of the Ember core team members, has given a number of good talks on Ember as well. I'd suggest checking out Ember.js and URLs from the EmberATX and AustinJS meetup as a good one. Ember has a huge focus on URLs, and Tom really drives this point home in his talk. For an even more fun talk, check out the Tom Dale vs Rob Conery Cage Match; Ember JS vs Angular. Although having a framework author go against a framework user might set Angular in poor light, it's still a funny and fun talk contrasting the frameworks.
I'm still a book reader when it comes to learning new frameworks, but as Ember hadn't yet hit 1.0 when I was learning it there weren't too many options available. There's a good list of all of the available Ember.js books on EmberWatch.
Heretical Guide To Ember JS
The Heretical Guide to Ember JS is a solid book for understanding parts of Ember, especially if you're coming from a Rails background. It doesn't deal with the data layer, be Giles compares most of the concepts in Ember to their Rails counterparts. I think a lot of the concepts in the book are now covered in the Guides though.
Ember.js in Action
@pull left @
The Manning book, Ember.js in Action (currently in beta), by Joachim Haagen Skeie proved a little too much for me. It's written more like a traditional textbook, introducing all of the parts of Ember up front. I wouldn't suggest picking this one up for learning Ember from scratch. It might be worth a look through after you have some experience under your belt, but considering this is the first graphic in the book, you might be struggling from the start. The book is still in beta, so some of this might change before it reaches production.
Emberwatch is probably the place to look for new Ember resources. This post is what ones I used, but many of them were discovered thanks to EmberWatch.
If you're wanting to emerse yourself in Ember, here's a few people you should follow:
- emberjs - Official Twitter Account for Ember.js
- Yehuda Katz - Core team member, and Ember creator.
- Tom Dale - Ember Core team member and pun creator.
- Trek Glowacki - Core team member
- Peter Wagenet - Core team member
- Leah Silber - Core team member
- Stefan Penner - Core team member
- Alex Matchneer - Core team member
- Kristofor Selden - Core team member
- Luke Melia - Founder of Yapp, and runner of the (very large) NY Ember Meetup
- DeVaris Brown - Ember Hotseat Host
Building a Project
Like just about any subject, it's good to have an idea in mind of something you want to actually build. For me, it was Warming Up With Ember.js, but also a Read List page for my personal blog. Good luck learning Ember.js!