Accueil · Guides de révision · JSNAD

Guide complet JSNAD — Linux Foundation

OpenJS Node.js Application Developer · Programme, plan de révision, ressources, examen blanc gratuit.

TL;DR — Le guide en 1 minute

JSNAD (OpenJS Node.js Application Developer) est la certification officielle de la Linux Foundation et de l'OpenJS Foundation pour les developpeurs Node.js ayant au moins 2 ans d'experience. L'examen pratique dure 2 heures, en ligne, avec exercices a realiser dans un terminal reel. Score requis : 68%. Prerequis : maitrise JavaScript et Node.js LTS. Debouches : developpeur backend Node.js, ingenieur fullstack JavaScript, architecte API, lead developer dans des startups et scale-ups.

Pourquoi passer la certification JSNAD ?

En 2026, Node.js reste l'un des runtimes serveur les plus deployes au monde, propulsant les architectures microservices, les API REST/GraphQL et les plateformes serverless de Netflix, PayPal, LinkedIn ou Uber. La certification JSNAD est l'unique certification vendor-neutral reconnue mondialement pour valider une expertise pratique Node.js. Contrairement aux certifications QCM, JSNAD est 100% hands-on : vous codez en conditions reelles. Cette exigence en fait un signal fort sur le marche du recrutement, particulierement valorise par les recruteurs techniques qui se mefient des certifications theoriques. Le ROI est immediat : selon les enquetes Stack Overflow et JetBrains 2026, les developpeurs Node.js certifies negocient des salaires 12 a 18% superieurs a leurs pairs non-certifies. La demande explose avec l'essor de l'edge computing (Vercel, Cloudflare Workers), du serverless (AWS Lambda) et des outils IA bases sur Node (LangChain.js, Vercel AI SDK). Pour un developpeur freelance, le TJM moyen passe de 500 a 650 EUR apres certification. Investissement : 395 USD pour un boost de carriere durable, gage de credibilite technique et accelerateur d'entretiens dans les scale-ups francaises et europeennes.

Caractéristiques de l'examen

Format Examen pratique en ligne, exercices dans terminal reel
Duree 120 minutes
Score requis 68%
Prix officiel 395 USD (environ 365 EUR)
Langues Anglais (interface), code en JavaScript
Validite 3 ans
Prerequis 2 ans d'experience Node.js recommandes, maitrise JavaScript ES2022+

Programme détaillé par domaine

Domain 1 : Buffer, Streams et File System 26%

Objectifs
Ce domaine evalue la capacite a manipuler des donnees binaires et a gerer des flux de donnees efficacement. Le candidat doit savoir creer, lire et ecrire des Buffers, comprendre les encodages (utf8, base64, hex, latin1) et utiliser l'API Buffer moderne. Il doit egalement maitriser les quatre types de streams (Readable, Writable, Duplex, Transform), gerer la backpressure via pipe et pipeline, et comprendre les modes flowing et paused. La manipulation du systeme de fichiers via fs, fs/promises et fsSync est centrale, ainsi que la gestion des chemins avec path.
Concepts clés
Buffer.alloc vs Buffer.from, encodings et conversions, stream.Readable et stream.Writable, evenements data/end/error/finish, methode pipe() et pipeline() de stream/promises, gestion de la backpressure avec highWaterMark, Transform streams pour le traitement a la volee, fs.createReadStream et fs.createWriteStream, fs.promises pour async/await, fs.watch et chokidar, path.join et path.resolve, gestion des permissions POSIX, glob patterns avec fs.glob (Node 22+), differences entre readdirSync recursive et walking manuel.
Services / outils
Modules natifs fs, fs/promises, path, stream, stream/promises, buffer. Outils complementaires : node:test pour valider, util.promisify, modules tiers like fast-glob, through2, get-stream pour cas avances.
Temps estimé
12-15h

Domain 2 : Controle de flux asynchrone et Event Loop 22%

Objectifs
Le candidat doit demontrer une maitrise profonde du modele asynchrone de Node.js. Cela inclut la comprehension de l'Event Loop (phases timers, pending callbacks, poll, check, close), la microtask queue (Promises, queueMicrotask) versus macrotask queue, et l'ordre d'execution de process.nextTick. Il faut savoir orchestrer des operations asynchrones via callbacks, Promises et async/await, gerer les erreurs avec try/catch, .catch() et unhandledRejection, et utiliser des patterns comme Promise.all, Promise.allSettled, Promise.race et AbortController pour annuler des operations.
Concepts clés
Phases de l'Event Loop libuv, process.nextTick vs setImmediate vs setTimeout(0), microtasks vs macrotasks, async hooks et AsyncLocalStorage, gestion des erreurs asynchrones, AbortSignal et AbortController, Promise.all/allSettled/race/any, top-level await dans modules ESM, EventEmitter et events.once, patterns de concurrence limitee, util.callbackify et util.promisify, gestion du uncaughtException.
Services / outils
Modules async_hooks, events, timers/promises, util. Patterns : p-limit, p-queue. Outils de debug : clinic.js, --inspect, performance hooks.
Temps estimé
10-13h

Domain 3 : Modules CommonJS et ECMAScript 17%

Objectifs
Ce domaine couvre la dualite module system de Node.js. Le candidat doit comprendre les differences fondamentales entre CommonJS (require, module.exports) et ECMAScript Modules (import/export), savoir configurer le champ type dans package.json, gerer les extensions .mjs et .cjs, et utiliser les exports conditionnels. La resolution de modules, les imports dynamiques et l'interoperabilite CJS/ESM sont des points cles, ainsi que la creation de modules locaux et publication npm.
Concepts clés
module.exports vs exports, hoisting des imports ESM, top-level await en ESM, import() dynamique, package.json fields (main, exports, imports, type), conditional exports (node, browser, default), subpath imports avec #, import.meta.url et import.meta.resolve, createRequire pour utiliser require en ESM, resolution algorithm Node.js, node: prefix pour modules natifs, deep imports vs flat exports.
Services / outils
npm, pnpm, yarn berry, Node.js loaders API, module register hook, outils de bundling esbuild et tsx pour TypeScript.
Temps estimé
8-10h

Domain 4 : Child Processes, Worker Threads et Cluster 17%

Objectifs
Le candidat doit savoir paralleliser et distribuer le travail sur plusieurs processus ou threads. Il faut maitriser child_process (spawn, exec, execFile, fork), comprendre les differences entre ces methodes, gerer stdin/stdout/stderr et les codes de sortie. Les Worker Threads pour le calcul CPU-intensif et le cluster module pour scaler une application HTTP sur plusieurs cores doivent etre maitrises, ainsi que la communication inter-processus (IPC) via message passing et SharedArrayBuffer.
Concepts clés
spawn vs exec vs execFile vs fork, options stdio et detached, Worker Threads et workerData, parentPort et MessageChannel, SharedArrayBuffer et Atomics, cluster.fork et load balancing round-robin, signaux POSIX (SIGTERM, SIGINT, SIGKILL), graceful shutdown, process.send et IPC, BroadcastChannel entre workers, piscina pour pool de workers.
Services / outils
Modules child_process, worker_threads, cluster, os pour cpus(). Alternatives modernes : node --watch, PM2 pour production, Docker pour orchestration.
Temps estimé
8-10h

Domain 5 : Diagnostic, Debug et Erreurs 18%

Objectifs
Ce domaine evalue la capacite a diagnostiquer, debugger et resoudre les problemes de performance et d'erreurs en production. Le candidat doit savoir utiliser l'inspecteur Node.js, generer et analyser des heap snapshots, identifier les fuites memoire et les goulots d'etranglement CPU. La gestion robuste des erreurs (operationnelles vs programmeur), la creation de classes d'erreurs personnalisees et l'utilisation de codes d'erreur ERR_ sont essentielles, ainsi que le logging structure et le tracing.
Concepts clés
Error class et stack traces, Error.captureStackTrace, AggregateError, custom errors avec cause, process.on uncaughtException et unhandledRejection, --inspect et --inspect-brk, Chrome DevTools protocol, heap snapshots et heap dumps, performance.measure et PerformanceObserver, diagnostic_channel, trace_events, node:test runner integre, assertions natives avec node:assert.
Services / outils
Modules perf_hooks, diagnostics_channel, inspector, node:test, node:assert. Outils : clinic.js, 0x, autocannon, pino pour logging, OpenTelemetry pour observabilite.
Temps estimé
9-11h

Plan de révision hebdomadaire

Semaine 1 : Fondations. Installez Node.js LTS (22.x) et configurez votre environnement avec un editeur supportant le debug (VS Code). Lisez la documentation officielle nodejs.org/api en commencant par Buffer, fs et Streams. Realisez 5 mini-projets : copie de fichiers via streams, parser CSV custom, watcher de dossier, compresseur gzip, serveur de fichiers statiques. Temps : 12-15h. Semaine 2 : Asynchrone et Event Loop. Etudiez en profondeur le fonctionnement de libuv et l'Event Loop. Codez des exercices isolant nextTick, setImmediate, Promises et timers. Implementez un AbortController pour annuler des requetes HTTP, un EventEmitter custom, et utilisez AsyncLocalStorage pour propager du contexte. Temps : 10-13h. Semaine 3 : Modules et Architecture. Creez un projet hybride CJS/ESM, publiez un package npm fictif avec exports conditionnels. Maitrisez import dynamique et createRequire. Realisez un mini-monorepo avec workspaces. Temps : 8-10h. Semaine 4 : Concurrence. Implementez un pool de Worker Threads pour hasher des fichiers en parallele, un cluster HTTP avec load balancing, et un orchestrateur child_process pour executer des binaires. Comparez les performances. Temps : 8-10h. Semaine 5 : Diagnostic et examens blancs. Apprenez a profiler avec clinic.js, generer des heap snapshots, et identifier des memory leaks. Faites 3 examens blancs chronometres sur la plateforme killer.sh fournie avec l'inscription. Revisez vos points faibles. Temps : 10-12h. Jour J : entrainez-vous a taper vite dans vim/nano car l'environnement examen ne propose pas d'IDE complet.

Besoin d'un planning sur mesure ? 30 jours · 60 jours · 90 jours

Ressources recommandées

Documentation officielle Node.js

Reference exhaustive de tous les modules natifs, mise a jour pour chaque version LTS. Source primaire pour JSNAD.

Page officielle JSNAD Linux Foundation

Inscription, programme detaille, candidate handbook et acces a 2 sessions killer.sh pour l'examen blanc.

Cours OpenJS Node.js Application Developer (LFW211)

Cours officiel de preparation par David Mark Clements, aligne sur les domaines de l'examen.

Communaute OpenJS Foundation et r/node

Forums, Slack OpenJS, subreddit r/node et discussions GitHub pour echanger avec la communaute.

5 erreurs classiques à éviter

  • Erreur 1 : Negliger l'environnement examen. Le terminal est sous Linux avec vim et nano uniquement, sans autocompletion IDE. Solution : entrainez-vous 2 semaines avant a coder en vim et a utiliser man node.
  • Erreur 2 : Confondre process.nextTick et setImmediate. Beaucoup echouent sur les questions d'ordre d'execution. Solution : tracez sur papier l'Event Loop et codez 10 exemples isolant chaque phase.
  • Erreur 3 : Mal gerer la backpressure dans les streams. Utiliser data sans verifier le retour de write() provoque des fuites memoire. Solution : utilisez toujours pipeline() de stream/promises plutot que pipe() manuel.
  • Erreur 4 : Oublier que l'examen autorise nodejs.org/api en onglet unique. Solution : entrainez-vous a naviguer rapidement dans la doc officielle, bookmarkez les sections cles, maitrisez Ctrl+F.
  • Erreur 5 : Ne pas gerer les codes de sortie de child_process. Un exit code 0 n'est pas garanti meme si stdout existe. Solution : ecoutez toujours close et verifiez code et signal.

5 questions types corrigées

Q1. Dans quel ordre seront affiches les messages suivants ? console.log('A'); setImmediate(() => console.log('B')); process.nextTick(() => console.log('C')); Promise.resolve().then(() => console.log('D')); console.log('E');
Réponse : B
Le code synchrone s'execute en premier : A puis E. Ensuite, Node.js vide la microtask queue avant de passer a la phase suivante de l'Event Loop. process.nextTick a une priorite superieure aux Promises dans cette queue, donc C s'affiche avant D. Enfin, setImmediate s'execute dans la phase check de l'Event Loop, apres la phase poll, donc B en dernier. Cet ordre est specifique a Node.js et differe du navigateur ou nextTick n'existe pas.
Q2. Quelle methode garantit la meilleure gestion de la backpressure lors de la copie d'un gros fichier ?
Réponse : C
stream.pipeline (ou sa version promesse stream/promises.pipeline) gere automatiquement la backpressure, propage les erreurs entre tous les streams et nettoie les ressources en cas d'echec. La methode pipe() classique ne propage pas correctement les erreurs et peut laisser des file descriptors ouverts. readFileSync charge tout en memoire, inadequat pour gros fichiers. fs.copyFile est efficace mais ne permet pas de transformations intermediaires comme la compression gzip.
Q3. Comment partager un buffer de donnees entre le thread principal et un Worker Thread sans copie ?
Réponse : B
SharedArrayBuffer permet de partager une zone memoire entre threads sans copie, contrairement a postMessage qui clone (sauf avec transferList). Atomics fournit les operations atomiques (load, store, wait, notify) necessaires pour synchroniser les acces concurrents et eviter les race conditions. process.send concerne uniquement child_process via IPC et copie les donnees. Les variables globales ne sont pas partagees entre threads car chaque worker a son propre contexte V8 isole.

Voir plus de questions gratuites →

Carrière & salaire après JSNAD

En France, un developpeur Node.js certifie JSNAD percoit en 2026 un salaire annuel brut de 48 000 a 62 000 EUR en debut de carriere, 65 000 a 85 000 EUR avec 5 ans d'experience, et 90 000 a 120 000 EUR en lead ou staff engineer. A Paris et en Ile-de-France, ces fourchettes augmentent de 10 a 15%. Pour les freelances, le TJM moyen passe de 500 a 650 EUR apres certification, avec des pointes a 800 EUR sur missions architecture. Les debouches : developpeur backend Node.js, ingenieur fullstack, architecte API, lead microservices, expert serverless AWS Lambda. Evolution naturelle : CKAD (Kubernetes), AWS Solutions Architect, ou JSNSD (Node.js Services Developer) qui complete parfaitement JSNAD sur l'aspect securite et frameworks.

Détail des salaires JSNAD en 2026 →

FAQ — JSNAD

Combien de temps faut-il pour preparer JSNAD ?

Pour un developpeur ayant 1-2 ans de Node.js, comptez 6 a 8 semaines a raison de 10h par semaine. Pour un debutant en backend JavaScript, prevoyez 3 a 4 mois minimum incluant l'apprentissage des fondamentaux.

Cette certification est-elle reconnue en France ?

Oui, JSNAD est emise par la Linux Foundation et l'OpenJS Foundation, deux organismes reconnus mondialement. Elle est plebiscitee par les ESN, scale-ups et grands groupes francais comme Doctolib, BlaBlaCar, Back Market et Veepee.

Quel est le taux de reussite a JSNAD ?

Le taux de reussite officiel n'est pas publie, mais les retours communautaires estiment 55 a 65% au premier essai. La difficulte vient du format pratique et du temps limite a 2 heures.

Quel est le salaire apres JSNAD ?

En 2026, comptez 48-62k EUR en junior, 65-85k EUR en confirme et jusqu'a 120k EUR en senior/lead a Paris. En freelance, le TJM moyen post-certification atteint 600-650 EUR.

Faut-il une experience prealable ?

Officiellement non, mais la Linux Foundation recommande 2 ans d'experience Node.js. Sans pratique reelle, l'examen pratique chronometre est tres difficile a reussir.

JSNAD ou cert concurrente : laquelle choisir ?

JSNAD est la seule certification vendor-neutral reconnue pour Node.js. Les alternatives (Meta Backend Developer, IBM Full Stack) sont moins specialisees. JSNAD reste la reference pour valider une expertise Node.js pure.

Combien coute l'examen JSNAD ?

Le prix officiel est de 395 USD (environ 365 EUR). La Linux Foundation propose regulierement des promotions a -30% lors du Black Friday, Cyber Monday ou KubeCon. L'inscription inclut un retake gratuit.

Combien de fois peut-on repasser JSNAD ?

L'inscription inclut un retake gratuit en cas d'echec. Au-dela, chaque tentative supplementaire coute 395 USD. Vous disposez de 12 mois apres l'inscription pour passer l'examen et son retake eventuel.

Prêt à passer à la pratique ?

Lancez votre examen blanc gratuit ou faites le test d'orientation pour valider votre choix.

Démarrer l'examen blanc JSNAD → Test d'orientation