How to: Node.js Official Certification (JSNAD)
By: Alexey Kalachik
Tags: Nodejs, JavaScript, Software Development, Certification

A couple of years ago while kicking the can down the Github I came across a repository dedicated to official Node.js certification. Being a huge enthusiast of official certifications, I subscribed to the repository and then asked the contributors to get me to the list of beta-testers. In September 2019, the beginning of beta-testing was announced and I was lucky enough to get the invitation among the first.

In order to test the skills of participants OpenJS Foundation prepared two exams: the first one and more “high-level”- OpenJS Node.js Services Developer (JSNSD) — was aimed at Rest API, while the second and more technical- OpenJS Node.js Application Developer (JSNAD) — was focused on Node.js core APIs, that I, for one, find more interesting and useful.

Without further ado I’ve purchased the entrance ticket which cost me 100$ (now it’s 300$) and submerged myself into the process.

Here is the link to JSNAD page: https://training.linuxfoundation.org/certification/jsnad/.

Disclaimer: Before the start of certification I’ve signed NDA, and that’s why even with all the will in the world I can’t share the examples of tasks or code. But still I will do my best to set your preparation process on the right track.

So, what should you expect from this exam?

It lasts 120 minutes It includes coding challenges only You will work in remote environment via RDP (VNC) access (and sure, you can do it from your home or office) Everything happens under control of remote proctors You are to complete 2–3 tasks for each of 13 categories (see below in the article) You can use node.js/npm official documentation

The entire exam is centered around coding. There are no choose-the-correct-answer type of questions — just pure code-writing.

I’d like to draw your attention to the kind of tricky moment while working in a remote environment: a number of participants state that the system is quite laggy and it could be extremely uncomfortable to write code. (Remember times you were coding with a processor loaded at 100% and characters appeared on the screen only after a second delay after a click — so something similar could happen during the exam.) Just keep in mind that your skills should be strong enough for you not to be distracted by this sort of a red rag.

Aside from this I want to say that you will be provided with a UNIX-based (ubuntu) VM with pre-installed Visual Studio Code, Vim and Webstorm. (Windows-users, pay your attention to this point!)

The next feature is a remote proctor. The watching you person takes his work as seriously as possible — the slightest retreat from the rules of certification will be noticed and stopped immediately. Before beginning the exam you will be asked to show any document which may be used to verify aspects of your personal identity (passport, driving licence or whatever) and the entire room — the proctor will check that there is nothing on and under the table, on the walls, and even on the ceiling. Headphones are also beyond the pale of the law. The control is so strict that I’ve been repeatedly pulled out of my thoughts by warnings of the proctor due to turning my head away from the screen or putting a hand near my mouth. My proctor was so responsible that he refused helping me with the translation of an unknown word. He also did not allow me to look it up in a dictionary. So if you’re not a native speaker, it’s another reason to tune your English before sitting the exam. (I do wish I learned it in good time)

Now, we are done with organizational issues, so let’s get to the examination tasks!

Domains and Competencies are fully described in the exam handbook (https://training.linuxfoundation.org/certification/jsnad/#domains)

They include:

Buffer and Streams — 11%

Control flow — 12%

Child Processes — 8%

Diagnostics — 6%

Error Handling — 8%

Node.js CLI — 4%

Events — 11%

File System — 8%

JavaScript Prerequisites — 7%

Module system — 7%

Process/Operating System — 6%

Package.json — 6%

Unit Testing — 6%

Tip: pay special attention to this list. I bet my boots — you’ll get from each of the categories!!!

God forbid you forget to look through plain javascript — lexical environments, prototypes and hoisting.

Revise the semantic versioning to avoid wasting your time trying to remember how to install a specific package version, be it a major or minor release.

Devote some time to practice file system APIs: Buffers, Streams and Events. Try to run your solutions using console or debug mode, write tests.

Remember that the time is limited and 120 minutes won’t be enough if you’re going to flick through node.js documentation each time you face a difficulty. Just revise mentioned above materials before the exam and don’t go nuts clashing over lags of the remote desktop system.

All these tips will help you to pass the certification on the first try (by the way, the retake is also included in the exam price).

Pro-tip: During the exam, terminal will be available to you — do not forget to run your code before submitting to make sure that it has no errors.

Conclusion:

Judging by my personal feelings — certification has a fairly average complexity, it’s mainly focused on core features of node.js, rather than mundane features used in daily work. I can’t evaluate the certificate as really valuable and exposing you as a professional, but for achievement-hunters it hits the spot.

Wish you best luck!

P. S.

In my next article I’ll tell you about AWS Certification — Solution Architect Professional.

Please subscribe if you like this format.

I’m always glad to answer your questions, feel free to reach me here:

Email — alexey@5ly.co

Github — https://github.com/vakintoshka

Linkedin — https://www.linkedin.com/in/alex-kalachyk

Telegram — https://t.me/vakintoshka