# Things you need to know if you work with Angular

There are other choices out there but Angular is a great framework overall. There might be things that are a little odd but once you understand them you can build good software with Angular.

Unlike React, Angular is a fully fledged framework, not a rendering library.

This little guide is not meant to be a comprehensive tutorial or guide, but links to other resources where you can learn about critical topics in depth.

I’ll be editing this guide every now and then, when I find other things to add. If you know a good resource that should be link let me at vlad dot wtf know and I’ll add them.

In my view, to be a good Angular developer you need to understand a bunch of core things from the framework. Those are:

1. Dependency injection. Understand the lifecycle of services, when they are instantiated, whether there will be one or more of them, when are instances of services thrown away, etc.
2. Change detection. Why is the default change detection strategy generally a bad thing to use? Why immutable data has pretty much nothing to do with this (but it keeps popping up in blog posts)?
3. The router.
4. RxJS. Really dig into observables, subjects, and the gazillion utilities already written for them. They’re awesome. Don’t just .toPromise() (nothing wrong with it, but you’d be missing out).