How to start learning AngularJS

Although very popular, good and comprehensive AngularJS learning matarials are only starting to emerge. It's easy enough to jump into the framework, but no doubt you will quickly get stuck and with some misfortune, you could land on a well meant but outdated Stack Overflow answer.

If I would start learning Angular JS today I would:

  1. Do the tutorial phone app on the Angular website
    It is the best overview of all that Angular has to offer and has tests for all the steps, which are often missing in other tutorials.
  2. Get a big book
    There are at least a few now. My current favourite is the ng-book. It has a good pace and lots of examples. Read it and keep it handy.
  3. Start building something
    Find a project and start building something straight away. Angular has a lot of gotchas, often relying on core javascript features (prototypal inheritance for scopes, pojo's for models) as well as employing some "hacks" to get things like DI going. It's good to experience these early on, so you know where things are not what they seem.
  4. When you are stuck, watch some videos or dig into articles
    Check this repo by jmcunningham for a ton of various resources on Angular. A very popular destination for bite sized videos is egghead.io.

Bonus step:
Build your own Angular - at the time of writing, this is an early-access book. The content is second only to reading the source code itself, but much easier to chew down.