You've probably noticed a lot of chatter lately about the Ember.js framework and rightfully so. It aims to make it substantially easier to build single-page web apps by abstracting a lot of the complexities for writing scalable and maintainable MVC-based code. And developers are jumping on-board in droves.
Over the last year, the project and the framework have evolved quite a bit and while it's just now reaching a very stable point in its life, the frequent changes to the API over the last year has left quite a bit of outdated documentation. The net effect is that if you pick the wrong learning resource, you could end up with a bad experience because the tutorial doesn't match the current state of the framework.
This happened to me as I was ramping up and I want to ease your ramp up time by listing out some great resources for learning Ember. The resources I'll list, at least at the time of this writing, I know are current and useful for getting a good understanding of how Ember works and is structured. So follow along as I jot out some great learning resources for you.
I'm going to be a little biased here because I'm the author of this series, but the feedback I've received tells me that I did a decent job of outlining the basics of Ember. The four-part series takes you through the core concepts of Ember, setting up the framework, using templates, defining your model, routing and a whole lot more.
It was a learning experience for me and I tried my best to distill some of the headaches and complexities I encountered. Ember makes a lot of things incredibly easy, while some parts are "pound your head against a wall" difficult. Having the help of the Ember core team, especially Yehuda Katz and Tom Dale, was incredibly beneficial and helped me to articulate some of the nuances of the framework that the docs simply don't provide.
Free is a great thing, especially when it comes to Ember training and we've served up a full premium course gratis to our readers. Check out the full
set of videos which walk you from setting up Ember to building an app.
The Ember project's main site is a great starting point for getting started with the framework. It does a great job of organizing a lot of the pieces that comprise Ember and the documentation is robust. The team took some knocks early on because the docs weren't as comprehensive as developers wanted, but that was to be expected for a growing effort. The cool thing is that they've been responsive and you can see the documentation evolving rapidly (daily at times). For example, Tom Dale recently recorded a great video on how to build an app in Ember which is now part of the intro section of the docs.
And the documentation itself is structured in a way to walk you through a logical path for understanding what Ember is about. While there's always room for improvement, all in all, the docs are solid and what it doesn't provide can be supplemented with the countless tutorials available or by asking questions on the discussion group.
In addition, the community section of the site helps you learn about how to contribute to the project, meet new developers or find help. And don't forget that with Ember being open-source, the source is easily available to you on Github.
One of the great apps that leverages the Ember framework is Discourse, the recently launched discussion platform project lead by Jeff Atwood and Robin Ward. It's allowed the Ember team to dogfood their own work by using it as a vehicle for developer support. And it's awesome to see such an incredibly talented community. These are devs that are living and breathing Ember and you can feel confident that most any question will be answered. On top of that, courtesy and professionalism are enforced throughout to ensure that discussions stay on track, helping community members instead of raging out of control in some negative fashion.
Just note that depending on the topic or question, you may be asked to post on Stack Overflow for better results. In looking at Stack Overflow that's not necessarily a bad thing since the Ember section there is VERY active.
This has become an essential source for everything Ember-related. The site does an amazing job of scouring the Internet for great Ember content. The key thing is to look at the date when something was posted and of the article itself. Almost everything prior to 2013 will be outdated in terms of Ember's API so if you stick with the fresher links, you should be fine.
With that said, though, EmberWatch has categorized the content to make it easier to find the type of stuff you want to learn from. Whether it's a screencast, book, podcast or post, EmberWatch has you covered.
I'd also recommend following them on Twitter for the latest updates to the site.
He didn't fail taking on a project called Ember 101 with the intent to help new developers get up-to-speed in Ember. The best part about it is that his videos are technically sound and FREE.
The series walks you through all of the core aspects of jumping in Ember and Ryan made sure to include an explanation on each page as well as sample code to work with.
I would definitely urge you to check this great resource out as you're starting your Ember journey.
This was the best money I've ever spent on a screencast. Sometimes you just need to hear someone walk you through the concepts and Geoffrey Grosenbach did a stellar job with his Ember screencast. Everything from the way he discusses each concept to the demo app he built along the way is presented in a fashion that is easily digestible and understandable.
The saying, "You get what you pay for" definitely applies here because it's super high-quality work.
Ember apps rely HEAVILY on templates. In fact, in my opinion, if you're not going to use templates, not only are you in for a really rough time but you might as well just build everything without Ember.
One thing I appreciate about the Ember team is their desire to not reinvent the wheel. It's evident in their choice of jQuery for DOM manipulation and parsing and the use of the Handlebars templating library for managing templates. So it makes sense to point out the Handlebars site as an important resource because you have the full breadth of its API available in your Ember apps.
The Ember docs will highlight certain key parts of creating templates, especially when it comes to data binding, but for the full picture of what you can do, you should checkout the Handlebars API.
Some people learn by reading. Some need to sit in a classroom. Others are quite content with videos. Then there are those that learn best by seeing actual code. This is where Discourse comes in. I mentioned earlier about the fact that the Ember project's discussion forum is based on the Ember-powered Discourse. Well, there's a really great upside in that the Discourse team released their product as open source allowing you to see the code of a real-world Ember system.
This is a really big deal because it's one thing to attempt to learn by the school of hard knocks and another to be able to check out a system built by highly-regarded developers like Jeff Atwood and Robin Ward. And because this is such a high-profile Ember project, it's bound to get a lot of scrutiny and code review. I can't stress enough how valuable a learning resource this is.
Speaking of valuable, you have to check out Robin Ward's blog. He's been on a tear putting up great posts about leveraging specific features of Ember. The fact that he's building out such a large-scale app allows him to offer invaluable advice on how to structure your code and properly use the features Ember has to offer.
Be sure to also catch him on Twitter and don't be afraid of his scary avatar. He's actually a pretty nice guy.
I only recently found this blog for Billy's Billing, a small business accounting software shop. I was pleasantly surprised when I found a number of high-quality Ember-related blog posts. You might be wondering why I would link to it. Well, it's because historically, I've found many of the best posts about a technology come from companies that are very vested in it. And you can see that here.
Additionally, I like the fact that they're not trying to teach you Ember basics. They're posting up things that they've obviously struggled with and want to share the solution. A great example is their post on representing data structures as trees in Ember.
The main thing I hope, is that this post helps make the Ember learning curve substantially smaller. Ember is a non-trivial framework to learn and every bit of up-to-date information you can grab will help you grok it faster. That last part is important. Remember that there is a lot of old content out there and you need to make sure you're focusing on the best stuff.
Also, please realize that this is by no means an exhaustive resource. There are countless blog posts that do a fantastic job of digging into Ember. This article doesn't aim to list them all. It's meant to give you a jumpstart so that you don't have to fumble around trying to find useful resources. And hopefully, it will help you build amazing apps.