Node.js Certification: My Experience and Advice
Tags: node, certification, javascript
Published: 2020-05-11 18:54:39

In the beginning of the COVID-19 lockdown I made a decision to use the isolation for self-improvement and invest time in something future-proof, so I signed up for [OpenJS Node.js Application Developer (JSNAD) certification](https://training.linuxfoundation.org/certification/jsnad/).

It took me a few weeks and two attempts to pass the exam, and a couple of days ago I finally received my certificate. Now it's time to reflect on the preparation process and test itself.

### About the exam

The OpenJS Node.js Application Developer certification exam is not a dry theoretical test. Not at all, it's a performance based test consisting of a few coding assignments which you solve in a remote environment using one of the available IDEs (VSCode or WebStorm). 

You're given two hours, IDE and terminal to get the job done. You can only use Node and JS docs during the exam.

### Preparation

1. I've reviewed Node.js 10 documentation. Yes, correct, the certification is for Node 10 (at the moment of writing).  
2. I've completed [learnyounode](https://github.com/workshopper/learnyounode) and [stream-adventure](https://github.com/workshopper/stream-adventure) free interactive courses.  
3. I've watched the first part of [the Ilya Kantor's free screencast](https://learn.javascript.ru/screencast/nodejs) in Russian.  
4. I've read and reproduced code examples from the following chapters of [Node Cookbook](https://www.packtpub.com/web-development/node-cookbook-third-edition):
    - Ch 1: Debugging process
    - Ch 2: Writing Modules
    - Ch 3: Coordinating I/O
    - Ch 4: Using Streams
    - Ch 9: Optimizing Performance

I was so impressed by the Node streams that I even [wrote about them](https://komelin.com/articles/nodejs-certification-my-experience-advice/).

### First attempt

9 in the morning. Said Hi to my exam proctor through their chat. Showed my ID, desk and room to the proctor. Forgot to close thousands of tabs in Chrome. Experienced screen sharing issue. The proctor motivated to close the tabs. It fixed the issue.

Was solving tasks one by one. Enjoyed the problems and process.

Not enough time.

Result: 62. Passing score: 68.

### Second attempt

One retake was free, so I happily used the second chance. 

To prepare for the retake, I reviewed all the topics I was not confident about during the first attempt. During the second attempt, I tried to manage my time better and avoid the same organizational mistakes, such as chaotically switching between windows, working on one task for too long, double-checking whether I saved my solution or not, etc.

That worked. In 36 hours, I received my PDF certificate.

Result 76. Passing score: 68.

### Advice for future test takers

- Make sure you can comprehend written English to follow proctor's instructions.
- Dedicate some time to learn [candidate resources](https://training.linuxfoundation.org/openjs-certification-candidate-resources/).
- Learn _cd_ and _clear_ Linux commands. You will probably need them to effectively work with terminal.
- Make sure you know where to find Node 10 docs.
- Practice before the exam. Seriously, try to solve foundational Node problems, such as writing to a file, executing a command in a child process, dealing with promises, getting system info, debugging, etc. Focus on fundamentals rather than on a particular framework or database access layer.
- On exam day, make sure you don't have anyone else in your room and anything on your desk except your ID. Move away all electronic devices to not cause redundant questions from the proctor.
- Close all apps (except Chrome) which are not necessary for normal functioning of your OS.
- Close all browser windows/tabs (except one).
- When you first open VSCode, configure it. Turn on auto save (File -> Auto Save) and enable word wrap (View -> Toggle Word Wrap). Believe me, it will save your time.
- Use VSCode integrated terminal (Terminal -> New Terminal) to avoid switching between windows.
- Every task folder has a README file with the task description. Don't waste your time on reading it in the browser.
- Control your time and try not to spend too much time on a single task. Better come back to it later if some time is left.

### To sum up

The Node.js certification was not my first technical certification, so I can compare. The first one was [Zend PHP Certification](https://www.zend-zce.com/en/yellow-pages/ZEND021715) back in 2013. That exam had mostly theoretical questions. However, it gave me a big picture of the language and deepened my knowledge. Besides, the PHP certificate favorably distinguished my freelance profile from myriads of others, which helped with job search.

Let's see what opportunities Node.js certificate can bring for my future career. Even though I'm 100% sure the certification has made me a better developer, I still have a lot of things to learn, and I'm not going to stop evolving.