EmberJS :: Beyond the tutorials

How I got started with EmberJS

I’ve been trying to learn and get better at writing good idomatic EmberJS code. At times I’ve been extremely frustrated and at other times I’ve been extremely delighted.

For the past 3-4 years ago I’ve been involved and contributed to an alternate .NET web framework called FubuMVC. Much like EmberJS, FubuMVC was an ambitious project that was primary spearheaded by a few huge open source contributors in .NET. I believed it was a better way and that learning to use the framework would make me a better developer.

But not all of these last 4 years have been what I would consider fun. In a lot of respect pinning down a stable version of the framework was frustrating. Things moved fast and API’s changed often leaving you on a treadmill of upgrading the framework and fixing bugs.

It’s for these reasons that I avoided EmberJS for a long time, but after spending some time at my local emberjs meetup. I was told that things had gotten a lot better after the huge router rewrite and that Tom Dale and company had started getting much better about backward compatibility. I’m not sure how I get attracted to these types of frameworks but I figured I’d jump in.

With that I’ll give you the first thing I did

Joined a local user group

The emberjs meetup is by far my favorite meetup group in Austin. It’s really diverse, there’s a retired 60+ year that got super excited when he got the TodoMVC app working with ember. It’s exciting to hang out with everyone at the meetup and it gets me excited to keep coming back and sharing what I’ve learned. I went to the meetup for the free beer and conversation and stayed for the awesome people and surprisingly awesome framework.

Super duper level 1 beginner stuff

Read the doc and getting started guide

The next thing I did was I browsed through some of the material on the homepage, but I’m a pretty smart guy and I’ve been around the block a few times. It didn’t take me long to understand the patterns and I quickly needed more than just a two or three page explanation of how to create a home page, about page and link them with outlets and link-to helpers.

Free course on tutsplus

Next thing I did was watch the series on tutsplus. It’s a great video series but still left me wanted a little bit more complex concepts.


Not a lot of videos but I kept coming back to it from time to time for a refresher on basic syntax things.

Heretical Guide To Ember JS

Heretical Guide To Ember JS was good. It was a quick read, but it was still very beginner. In the final chess game example, it was helpful to see something a bit out of the ordinary written in ember. I liked how it wasn’t route heavy but still had a few controllers and views. It was still super basic and ultimately not what I was looking for. If you don’t understand what the jankly named classes of the Model+View+Controller+Template+Router (or whatever the hell its called) pattern are supposed to do in Ember this is the book for you. He explains the architecture really really well.

Peepcode Fire Up Ember (yes I really did watch and read all this stuff)

Fire up ember was again… very basic, it doesn’t go much further than the free tutsplus course but it’s great for getting started.

What helped me get to level 2, not so beginner nooby shit

Lurking the #emberjs freenode channel

I lurked the IRC channel for weeks, looked at the crazy questions people were asking and inspected their jsbin snippets that they would send in. It can be a little overwhelming and you’re not going to see immediate benefit from it but it help me pick up a few things like
* How and when to use a CollectionView and what that does for you
* Upcoming api tweeks a changes for the link-to helpers

Read the source code noob

TravisCI and Discource kind of helped but I still have little to no clue whats going on in those code bases. I know they are doing some non-trival things but it a little to much work for a noob to look at the code or get the apps in a running state to debug any of it.

The emberjs source docs are awesome and I constantly reference them.

Nerdyworm‘s github account and blog helped me a lot to do simple things like open dialogs. That’s where it finally clicked for me on how to pass models around your application using actions

K now what

So it’s been about 4 months and I still feel like a beginner in the framework. Maybe it’s because I knew FubuMVC so well, I’ve read almost all of the source code and helped write and fix bugs in a big chuck of it. I like having that kind of deep knowledge of a framework. EmberJS is pretty big and the way its organized isn’t familiar to me yet. It’s not like BackboneJS where you can read the entire source code in about an hour.

I think the investment will be worth it. I’ve used a lot of client-side tech (backbone, knockout, requirejs) and ember the best I’ve used so far. They have solved a lot of the pain points and things that bothered me about (Single Page Apps). It feels like all of the binding power of knockout without the code organization and scoping problems. It really cuts down a lot of the ceremony that I was experiencing with backbone.

About Ryan Rauh

My name is Ryan Rauh and I like shiny things. If I've seen it on twitter more the twice most likely I've looked at it or tried it. I really like memes and other silly and seemingly useless things out on the internet. I blog about things *I* think are cool and interesting, I hope you will find them cool and interesting too.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Great post! Not looking to start a flame war just asking a simple question: have you looked into Angular at all? The obvious comparison is Angular vs Ember (vs Backbone?) and Im just genuinely curious your findings/opinion. Thanks!

    • rauhryan

      I haven’t really looked at Angular and I haven’t built anything in it.

      I wrote a significantly complex application (HuBoard) in backbone js and wanted something that would handle updating the UI more dynamically.

      I happened to jump onto Ember and have been pretty happy so far. I don’t have a bias or anything I really enjoy the people at EmberATX so that’s kind of what finally convinced me. If you liked this post I can write more about my experience later.

      • Im definitely interested in hearing your experience making the switching from Backbone to anything else. We are currently in a situation where internally we are in the decision making phase of choosing between Backbone and Angular. Trying to really weight the pros and cons of each etc. Our internal app is fairly robust with some fairly intense GUI type widgets. (currently written in vanilla framework closely resembling Backbone) Thanks!!

  • Really nice! I can tell I followed up the most of your trajectory in Ember.js. Coding every single day and reading about it, watch videos from local meetups, following some Ember.js Crew and deep going into Docs.
    I am really feel powerful with Ember.js and everything around it. Keep it up.

    • rauhryan

      I still feel like a noob tho, there is so much stuff in the framework and very little material on complex things

  • Toran Billups

    Awesome post, I’m super pumped to see another great community growing up around ember.js => Wish I had a dedicated group in my area, so for now I’m using the JS user group I run to brainwash everyone :)

    Because no one is talking about how to unit and integration test ember.js apps yet I wanted to drop a plug for my screencast (totally free / ad-free) as it’s a great start for anyone new that wants to build up a test suite


    • rauhryan

      You can plug my blog anytime Toran, you are one of the many I have stalked on IRC :)

  • So glad I came across this. Great resources for where I’m at with learning Ember. Thanks, Ryan!

  • Vysakh Sreenivasan

    Except for the local meetup, irc part, I had the same experience and 2 months. I should confess I did not learn anything by it, though they were awesome screencasts.

    The best approach to learn ember in my opinion is:

    1) Going to http://emberjs.com/guides/, watching Tom Dale’s youtube video, build the same app myself, first looking at the screencast, next without looking at the screencast.

    2) I had a requirement from my client to do, I tried to build that requirement using ember. In that process I started to look from http://emberjs.com/guides/concepts/core-concepts/ and all the sections, wow! what a simple yet awesome gem!. Now, I have two production ember apps :) Loving it.

    So, the best approach to learn ember is to build an app(a complex one?).

  • You can plug my blog anytime Toran, you are one of the many I have stalked on IRC :)

  • I tried this process and its not working , getting an error for invalid token

  • Hoang Thuan

    good post, thanks for sharing useful information kizi

  • kendasuka

    Ryan Rauh hello!

    I am glad to capture the information that you have introduced, I appreciate your contributions to the community of readers kizi new games | friv | a10 | enemy

  • g9g

    Write significantly less code with integrated Ember’s hand drive model that automatically updated when the underlying data changes.!
    G9G Games / Kizi Games

  • Christian Andrade

    If you like Backbone maybe you should have a look on Marionette, simple Backbone on steroids ;)

  • I think the investment will be worth it. I’ve used a lot of client-side tech (backbone, knockout, requirejs) and ember the best I’ve used so far. They have solved a lot of the pain points and things that bothered me about (Single Page Apps). It feels like all of the binding power of knockout without the code organization and scoping problems. It really cuts down a lot of the ceremony that I was experiencing with backbone. I neet it