How to pass Node.js JSNAD certification in one go
Tips & Tricks to ace your exam. Blog post by Ionuț Alixăndroae
October 25, 2021
12 min readA couple of months ago, I passed the Node.js JSNAD exam and got certified, and from that moment on I wanted to share my experience with everyone and also to share some info about how to get prepared for this certification.
Disclaimer: This does not represent an official workflow or handbook for this exam. Before starting this certification I signed an NDA, and therefore I can only share my personal experience and preparation methodology for how I passed it in one go and got myself ready for it. I cannot share any code examples, problems, questions or tasks.
What is JSNAD
JSNAD stands for OpenJS Node.js Application Developer and is a certification exam that will test your JavaScript and Node.js skills. It is designed for anyone looking to demonstrate competence with Node.js to create applications of any kind, with a focus on knowledge of Node.js core APIs.
Please do not mix this up with the JSNSD Certification (OpenJS Node.js Services Developer) exam which a different exam.
Who is offering this certificate
JSNAD certification program is offered by OpenJS Foundation, a leading foundation that supports the growth and governance of many JavaScript and Node.js open source projects.
The exam is delivered through and in partnership with The Linux Foundation. They are also offering other popular and important certificates such as Certified Kubernetes Administrator (CKA) or Linux Foundation Certified Engineer (LFCE).
After passing the certification I got a message from OpenJS asking me if I wanted to give an interview and share my exam experience.
If you are interested you can read it here 🤩
I want to purchase it and get certified. How do I start?
You can start by accessing https://training.linuxfoundation.org/certification/jsnad/
There you will access the official exam page with all the details, prices and info.
In my case, I got a price reduction last year around Halloween (more or less this time last year) for the bundle option: Exam + the Companion Course 📚
Tip: I recommend getting them both because the Companion Course (Node.js Application Development LFW211) is the official course with official resources and problems for this exam.
The agreement included a 12 month eligibility period to finish both the training and the exam. The same applies to example purchases only.
The exam includes a free retake in case the first attempt is not successful, but the purpose of this blog post is to make you ready and pass the exam in one go 😉
As a personal opinion, I think one year is more than enough to prepare. The preparation training (LFW211) can be finished quite fast with a relaxed training schedule every day.
Official resources
Exam page
Training course page
Also very important to read and know:
Candidate Handbook
JSNAD FAQ
Important instructions
Global Certification and Confidentiality Agreement
Structure, format and style
This exam is an online, proctored, performance-based test that requires implementing multiple solutions within a Remote Desktop Linux environment (CentOS).
Tip: those of you using a MacBook, watch out for the key bindings 😅. It was a bit hard and confusing for me to code from a Mac having the Windows/Linux key bindings in my mind.
The duration is two hours, so be very careful and use the time wisely!
The exam is online with the proctor monitoring the activity through the webcam. This means you are going to use only the browser and nothing else. Really! All other apps must be closed. I accidentally opened VS Code during the exam 😂 and it wasn't so funny then.
You can start the exam 15 mins before the scheduled time, and in the first 10-15 minutes you will be doing all the necessary setup preparation and validation. You will be asked to show your desk, your room, the walls around the desk, the area under the desk and so on, you get the idea 😬
You are allowed only with your laptop and nothing else. No notebooks, pens, pictures on the walls, etc. Your setup must be very clean and free of stuff. I had a protection mat on my desk and I had to lift it and show if there's something under it 😳
So in order to get through this really fast, I recommend having a clean desk and your laptop on it and go forward with it.
The topics to study and practice are:
- 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%
You will have more than 20 different exercises to solve, and I guarantee you will have at least one exercise from each topic!
Preparing for the exam
My methodology for the exam was to create a list of resources (to learn, practice and code) and to go through them, one by one, until I felt comfortable with each topic in the list above.
I did not skip through the items and it was very important for me to make linear progress 📈 🔝
This eight step methodology will help you pass the exam!
1. Node.js Application Development LFW211 training course
Because this is the official course with official materials, it was very important for me to complete this and also to remember and understand everything.
It includes lessons for each topic approached in the exam and also exercises similar to the real experience.
I also made sure I noted down in a notebook (pen and paper) every subject from every lesson, so I can learn and remember better.
2. Official Node.js documentation
I can't stress enough about how important it is to be very familiar with the documentation and to really, really, really study it! (really! 😂)
The docs are to be found here https://nodejs.org/api/
You are allowed to use the official documentation during the exam, so it is very important to know exactly what you are looking for in order to save time! In case you forget the definition of one method from a specific Node.js module, you need to know where exactly to go and what to search.
3. JavaScript recap
Link https://developer.mozilla.org/en-US/docs/Web/JavaScript
If you know your JS ways, don't forget to recap some aspects of it such as Callbacks, Promises, Async/Await. Also, design patterns for creating modules, functions, and classes. Lexical environments, prototypes and hoisting.
4. Node.js Certification Study Guide by hey(node)
Link https://www.nodecertification.com/
This is another important online resource I used for my preparation. It has materials to study and to go through each topic and provides a clear path to getting 100% prepared and to feeling ready.
5. Nodescool.io
This page offers lots of hands-on exercises that cover lots of topics from the exam. In fact, the study guide from point 3 recommends Nodeschool in some lessons.
You will be able to take down some GitHub repositories and then use VS Code and the terminal you need to code and complete the exercises.
6. Youtube videos
Another part quite important for me was to watch videos on Youtube on some specific topics such as Events, Streams and Buffers or Child processes
I recommend this channel. It has several playlists with videos and exercises covering topics such as Buffers, File System module, Child Process, EventEmitter or the console API.
Also, these two videos where you can get a better understanding of the whole experience.
7. GitHub repos with exercises
I found some repos with some very interesting exercises. I cloned them and then simply went through the code, line by line.
- https://github.com/JoseJPR/nodejs-certification
- https://github.com/Node-Study-Guide/openjs-nodejs-application-developer-study-guide
8. Practice, practice & practice
Last but not least, create a new folder, open VS Code and the official documentation and practice! Just go through each module, each variable, each function and test them. Test everything!
It's very important to know exactly how to import the modules, how to access and use the methods inside, so no better way than taking the time to test them, fail and succeed until everything is clear and understood.
Tip: learn or recap the terminal commands and also the SEMVER ways
https://docs.npmjs.com/cli/v6/using-npm/semver
npm init --yes // initialize package
npm install --save // installs package in dependency
npm install --save-dev // installs package in devDependency
npm install --production // installs only packages that are not development dependency
npm install --save-exact // installs an exact version
npm install alias@npm:package // installs package under an alias
npm install package@major.minor.patch // install a specific version
npm install package@major.minor.x // install a specific version and latest patch
npm install package@~major.minor // install a specific version and latest patch
npm install package@major.x // install a specific version and latest minor
npm install package@^major // install a specific version and latest minor
node -e "1+1" // evaluates and no print
node -p "1+1" // evaluates and prints
node -c file.js // checks syntax in provided file and prints if error
node --stack-trace-limit=999 file.js // increase stack trace limit
node --abort-on-uncaught-exception //Aborting instead of exiting causes a core file to be generated for post-mortem analysis using a debugger (such as lldb, gdb, and mdb).
node --inspect file.js // activate inspector
node --inspect-brk file.js // activate inspector and break at start
node -r module.js file.js // require module before running the file
node --trace-uncaught file.js // used to trace uncaught exceptions
So to recap, go through everything and learn everything in this list and I promise you will be prepared to pass the exam in one go!
- Node.js Application Development LFW211 training course
- Official Node.js documentation
- JavaScript recap
- Node.js Certification Study Guide by hey(node)
- Nodescool.io
- Youtube videos
- GitHub repos with exercises
- Practice, practice & practice
Many say that you don't need to remember everything because you will have access to the official Node.js documentation. This is true, but there is no point in wasting time with checking the docs every 5 minutes when you can know everything already 😉
Scheduling the exam
After you successfully went through the eight-step methodology, you are ready to schedule and take the exam. Go to the scheduling page, select a date and hour.
In my case, I wanted to start the exam at 09 AM because I was rested and fresh in the morning ☀️
Taking the exam
As stated before, you can enter the exam 15 minutes early, but you will be using these anyway for the initial process with the proctor.
Using your browser only, you will have access to a CentOS VM and there you will find the exercises, the requirements and everything you need to know.
You can access only the official Node.js documentation and NPM documentation, but try to be in a position where you can afford losing time with checking the docs, and not toggle through everything every five minutes.
Advices
I mean, the best advice here is: study! 📖
It is a coding exam. It is centered around coding and there is no time to waste. Two hours are not enough for more than 20 exercises, even if some of them can be solved in one or two lines, if not properly spent.
I asked the proctor to let me know the remaining time every 30 minutes; this way I could organize and strategize my approach better.
If you have problems with one exercise, just leave it and jump to the next one. After you will finish everything, you can return to those two or three remaining problems.
Even if some topics are more important (Buffers & Streams, File System, Child process, Events) you must not forget about the others. Practice the Node CLI, the package.json file & its commands (how to install a specific package version, how to update one, etc.), JavaScript code flow (callbacks, promises & async/await) and also the error handling and testing mechanism.
Go through all topics and materials, and when trying to practice alone, try to come up with different problems and solve them using the modules required for the test (e.g. read & write system files, create child processes to perform a specific task, create event emitters and use them, use buffers and streams, create different types of streams, test properties and methods from different modules, etc.)
Conclusions
I see many advantages to studying for this exam and passing it. The knowledge and set of skills gained will definitely help you in your professional career and the certification is definitely a plus!
It was one of the hardest exams I participated in, including the Java OCA one. I think that being a coding exam, the experience is definitely different and it feels harder to pass. Also, worth mentioning that the exam requires intermediary Node.js knowledge and at least two years of experience.
I think passing the exam on the first try is definitely possible and, with enough study, the results can be rewarding! 🚀🔥