Mohamed Elmehdi BOUHAJJA, Développeur FullStack chez SFEIR, nous partage son retour d’expérience sur la certification Angular.
“Passer une certification est un moyen efficace pour enrichir et valider ses compétences techniques. Malheureusement, l'écosystème front-end souffre d’un manque de certification par rapport au back-end...
Si vous êtes développeur Angular et que vous souhaitez améliorer votre employabilité, alors cet article est pour vous. À la fin de l’année 2020, pour aider les dev à valoriser leurs compétences, Alain Chautard, Google Developer Expert WEB/MAPS a lancé une plateforme de certification Angular “AngularTraining.com”.
Sur cette plateforme il existe actuellement 2 niveaux de certification :
- “Junior”, pour ceux qui n'ont que quelques mois d’expérience sur le framework,
- “Intermediate”, pour les plus expérimentés.
Dans cet article, je vous fais mon retour d’expérience suite à l’obtention de la deuxième certification, la certification Intermediate.
Voici les 3 étapes clés pour passer cette certification :
- Un QCM,
- Le développement d’une application,
- Un entretien final avec le GDE en visio.
Le prix de cette certification est abordable, il est de 68 $.
Les étapes principales du processus de certification
Le QCM
Tout commence par un QCM de 25 minutes contenant 55 questions. Le taux de bonnes réponses exigé est de 70%.
N’ayez crainte, même si le ratio temps/questions peut paraître court, les réponses sont assez évidentes.
Concernant le résultat, il est obtenu immédiatement.
Le développement d’application
Une fois que vous réussirez cette étape, vous recevrez un mail récap qui reprendra les consignes pour développer une application.
Dans ce mail, vous trouverez :
- les maquettes UI,
- le cahier des charges de l’application,
- un lien vers le code base.
Vous avez un délai de 7 jours à partir du moment où vous passez le QCM pour finaliser cette application.
Le code base contient un “blank project” avec les pages HTML et leurs CSS que vous utiliserez pour votre application. Il n’y aura pas de templating à faire.
Quelques conseils pour cette étape :
- Suivez les consignes à la lettre, vous n’avez pas à écrire des tests si ce n’est pas demandé,
- L’application peut être réalisée en 4-5h, elle n’est pas très complexe.
Une fois que vous avez fini, vous devez soumettre votre travail et vous aurez une réponse dans les 24h qui suivent.
L’entretien final avec le GDE en visio
Le plus dur étant fait, il ne vous reste plus que l’entretien final 🎉
Cette dernière étape consiste à présenter votre projet pendant un entretien de 25 minutes en visioconférence avec un GDE.
Le but de cet échange est de discuter de la solution proposée, de répondre à des questions autour du framework en parcourant votre code.
Finalement le GDE vérifie que le développeur maîtrise bien ce qu'il présente. Pour bien vous préparer à cette certification, dans la suite de l’article, vous trouverez une liste de conseils pour aborder chaque épreuve avec sérénité.
Comment réussir la partie QCM ?
Dans la partie QCM, on distingue 3 volets principaux : la partie connaissances de base du framework, la partie langage et la partie Rxjs.
Connaissances de base du framework, ce qu’il faut savoir :
- Connaître les commandes de bases proposées par Angular CLI,
- Savoir créer des composants/modules/services/directives/pipes et connaître leurs décorateurs et attributs,
- Connaître le lifeCycle des composants et leurs hooks et l’ordre d'exécution de ces derniers,
- Connaître les différents types d'encapsulation (ViewEncapsultation),
- Connaître les “change detection strategies” et leurs différences (Default, OnPush...),
- Maîtriser l’injection des dépendances et connaître quelques built-in DI tokens. (APP_INITIALIZER, HTTP_INTERCEPTORS...),
- Connaître les différentes manières de partager le state d’un composant (via @Input/@Output, via les services...),
- Connaître les buit-in pipes (async,date, currency...),
- Savoir différencier entre les différents types de directives et en connaître les plus communs :
- Directives d’attributs (ngClass, ngStyle...)
- Directives structurels (*ngIf, *ngFor...)
- Directives de composants
- Directives custom (qu’on créer)
- Savoir utiliser HttpModule pour les appels API,
- Maîtriser le routing dans Angular
- Savoir configurer son routing,
- Savoir faire du lazyLoad,
- Connaître les built-in services de Routing (Router, ActivatedRoute...),
- Connaître les directives de routing (router-outlet, routerActiveLink...).
- Connaître globalement les différences entre AngularJS et Angular 2+ (architecture MVC vs architecture de composant, Javascript vs Typescript...).
Partie langage, ce qu’il faut savoir :
- Maîtriser les bases de la programmation orientée objet en JS.
- Maîtriser les opérateurs de bases de JS. (filter, map, reduce...)
- Savoir faire du “Destructuring”.
- Savoir créer des classes, des interfaces, des types et implémenter des interfaces en Typescript.
Partie Rxjs, ce qu’il faut savoir :
- Savoir ce qu’est un observable et un Subject,
- Connaître la différence entre les différents Subject,
- Savoir utiliser l'opérateur “pipe”,
- Savoir utiliser les opérateurs RXJS les plus utilisés (map, mergeMap, switchMap, filter, takeUntil...).
Les conseils pour l’étape de développement d’application
Bonne nouvelle pour ceux qui ont la phobie du CSS ou des tests, vous n’aurez pas à en faire ! Sauf si on vous le demande bien sûr, mais c’est peu probable.
Durant cette étape, on cherche bien évidemment à valider votre maîtrise technique du framework.
La première des choses à faire avec soin est de bien structurer son projet.
Voici un exemple de structure recommandée pour un projet Angular :
Référence : https://blogs.halodoc.io/angular-best-practices/
Voici quelques petites recommandations par rapport au développement de votre application :
- Pensez à créer des composants réutilisables,
- Soignez la communication entre vos composants,
- N’hésitez pas à créer des pipes si besoin pour des formatages,
- Utilisez des directives pour tout ce qui est opération sur le DOM,
- Favorisez le Lazy-loading,
- Séparation business dans les services,
- Profitez pleinement de la puissance des opérateurs RxJs,
- Pensez au typing (typer bien vos objets),
- Utilisez les index.ts pour simplifier les imports,
- Utilisez TrackBy avec les *ngFor et favoriser *ngIf au ngClass/ngStyle,
- Changez de détection Optimisations.
Pour plus d’informations, voici une référence à suivre pour découvrir tous les best-practises: https://blogs.halodoc.io/angular-best-practices/
Comment aborder sereinement l’entretien final ?
Cette étape vient conclure la certification.
Le seul conseil que je peux vous donner est de réviser encore et encore, le développement de votre application pour être réactif aux questions posées par le GDE.
Ces questions portent généralement sur le framework et la façon dont vous avez rempli le cahier des charges proposé.
Cet exercice met en avant votre capacité de réflexion et de production de code, n’hésitez pas à mettre l’accent sur des parties réalisées dont vous êtes fier 😉
Conclusion
Cette certification est adaptée à tous les niveaux : Junior, Intermediate et bientôt Expert.
Accentuée sur le framework avec un processus riche et consistant, je recommande vivement cet examen pour tous ceux qui veulent confirmer leur maîtrise sur le framework Angular.”