Three Books on Angular

Programmers routinely use Stack Overflow as a brain extender these days, but there is still a place for long-form tutorials and well-organized reference guides. These can do more than inform: they can shape how a technology develops by guiding readers in particular directions, and simply by existing, they tell developers what their peers find interesting.

By this last measure, Angular is doing pretty well these days. As someone who was new to Angular six weeks ago, I found two particularly useful.

The first is Asim Hussain's Angular 4: From Theory to Practice. This short, lively introduction to Angular covers everything you need to know to build your first Angular application, from components and data binding through dependency injection and services to routing, forms, and testing. The framework's capabilities are introduced in a logical order, and the writing is light without being shallow. It took me a couple of tries to get through some parts, but that had more to do with the complexity inherent in an enterprise-scale framework like Angular (and in my unfamiliarity with modern JavaScript) than with the book itself.

The second book I would recommend is Frisbie's Angular 2 Cookbook. As the title suggests, this is a collection of recipes for people who already have some idea of what they want to do, but aren't sure how (or how best) to do it. The first chapter discusses upgrading from earlier versions of Angular; subsequent chapters cover the same topics as Hussain's book, but in more depth. The author presents each example in small steps with changes highlighted to make it easy to follow along. I found Chapters 6 (routing), 8 (organizing and managing applications), and 10 (performance) particularly helpful, but have lots of sticky notes marking other places as well.

Note: this book was written before CLI 1.0. The CLI has become an essential part of Angular development and offers a good starting point for most applications. It might not matter as much for advanced users who care a lot about webpack configs and customizing the testing tools, but it should still be in every developer's toolbox.

One book that I wouldn't recommend is Fain and Moiseev's Angular 2 Development with TypeScript. The authors clearly know their way around Angular, and individual sections of the book are quite useful, but the overall organization is confused, and terms and features are often used before they are explained. I liked the use of callouts to draw attention to particular aspects of example code, but found myself doubling back much more often than I wanted to.

Angular is complicated because the problems it solves are complicated. Its internal documentation is much better than it used to be, and tools like Augury dispel a lot of mystery, but there will always be a place for good tutorials and reference works. With Hussain and Frisbie's books, Angular has at least one of each.