A couple weeks ago, Yehuda Katz and Tom Dale of Tilde ran their 3-day Introduction to Ember.js Training at Bocoup here in Boston. I, along with Amanda, Doug and Chris, attended the training.
Throughout the training, attendees were building a simplified Rdio/Spotify clone using Ember. It was broken up into a series of exercises, which built upon each other. The exercises were test driven, each having set of QUnit tests that defined the exercise. Before each exercise, Tom and Yehuda would explain and demo the concepts via slides and JSBin.
Day 1 was spent outlining the core concepts of Handlebars and Ember. We started with Handlebars, which is what Ember uses as its templating language. After covering the basics of Handlebars, we learned about how Ember handles routing and outlets. After we finished routing, we moved onto creating Handlebars helper functions.
On day 2, we started off with Ember controllers and how they serve as proxy objects for the model of your current resource. After controllers, we covered computed properties. Views followed computed properties, then we wrapped up the day with creating custom controls with Ember and Handlebars.
Once we had built the majority of the app, we had a couple more exercises that built upon all the exercise we had completed. Tom and Yehuda also went over how we would use Ajax requests to pull in data from a remote source with Promises. After wrapping up the remainder of the exercises, we covered how the Ember Run Loop works, and discussed approaches to testing Ember applications.
Yehuda and Tom provided a great balance of not-to-dense information, useful demos and exercises. They did a great job of, what Tom stated as, “Providing a sufficient level of confusion” in the exercises. Before each exercise, they would provide all the information needed for the exercise, but would not give you a list of steps to complete the task. You may struggle a bit, but they answer any questions you would have during the exercise. This would help the attendees actually learn the concepts, rather than just copy/paste a set of code and modify it here and there and have it work. I, personally, felt that this worked really well.
I have worked on a couple side project with Ember before taking this training, and had a very shallow understanding of some of the concepts. Coming out of this training, I feel I have a great place to start building Ember apps. I really fleshed out my understanding of Ember and am really excited about the technology. I am planning on using it for any upcoming side projects, to really explore it further.