Du möchtest die JSNAD Zertifizierung und brauchst ein paar Tipps? Dann bist du hier genau richtig. Ich habe diese Zertifizierung abgelegt und möchte hier meine Strategie erklären.
Am Anfang würde ich die Leute unterteilen, die die Kosten selber tragen müssen und die die es bezahlt bekommen. Letzteren empfehle ich das gesamte Paket mit Kurs zu buchen und ersteren eben nicht. Wenn man sich die Webeite anschaut, bekommt man auch den genauen Überblick über die Themen und die Gewichtung. Aufmerksame Leser erkennen direkt, dass es sich zum größten Teil um die Überschriften aus der offiziellen Nodejs-Dokumentation (hab die 16er Doku als Beispiel verlinkt) handelt.
- Was sind Buffer und wie funktionieren sie?
- Wie erzeugt man sie?
- Wohin kann man sie transformieren?
Aufgaben
- Instanziiere Buffer.
- Lese und Schreibe die verschiedenen Datentype.
- Spiele mit den verschiedenen Methoden der Dokumentation.
Kontrollfluss
Inhalt
Empfehle diese Docs zu lesen:
https://nodejs.org/dist/latest-v16.x/docs/api/globals.html
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Promise
- Wie funktionieren Callbacks, Promises?
Aufgaben
- Erzeuge eine Kette von Callbacks.
- Erzeuge einen Promise und fange die Fehler ab.
- Stoppe einen laufenden Promise.
Inhalt
- Wie erzeuge ich aus node heraus einen child process ( wie führe ich mit nodejs weitere Anwendungen aus)?
- Welche verschiedenen Typen gibt es und was macht den Unterschied aus?
- Welche Optionen gibt es?
- Wie komme ich an die logs / den output heran?
Aufgaben
- Erzeuge einen solchen process und gebe die Ergebnisse auf der Konsole aus.
Inhalt
- Wie bringe ich nodejs in den debug-Modus?
- Wie verknüpfe ich Chrome mit nodejs?
- Wie halte ich an Breakpoints an?
Aufgaben
- Löse die oberen Fragen :-)
Inhalt
- Welche Fehler gibt es?
- Wie und wann werden sie geworfen?
- Wie wirft man sie programmatisch?
- Wie fängt man sie ab?
Aufgaben
- Fange Fehler aus Promises ab.
- Schreib einen eigenen Fehler.
- Versuche in Abhängigkeit des Fehlertyps eine andere Fehlermeldung zu werfen.
Inhalt
- Welche Kommandozeilenparameter gibt es?
- Wie lade ich Abhängigkeiten vor dem Ausführen?
- Wie überprüfe ich die Syntax ohne das Programm auszuführen?
Aufgaben
- Löse die oberen Fragen :-)
Inhalt
- Was sind Events?
- Welche feste Typen gibt es?
- Wie werfe ich sie?
- Wie reagiere ich auf sie?
- Wie sorge ich dafür, dass der Listener ganz oben steht oder nur einmal ausgeführt wird?
Aufgaben
- Erzeuge einen Event und reagiere auf die verschiedenen Typen.
- Spiele mit den weiteren Methoden.
Inhalt
- Wie schreibe ich Dateien?
- Wie lese ich Dateien?
- Was ist der Unterschied zwischen Synchron, Asynchron?
- Wie lese und unterscheide ich Verzeichnisse?
- Wie erkenne ich welche Datei neu oder geändert wurde?
Aufgaben
- Löse die oberen Fragen :-)
JavaScript Prerequisites
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects
https://developer.mozilla.org/en-US/docs/Learn/JavaScript/Objects/Object_prototypes
Inhalt
- Wie sind Objekte aufgebaut?
- Wie funktioniert Vererbung?
- Wie hat sich die Vererbung syntaktisch verändert?
- Wie funktionieren Callbacks und Closures?
Aufgaben
- Erzeuge eine Kette von Objekten, die ihre Eigenschaften/Methoden vererben.
- Erzeuge eine Funktion, die eine Funktion zurückgibt.
Module system
https://nodejs.org/dist/latest-v16.x/docs/api/modules.html
https://nodejs.org/dist/latest-v16.x/docs/api/esm.html
https://nodejs.org/dist/latest-v16.x/docs/api/module.html
https://nodejs.org/dist/latest-v16.x/docs/api/packages.html
Inhalt
- Was sind Module?
- Welche Typen gibt es?
- Wie exportiere ich meine Objekte, Funktionen?
Aufgaben
- Schreibe eine Funktion, exportiere sie und importiere sie in einer weiteren Datei.
Process/Operating System
https://nodejs.org/dist/latest-v16.x/docs/api/os.html
https://nodejs.org/dist/latest-v16.x/docs/api/process.html
Inhalt
- Wie zeige ich das Betriebssystem an?
- Wie beende ich den Process?
- Wie zeige ich Statistiken an?
Aufgaben
- Löse die oberen Fragen :-)
Package.json
https://docs.npmjs.com/cli/v8/configuring-npm/package-json
https://semver.npmjs.com/
Inhalt
- Was ist Semver und wie funktioniert es?
- Wie installiere ich welche Version?
- Was ist der Unterschied zwischen den Zeichen ~,^. >,<, etc.
- Wie installiere ich nur Major, Minor und/oder Patches?
Aufgaben
- Spiele mit dem semver-calculator.
Unit Testing
https://jestjs.io/
https://derkuba.de/content/posts/stenciljs/jest-intro/
https://nodejs.org/dist/latest-v16.x/docs/api/assert.html
Inhalt
- Wie schreibt man Unit-Tests?
- Wie testet man auf geworfene Fehler?
- Wie geht man mit Callbacks um ?
- Wie geht man mit Promises um?
Aufgaben
- Löse die oberen Fragen :-)
Vorgehen
Ich war im ersten Anlauf schlecht vorbereitet, weil ich nicht wusste was mich erwartet. Aber man hat zwei Versuche für die Prüfung. Um nicht unnötig etwas auswendig zu lernen und Zeit zu verschwenden, bin ich einfach in die erste Prüfung gegangen. Mit den Erfahrungen aus der ersten Prüfung stand einem erfolgreichen Abschluss im zweiten Anlauf nichts im Weg. Dies würde ich auch jedem so raten.
Wenn man bestanden hat bekommt man eine PDF mit folgendem Inhalt:

Bild 1: Mein Zertifikat
Dort ist eine Nummer aufgeführt, die man in einen Service der Linux-Foundation eingeben kann und bestätigt bekommt, dass es noch gültig ist:
Owner: Jacob Pawlik
Certification: OpenJS Node.js Application Developer
Date of Certification Achievement: 2021-11-26
Status: Active
Fazit
Wenn man mit allen Inhalten und Aufgaben was anfangen kann, dann ist man bereit für die Prüfung.
Mit diesem Wissen sollte jedem diese Prüfung gelingen.
Ihr habt Fragen oder Anregungen? Schreibt mir bei Twitter.
Tausend Dank fürs Lesen!
Kuba