Angular Progression Ladder
The Angular progression ladder is a grouping of concepts and skills relevant to Angular programming. It provides aspiring Angular programmers with a way to track and improve their Angular skills.
| novice | |||
| CONCEPTS | SKILLS | RESOURCES | COMPLETED |
| Angular versioning | The Angular versioning & release schedule | link link | |
| Angular CLI | Angular CLI is a tool to initialize, develop, scaffold & maintain Angular applications | link link | |
| Bootstrapping the application | Learn how to bootstrap the application | link | |
| Components | Introduction to components, templates, views & syntax | link link link | |
| Component's template in-line | HTML template of components in-line | link link | |
| Component's style | Component's style, special selectors, in-line styles | link link link | |
| Life-cycle hooks | Learn where components trigger actions at specific points in the lifecycle | link | |
| Interpolation | Interpolation in Angular for binding, template expressions & expression/statement context | link link link link | |
| Property binding | How to bind into properties, targets or use interpolation instead | link link link | |
| Other bindings | Attribute binding, class binding, style binding, event binding | link link link link | |
| NgFor | How to use the built-in NgFor structural directive | link | |
| NgIf & NgIf-Else | How to use the built-in NgIf & Else structural directives | link link link | |
| NgSwitch | How to use the built-in NgSwitch structural directive (NgSwitch, NgSwitchCase & NgSwitchDefault) | link | |
| NgStyle | How to set inline styles dynamically by NgStyle | link | |
| Services | Introduction to services, DI, singleton services & examples | link link link | |
| HttpClient | Usage of HttpClient service, reading response, headers & more usages | link link link link | |
| Feature Module | NgModules for the purpose of organizing code | link | |
| Browser support | Supported browsers & polyfills | link link link | |
| Typescript configuration | Overview about TS configuration for Angular projects | link | |
| Deployment | Deploying your Angular application & optimizing for production | link link | |
| advanced_beginner | |||
| CONCEPTS | SKILLS | RESOURCES | COMPLETED |
| Communication from parent to child | How to communicate from parent to child via Input | link | |
| Intercept Input property changes | Learn how to intercept Input property changes by Setter & ngOnChanges | link link | |
| Communication from child to parent | How to communicate from child to parent via Output | link | |
| Communication by service | How to communicate among components by service | link | |
| ViewChild & ViewChildren | Learn more about ViewChild & ViewChildren APIs | link link link | |
| AfterViewInit & AfterViewChecked | Learn more about AfterViewInit & AfterViewChecked events APIs | link link link | |
| Directives | Directive overview, types, respond to events & binding to Input property | link link link | |
| Pipes | Parameterizing pipes, chaining pipes & custom pipes | link link link | |
| Built-in pipes | Get to know the built-in Angular pipes | link link link link link link | |
| Pure pipes & Impure pipes | Learn the differences between pure pipes & impure pipes | link link | |
| Routing fundamentals | Router outlet, router links, active router links & registering routes | link link link link | |
| Activated route | Full view of what the activated route API exposes | link | |
| Hash location strategy | Hash location strategy vs Path location strategy | link link | |
| competent | |||
| CONCEPTS | SKILLS | RESOURCES | COMPLETED |
| Environments | Set up different named build configurations with different defaults | link link | |
| AOT Compiler | The Ahead-of-Time (AOT) compiler | link link | |
| Template driven forms | Introduction, example, data flow & testing template driven forms | link link link link | |
| Template driven validation | Form validation in template driven forms | link link | |
| Reactive vs Template | Common & differences of reactive & template driven forms | link link | |
| Reactive forms | Introduction, example, data flow & testing reactive forms | link link link link | |
| Reactive validation | Form validation in reactive forms | link link | |
| Modules import order | Notice the modules import order | link | |
| Sharing modules | Organize and reuse shared modules | link | |
| Routing: Wildcard | Intercept invalid URLs by adding wildcard routes | link | |
| Routing: Redirects | Redirect URLs to the default route | link | |
| Routing: Parameters | Get route params, either using observables or snapshots | link link link | |
| proficient | |||
| CONCEPTS | SKILLS | RESOURCES | COMPLETED |
| RxJS: Observables | Learn basics of Observable, subscribing, error handing and practice! | link link link link link link | |
| Async pipes | Impure async pipes, caching pipe, pure pipes & managing subscriptions | link link link link | |
| Lazy loading modules | Learn lazy loading feature modules & routing configuration | link link | |
| Guards | Learn guards, can-active and securing routes | link link link | |
| Testing: Set Up | Setting up & Continuos Integration | link link link link | |
| Testing: Implementation | Testing services, components, attribute, directives, pipes & debugging | link link link link link | |
| Content projection | Use content projection to reuse flexible components | link link | |
| Change detection | Change detection mechanism, dive deeper, on push detection & ExpressionChangedAfterItHasBeenCheckedError | link link link link link | |
| View encapsulation | Look at the shadow dom view encapsulation | link | |
| Language service | See the Angular language service, Installing it & Set it up on your IDE | link link link | |
| expert | |||
| CONCEPTS | SKILLS | RESOURCES | COMPLETED |
| Security in Angular | Security contexts, Sanitization, XSS, Safe values & Http vulnerabilities | link link link link link | |
| Internationalization: i18n | Setting up locales, pipes, template translations, source files, plurals & merging | link link link link link link | |
| Service workers | Learn the prerequisites, getting started & tutorial for PWA | link link link | |
| Angular Universal | A complete tutorial per steps of how to prepare your app for Angular Universal | link link link link link link | |
| Dynamic components | Loading components at runtime & dynamic content projection | link link | |
| Dynamic forms | Creating forms dynamically | link link link | |
| Angular animations | Getting started, simple transition, state, styles & timing | link link link | |
| Routing with animations | Add animations to routings | link link | |
Please note: This section is about Angular Framework, if you are looking to know more about Typescript check out the Typescript section
This is a community-driven document, please share your feedback, help us to improve it. Please open an issue or send us a PR on Github!
Contributors
| Alejandro Lora | https://twitter.com/alexpc_ |
We need your help!
This is a community-driven project, please share your feedback and
help us to improve it.
Please open an issue or send us a PR on GitHub!