(More Than Just a Complete Backbone.js Tutorial)

Duration: 25 to 30 hours
Prerequisite: JavaScript knowledge of 5/10

Below, I provide you with a comprehensive study guide that I myself have used (indeed, I have refined it for this article) to learn Backbone.js properly. This study guide should take just about 30 hours to complete.

[sc:mongodb-book] After I learned Backbone.js, the first application I built was an eCommerce web application for a client—a startup. I built the entire app, including the shopping cart, with Backbone.js and Node.js.

Backbone.js Is Friendly
Backbone.js is neither difficult to learn nor difficult to use, and the time you will spend learning to use this serviceable framework will be well worth it, for you will learn how to use one of the most popular front-end frameworks and learn how to build modern web applications on the front end. In addition, you will see your market value as a JavaScript developer rise, since Backbone.js developers are in high demand.

Before we Continue
I should note that Angular.js and Ember.js are robust and feature-rich front-end frameworks that offer more than Backbone.js, and they allow you to develop applications with less code than Backbone.js. Nonetheless, I still think developers should learn Backbone.js first, particularly because it is easier to learn and provides you with a solid understanding of what a JavaScript framework is and how a JavaScript framework functions.

I chose Backbone.js for the aforementioned eCommerce web application because I had only a few days to learn a JS framework and I needed a proven JS framework since I was developing a web application for a client. And at that time (around 2012) Backbone.js had the more thorough documentation and the most active community of all the front-end JavaScript frameworks. In addition, Backbone.js had the most impressive list of real websites and web applications built with the framework.

What is Backbone.js and Why You Should Learn It

If you have never used a JS front-end framework before, you will understand why nearly every modern web application uses a front-end JS framework.

What is Backbone.js?
Backbone.js is a JavaScript front-end framework that provides the structure and organization for your application code, the event-based communication for your application, and the necessary interconnectedness for your data, application logic, and user interface (the HTML/CSS elements seen on the web page). Simply put, Backbone.js allows us to develop applications, the front-end in particular, much easier and better (more scalable, reusable, and modular code) than using just a bunch of related and unrelated JavaScript functions stacked on top of each other, a concept known as Vanilla JavaScript.

Why Learn Backbone.js
You should learn Backbone.js if:

  • You do not already use a front-end JavaScript framework and you intend to develop single-page web applications or complex JavaScript web applications.
  • You want to start programming JavaScript in a more organized, structured manner, eschewing the old way of having all of your JavaScript code mixed with HTML and without separation of concerns (that is, the logic, the data, and the presentation aren’t sufficiently decoupled).

Get The Two Backbone.js eBooks (one free one very cheap—$4.99)

  1. First, download a free copy of Addy Osmani’s Developing Backbone.js Applications

    Addy Osmani is a prolific writer who writes book-length blog posts and articles on web technologies and programming, particularly JavaScript. He has written on a myriad of JavaScript topics and just about all of his works are available online for free. However, since his book Developing Backbone.js Applications is only $15.81, I recommend you own a copy and keep it as a reference; you will need it. You can order it on Amazon.

  2. Instead of the Addy’s book, you can buy the book “Backbone Tutorials” at the link below:
    https://leanpub.com/backbonetutorials

    Note that most of this article focuses on the Developing Backbone.js Applications book, but you can use Backbone Tutorials; just follow along with the relevant topics, accordingly.

Roadmap to Mastering Backbone.js

All the links below open in a new tab, so that you can read the articles and quickly come back and follow the study guide.

  1. If you already know JavaScript well, and you feel invincible when you sit to code in JavaScript, carry on with step 2 below.

    If you don’t know JavaScript well enough to develop a full, interactive quiz application with just JavaScript (no jQuery), you should learn JavaScript Properly.

    If you know enough JavaScript and want to proceed, but you feel you need a JavaScript refresher, read these 3 articles (in the order they are listed):
    JavaScript Objects in Detail
    JavaScript Variable Scope and Hoisting Explained
    — (Must Read) Understand JavaScript Closures With Ease

  2. Read the following 4 blog posts for the conceptual understanding of Model, View, Router, and Collections:
    What is a model?
    What is a view?
    What is a router?
    What is a collection?
  3. Read the entire tutorial at the link below (note that it is a bit old, but still valid) and study and understand it carefully, but don’t try to build the app just yet:
    Backbone.js Wine Cellar Tutorial — Part 1: Getting Started
  4. Read Developing Backbone.js Applications from the beginning (Prelude) to the Backbone Basics chapter.
  5. Read these 2 blog posts:
    The Responsibilities Of The Various Pieces Of Backbone.js
    3 Stages Of A Backbone Application’s Startup
  6. You should be able to build the simple Backbone.js application you studied in section 3 above. Return to that tutorial and build the application.
  7. Return to Developing Backbone.js Applications and read the Exercise 1 chapter (and build the application), then read the chapter titled Common Problems & Solutions followed by the chapter Exercise 2 (and build the application in exercise 2).
  8. Read the Modular Development chapter and build whichever application(s) you want to build from this chapter. You needn’t build all of the example applications.
  9. Follow these two tutorials (these are a bit old too, but still accurate):
    Backbone.js Wine Cellar Tutorial — Part 2: CRUD
    Backbone.js Lessons Learned and Improved Sample App (This is a MUST READ)
  10. These are 4 MUST READ articles:
    — (Learn how to communicate among views and subviews)
    References, Routing, And The Event Aggregator: Coordinating Views In Backbone.js
    Revisiting The Backbone Event Aggregator: Lessons Learned
    — (Managing Page Transitions In Backbone Apps)
    Learn How to transition between views and how to properly dispose of viewsZombies! RUN!
    Why Should I Use Backbone.Marionette Instead Of … ?

That’s It! (Almost)

At this juncture, you have learned enough to build any Backbone.js application: you have gone from absolute beginner to attainment in under 30 hours, if you stayed the course.

But to really understand and retain what you have learned, you must build a real, single-page web application.

11. If you are involved with backend as well as front-end development, you should read either my post Learn Node.js Completely and with Confidence or Learn Meteor.js Properly. After you learn either, you will be able to build complete modern web applications.

12. With a complete understanding of Node.js and Backbone.js (or with Meteor.js), you will be ready to build any type of web application. You can also build a startup at this juncture, if you are intrepid.

If on the other hand you only develop on the front end, you should learn Angular.js or Ember.js, if you want a high-paying front-end developer job. Also, consider Facebook’s React.js (a new front-end framework), which some large Silicon Valley firms and other companies are using today.

But before you head off on your adventure, build the NodeApp web application at the link below; this exercise provides a real-world exercise in Node.js/Backbone.js web application development:
http://dailyjs.com/web-app.html

Important Extras

  1. Read the following chapters in Developing Backbone.js Applications to further advance your knowledge on the Backbone.js ecosystem:
    — Backbone Extensions
    — Backbone Boilerplate And Grunt-BBB
    — Mobile Applications
    — Unit Testing
  2. Learn Handlebars Templating Engine
    Handlebars templating engine is much more robust and feature rich than the simple template engine bundled with Backbone.js (The template used in Backbone.js by default is from the Underscore.js library, and Underscore.js is Backbone.js’s lone dependency).
    Read my post, Handlebars.js Tutorial: Learn Everything About Handlebars.js JavaScript Templating.

The Backbone.js Documentation is Great; You Will Use it Often

Once you start developing on your own, you will find yourself making frequent stops to the Backbone.js documentation. This will likely be the website you visit most often, when you need help figuring out how to do any myriad of things while developing a Backbone.js application. Here is the link:
http://backbonejs.org/

Be good. Sleep well. And enjoy coding.