DEV Community

Kryz
Kryz

Posted on

Node.js Certification: first impressions

After a few years from the announcement, The OpenJS Foundation officially started the Node.js Certification Program.

The program consists of two certifications:

The beta version of the exams became available in September 2019. I had a chance to take part in it and passed the JSNAD. In this post, I would like to describe my impressions and give you some tips for the exam.

Disclaimer: You won’t find here any tasks, content, questions, answers, or code exercises from the exam. Due to the OpenJS Foundation Certification and Confidentiality Agreement, I am not allowed to share such information.

First, I’m surprised that the exam is not a quiz or a test, where all you need to do is to select the checkbox with the correct answer or type the function name. There are many certifications, where you need to memorize a lot of stuff, or they check if you find a typo in the code example. For such exams, there are many so-called braindumps on the internet; it’s possible to memorize them and pass such exams without any previous knowledge or experience. On the contrary, The Node.js exams are in the form of the practical lab, in which you need to solve tasks by writing real code.

Secondly, you don’t need to memorize the whole Node.js API. You can use the Node.js, the npm, and even the GitHub website, but you are not allowed to use StackOverflow and other similar forums. It doesn’t mean you don’t need to prepare for the exam, and you can simply copy/paste from these pages. You still should have a good knowledge of the whole Node.js ecosystem and concepts. For instance, if you don’t know how the Node.js streams work, you would probably waste too much time if you tried to learn it during the exam. Remember, you have only two hours to finish all the tasks, and in my opinion, it’s not very much for this exam.

As I mentioned before, the exam has a form of a lab. You get remote access to an environment with Linux, Node.js, VSCode, and a web browser. You also have access to the terminal. One drawback I noticed is that it is slower than working on a local machine; I lost some time because of occasional delays when I was opening a file or switching to the browser.

The advantage is that you can take the exam from your home or office. I find it much less stressful than making an appointment and taking an exam in a local testing center. Don’t forget that you will be observed during the exam (remember to clean your desk before the exam 😉)

The OpenJS Foundation states this exam has an intermediate level, and I agree with that. On the one hand, the coding tasks are rather simple; on the other hand, not all the tested topics are used daily (at least I don’t use them).

Here I collected some tips for you:

  • Read the exam scope here and learn all the listed concepts. Write a lot of code; try to create small real-world examples. The exam doesn't check your ability to remember all Node.js functions, but whether you can solve a coding exercise.
  • Go through the core Node.js API, focus on streams, buffers, the event system and child processes. As described in the exam details they are the most important topics.
  • Please go through the Node.js CLI commands and flags, but don't memorize all of them! When I was preparing for the exam, I came across some flags I've never used before, even in large commercial projects.
  • Learn package.json – fields, types of dependencies. It’s a practical exam, so you must know how to install a concrete version of a package. Don't forget to learn how the symantic versioning (semver) works.
  • It’s a Node.js certification, but your Javascript knowledge can also be tested. In the exam description, there is a point called "JavaScript Prerequisites". So, it’s a good idea to refresh basic Javascript concepts like scopes, prototypes, closures, etc.
  • Have you ever unit tested your code? Not great, not terrible 😉. Pick one of the popular frameworks like Mocha or Jest and learn basics, for example, basic assertions. Because of Node.js asynchronous nature, you have to know how to test asynchronous code, for example, a function that returns a promise or expects a callback.
  • Don’t forget to check if your code works! I know that it sounds obvious, but taking an exam is a stressful situation; the time is counting down, and we want to get all tasks done as quickly as possible. You have access to the terminal, and you can run your code.

Do you have any questions? Leave a comment below. If you liked this article, please tweet it.

Latest comments (26)

Collapse
 
lakshayasood profile image
Lakshaya Sood

How to practice streams and buffer? What projects can I create that work with those topics?

Collapse
 
codefinity profile image
Manav Misra

Main ❓ is would this certification help folks get into a mid ➡️ sr. dev role? I would guess the answer is yes. I hope so, b/c I already paid and am preparing now! 😆

Collapse
 
amitabhpanda profile image
Marvels-The Coder

Hi Sir,
Its a great article!!

Please tell me when do you start - "Prepare for Node.js certificate" series.

Collapse
 
ygorsk profile image
ygor-sk

Hello All and thank you for your comments.

Has anyone taken the JSNAD exam in 2020? Now, they mention, that Webstorm is included as well. Is that true?

Also, how do you connect to the remote machine? Does it all happen in a browser? Or do you use dedicated software to connect to the machine. Do I understand it correctly, that I will connect to a remote graphical Linux desktop, where I can launch terminal, node CLI and Webstorm/Visual Studio Code ?

I have recently taken CKAD exam, but all I used was a remote terminal running in browser and I could write solutions in Vim only.
So I wonder, how much I can rely on having a graphical IDE available.

Collapse
 
ocalde profile image
Oscar Calderon • Edited

Currently I'm getting prepared for taking the JSNSD in a month. I just have a couple of doubts regarding how things work during the exam:

  • What OS did you use? Did you have any issues when connecting to the remote environment? I've read several complaints about the plugin used by examslocal website, so just wondering to get the right OS (Mac or Windows) to take it
  • Were you able to full screen the remote environment? Currently I'm practicing with a VirtualBox VM at 1024x768 to get used to limitations, but if I will be able to get it full screen, that will be better
  • Is it possible using an external display as the main one, to have a laptop at one side for the webcam?
Collapse
 
ouarrich profile image
OUARRICH

Hi @kryz ! Thanks for sharing you knowledge. I am preparing for the JSNAD and I came through NodeSchool site nodeschool.io/ which contains intersting workshops about some of the exam's topics.

If you don't mind I just wanna know if the exam's tasks are presented like these workshops tasks? (e.g stream-adventure workshop).

Thanks in advance.

Collapse
 
rcnespoli profile image
Renato Néspoli • Edited

Hi! Thanks to share your knowledge.
I saw that you are planning to publish something like "Prepare for Node.js certificate" and it's amazing! Waiting for this ;)

Collapse
 
darchanjo profile image
David Archanjo

Hey Kryz,

First off, great article!!

Could be an dumb question but I'd just wanna know how the tasks are presented and how we're expected to complete them. I owned some certifications and I never came across doing through a lab.

Thanks in advance

Collapse
 
kryz profile image
Kryz

Hi,
you have a list of tasks with description and folders with task names, where you need to write your code.

Collapse
 
ramakunuru profile image
Ram

Thanks a lot for this article, very helpful.

Collapse
 
ocalde profile image
Oscar Calderon

Hi @kryz , great article!! My employer just purchased JSNSD for me, so I'm starting to get prepared! I've been working mainly a little bit on ReactJS and JAVA, have worked with ExpressJS in the past on a basic level.

Not sure if you are allowed to say this (due to Confidentiality Agreement) but, for exposing REST APIs do you use a framework like ExpressJS? Or do they expect you to do everything in the vanilla way (checking the URL segment and request method to route the action to do)?
Thanks in advance.