Code Monkey home page Code Monkey logo

certification's Introduction

Node.js Certified Developer

Public facing repository to document and update community on Node.js Certified Developer project development

This repository is a reflection of project work collaborated on in private repositories to maintain the integrity of the exam questions.

In December 2016, the Node.js Foundation held an in-person development workshop after Node.js Interactive North America to accelerate work on its new Node.js Certified Developer program. The Job Task Analyis(JTA) working group determined specific topics for the exam and the skills, knowledge and abilities a certified candidate should be able to demonstrate to become a Node.js Certified Developer.

The certification program aims to establish a baseline for competency in Node.js. While not an expert in all areas, developers who pass the certification will be able to hit the ground running with Node.js professionally.

UPDATED TIMELINE

  • Preliminary user/market research, project planning, and JTA recruitment
    • May - September 2016
  • JTA workshop to establish domains and weighting
    • December 2016
  • Determine and procure infrastructure partner
    • January - March 2017
  • Item Writing recruitment and development(ongoing)
    • April - Current 2017
  • Alpha testing
    • December 2017
  • Beta I: early access, 40 candidates
    • January 2018
  • Beta II and establish cut score: 100 candidates
    • February 2018
  • QA testing
    • March 2018
  • General Release
    • March 2018
  • Review for Node.js bugs and exposure(every month)
  • Workshop to revise for LTS update and exposure
    • October 2018

Please see this for activity specific to the active item writing development phase.


The process for these workshops is explained below. We’ll start with a few premises!

We are certifying early Intermediate level developers.

Developers who certify cannot do everything, but hit the ground running with a Node.js job.

Considering the constraints of the exam environment (isolated and proctored), we needed to address concerns around security, exam item exposure, and cheating. Discussions spanned the full gamut of what we use on a day to day basis as Node.js developers. Amongst resources considered to have available/unavailable:

  • Google search
  • Lodash, underscore
  • JavaScript frameworks
  • Node.js frameworks
  • Testing frameworks
  • A white list of modules
  • Keeping resources within VM
  • Potential of developers to create npm packages that have answers pre-coded and this can be logistically taxing to monitor by the Certification team.

The issue of the programming environment candidates would encounter as part of the certification was discussed at length as well. Considerations included:

  • Important to be vendor-neutral, no lock-in
  • Tiers of support for Node.js were talked about: Linux, Mac, Windows. Ways to provide a single environment but account for those who develop outside of OSX so they are not penalized.
  • Make sure we're covering the approximate quirks that different operating systems have in the answer logic/testing
  • Write agnostic JavaScript/Node.js items
  • Infrastructure may be provided by a third party with constraints as yet unknown

Scope

Participants individually attempted scope statements in writing and then presented them aloud while transcribed. The critical elements of each were highlighted, captured, and combined into a single scope statement.

Node.js Certified Developers can work proficiently in JavaScript with the Node.js platform to build, debug, test and maintain secure framework-independent applications and CLI tools.  

They are capable of handling asynchronous I/O effectively and efficiently to manipulate, transform and persist various data using HTTP, files, streams, and multiple processes.  They can leverage and integrate 3rd party modules effectively.  

The Topics!

The next order of business was to determine the primary domains of performance. Participants named many topics, which were then transcribed and posted on large (24” x 36”) Post-It sheets.  As we converged on ideas, it was realized that some topics were out of scope, others could be captured under another domain.  The determined Domains are:

Below is the final blueprint.

# DOMAIN WEIGHT
1 Unit Testing 5%
2 Diagnostics (Basics, Debugging, Performance) 5%
3 http(s) TCP 11%
4 Events 9%
5 Child Processes (Basics, no IPC/fork) 7%
6 Buffers and Streams 9%
7 Error Handling 7%
8 File System 7%
9 Control flow (Async tasks, Callbacks) 10%
10 CLI (-E, -R, etc) 3%
11 Package.json 5%
12 Javascript Prerequisites (Closures, prototypes, var/let/const) 6%
13 Security (Basics only) 5%
14 Module system (Scope) 6%
15 Process/Operating System (no IPC) 5%
Total 100%

The most valuable and heated discussions of this workshop was in determining these weights. The diversity of roles that were giving input to the weights--hiring managers, trainers, teachers, and developers of a wide range of experience levels is key in finding confidence in the selected weights. It is important to note that we will monitor the performance of candidates in alpha and beta testing to determine whether these need to be adjusted for setting a passing score.

Individual tasks were written for each domain and subtopic, however the working group did such a great, detailed job that we risk exposing potential questions for the exam. These tasks will the foundation of the Item Writing development phase.

Testing Details

A test length of 3 ½ hours was deemed appropriate for the scope of the exam and for human comfort/attention span. The test time includes introductory material, practice items, instructions regarding control structure, as well as final instructions regarding results reporting.

The test will consist of approximately 30 items, depending on the results of Beta testing.  The test will be comprised of one form with item variants for security purposes.

Writing, editing and testing code are going to be the assessment mechanisms used in this exam.  In some items, partial code will be provided to the candidate to reduce the time required to demonstrate the skills to be evaluated.  In other contexts, the candidate would write an entire program.

No prerequisites or credentials are required to take the examination.  This has to be stated for those who are not familiar with certification programs.

Recertification Interval

Recertification requirements and interval:

  1. Regulatory requirements:  there are no regulatory requirements for Node.js.
  2. The exam will reflect changes to normative documents annually with LTS cycle.
  3. The exam will be reviewed and updated every 2 years  
  4. The LTS releases support cycle reflects the nature and maturity of the industry or field in which the certified person is working.  
  5. The risks resulting from an incompetent person include the following:  bad hire; lost recruitment money; incremental training costs; missed deadlines.
  6. Ongoing changes in technology, and requirements for certified persons are reflected in ES releases  
  7. Requirements of interested parties were taken into account in formulating the task force, and will be included in guiding bodies for updating and revision of the exam.  Interested parties include:
  • Programmers, Training companies, Foundation and Consultancy companies
  • Organizations using Node Hiring managers
  1. No surveillance activities are planned to evaluate certificants on an ongoing basis.

Test Retake Interval

In order to maintain current certification, certificants will be required to retake the Node.js certification exam every two years.  

Exam Review Interval

Because of changes to the Node language, every two years the exam will be reviewed for content appropriateness and accuracy.  If it is determined that the exam needs substantial revision, then another JTA will be undertaken.

Recommended learning materials

(to be refined and moved to a separate document)

A subset of these will be provided as part of the isolated exam environment.

  • Node docs
  • node_modules readme files
  • MDN JavaScript docs
  • Package.json docs

Books

URLs

Training Materials

certification's People

Contributors

hackygolucky avatar diegorbaquero avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.