Coursera's "Single Page Web Apps With AngularJS" provides a very thorough coverage of the core principles of AngularJS development as well as providing an introduction to general software development principles for beginning programmers.
For those new to Coursera courses, or MOOC's (Massive Online Only Courses) in general, these attempt to make traditional University subjects available to those who cannot physically attend. Some of the benefits or being on a traditional course still apply - there is a lecturer (and you can pause and rewind the lectures), there are course assignments and there are forums where you can ask questions both of course organisers and of other students. Personally, I would say the biggest learning advantage to being on a structured course as apposed to just following tutorials etc online is the assignments. These force you to complete programming tasks to deadlines. If you miss the deadline your grade may be reduced, possibly to zero! The programming tasks are essential as they reinforce what has been learned in the lectures but it would be very easy to fall behind on them without the enforcement of the deadlines.
When I first enrolled in a Cousera MOOC in 2013, Martin Odersky's "Functional Programming Principles in Scala" course, it was completely free. The "Single Page Web Apps With AngularJS" course was also free - provided you did not want a course certificate at the end. As my purpose was solely to learn I was satisfied with that. Another difference from 2013, that surprised me somewhat but actually did make sense, was that you are tasked with marking your fellow student's assignments. After you have submitted your own work, you mark three other student's submissions and three people mark your work, your final grade is an average of the three.
The lectures were very good - attempting to explain the actual principles of how the Angular framework functions rather than just providing facts to be memorised by rote. Understandably, there was some catering to beginning programmers which slowed down the pace of the course a bit but there was still plenty of material supplied to keep everyone busy. The course lasted for 5 weeks, with a couple of hours of lectures every week and then an assignment that would take several hours to do. The assignments were checked out from github and provided starter code and templates; mostly the code in the assignments actually worked as intended and I was able to get on with developing the functionality to enhance my understanding of the lectures. Occasionally I found myself having to deal with (I assume unintentional) CSS issues and other gotchas in the provided code. From experience this is a problem with all software related MOOCs.
The best thing I can say about this course is that I turned to an Angular book I had bought after the course was finished thinking I would delve deeper into Angular. I found the descriptions of Angular in my book to be so vague and imprecise compared to the Coursera course that I gave up on that idea. The worst thing about the course was that lectures on how to unit test Angular code only came in the final week; I would have preferred these in week 1! Next year Angular 2 will be on the syllabus and I will be enrolling again.