DEV Community

loading...

Node.js Certification: first impressions

kryz profile image Kryz ・4 min read

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.

Discussion (25)

pic
Editor guide
Collapse
terary profile image
Terary Chambers

Great tips.

I have only one additional recommendation.

Someone preparing for the test really should practice using a similar environment, virtual machine, CentOS, vscode. Make sure not to allocate too much resources (so that it runs slower, similar to network degradation).

Someone that can write code that uses setTimeout + promise + stream + test
via slow virtual box will be well prepared. Of course, this is in addition to all the other recommendations.

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
afkhalid profile image
Ahmed Fathy Khalid

Thanks for sharing this info. What are the best materials I can use for the exam preparation?

Collapse
kryz profile image
Kryz Author

There a few good books, for example "Node.js Design Patterns".

I have started to prepare a list of free online articles/books/videos: github.com/kryz81/awesome-nodejs-l.... The list should be complete by the end of December 2019.

Collapse
oziniak profile image
Oleh Ziniak

Hey Kryz, Thanks for the great article! I know it's a rather silly question, but how would you estimate a time needed for preparation for passing this certification for a front end dev, who barely worked with a back end? Thanks!

Collapse
kryz profile image
Kryz Author

Hi Oleh,
let's go through the exam topics list:

  1. Buffer and Streams – 11%
  2. Control flow – 12%
  3. Child Processes – 8%
  4. Diagnostics – 6%
  5. Error Handling – 8%
  6. Node.js CLI – 4%
  7. Events – 11%
  8. File System – 8%
  9. JavaScript Prerequisites – 7%
  10. Module system – 7%
  11. Process/Operating System – 6%
  12. Package.json – 6%
  13. Unit Testing – 6%

I assume you have a good knowledge of Javascript, asynchronous flow, events. You also test your code. If I'm right, the topics: 2, 5, 9 and 13 shouldn't be a problem. If you work with modern technologies and use npm to install dependencies you should already know 12.

4, 6, 7 are quite easy. In my opinion the biggest challenge for a frontend dev are 1, 3 and 8.

Of course it's hard to say how much time you need, it depends on your experience...

Collapse
oziniak profile image
Oleh Ziniak

Fair enough! Thanks for your answer.

Collapse
ocalde profile image
Oscar Calderon

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
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 Author

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

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.

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
carltondickson profile image
Carlton

@Kyrz Is there a recommendation for which certification to tackle first in terms of difficulty.
Is there anything you've come across that explains the thinking behind 2 tests?
Thanks for this article by the way, really helpful.

Collapse
kryz profile image
Kryz Author

I find the level of difficulty similar. I would start with JSNAD.

Collapse
superyaz profile image
superyaz

Kryz thanks for yours contributions 🧠

Collapse
kryz profile image
Kryz Author

Hello superyaz,
thank you!

Collapse
logeekal profile image
Jatin Kathuria

This is so helpful..

Thank you

Collapse
kryz profile image
Kryz Author

Thank you Jatin!

Collapse
ramakunuru profile image
Ram

Thanks a lot for this article, very helpful.

Collapse
inigogb profile image
BaronVonHex

Thank you for sharing your experience! I'm considering taking the JSNAD exam so your opinions are really helpful :)

Collapse
kryz profile image
Kryz Author

Hello Inigo,
if you need more information about the exam or help with Node.js, contact me. I am also planning to publish something like "Prepare for Node.js certificate" series.

Collapse
rcnespoli profile image
Renato Néspoli

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
lakshayasood profile image
Lakshaya Sood

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

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
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! 😆