Passing JSNAD

Carrb
Version 1
Published in
4 min readJul 5, 2023

JavaScript NodeJS Application Developer is one of two exams offered by the Linux Foundation on JavaScript and covers the core areas of NodeJS development such as processes, events, asynchronous code etc. The other exam is the JavaScript NodeJS Services Developer focuses on web server and RESTful API services and security.

JSNAD is a performance-based exam that requires you to write code to solve the particular problem that has been set. The test is taken on a remote VM which you gain access to via the testing software that you’re required to install to take the test. The testing software, in addition to displaying the console on the remote VM, monitors your host desktop for any software that might be running that shouldn’t be. While I was sitting the exam I got a popup to tell me that neither Firefox nor OneDrive was permitted. Neither of which I’d started and in both instances acknowledging the popup warning was all that was required.

The remote VM desktop comes preinstalled with the software you’ll need to complete the exercises and also a project directory in your VM’s home drive containing the tasks to be carried out. All I used was Visual Studio Code and the supplied browser that has a customised home page with all the tasks to be completed in the left-hand panel, the highlighted tasks in the central panel and a link to the allowed documentation on the right-hand panel.

https://docs.linuxfoundation.org/tc-docs/certification/lf-handbook2/exam-user-interface/examui-openjs-exams

The task instructions are written in Markup and so can also be viewed in VS Code which saves switching between windows. The right-hand panel listing the allowed documentation provides a nice quick way to navigate to the documentation.

JSNAD Course

The exam can be purchased on its own from the Linux Foundation or as part of a bundle that includes an online course. The online course consists of reading material and labs to be run in your own environment. The course material as expected, exactly follows the Domains and Competencies listed for the certification

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%

(https://training.linuxfoundation.org/certification/jsnad/ ) .

With so much training content these days delivered via instructor-led videos I found it a little dry going through the course and also missed an instructor going through work examples to provide a deeper understanding of the material.

The labs however are an excellent resource for the test. Each topic has a corresponding lab that provides tasks in a similar way to the actual exam and the labs also in most instances provide some form of validation script that can be run to test whether your solution meets the task goals. In some instances, I found that my attempted solutions didn’t satisfy the validation script and I was left scratching my head as to what I needed to do as the course doesn’t also provide solutions to the lab exercises, so it can be a little frustrating. The forums on the Linux Foundation site state that answers to the labs are intentionally omitted as they feel it helps the learner to work through the problem, and that in any event, the answers to the tasks should be able to be extrapolated from the course material. I’m not so sure this is always the case, maybe it is for a more seasoned JavaScript developer but when you’re learning the material I feel it can take you down lots of fruitless paths and seems to waste time trying to solve a problem. However having said that, the techniques used to solve the lab exercises are very useful to take into the actual exam.

JSNAD exam

The exam topics are split into the 13 domains and competencies listed earlier and each topic or category has a task or tasks to complete for each. Each task is in a subfolder of the topic and contains a readme.md file containing the instructions and the JavaScript file or files that need to be edited to complete the task. The tasks themselves seem geared towards ensuring the minimal amount of coding is needed to demonstrate the required knowledge of the area being tested and so there isn’t a huge amount of typing required per task and the chances of typing errors are reduced. You do of course have everything available to allow you to run the code and do some testing of the code to try and ensure that you have produced a working solution.

For the topics such as prototypal inheritance, modules or testing where there are several different methods or tools to achieve the same goal, the exam questions are posed in such a way as to allow you to choose the method you prefer and so it is probably better to have a deeper understanding of your preferred ways of solving these problems than it is to have a broader but more superficial understanding of each.

As stated at the beginning, the exam format is a performance-based exam, solving questions by writing code and so the best preparation is writing code. There are various online tutorial sites for learning JavaScript such as https://nodeschool.io that provide useful practice but if your time for studying for the JSNAD is limited I’d concentrate my efforts on the course and the course lab material and invent some variations on these themes around some different scenarios. If you can do that confidently then you will be in a good place to do well in the exam! Good luck!

About the Author:
Brian Carr is an AWS DevOps Engineer here at Version 1.

--

--