Мой отзыв о сдаче экзамена JSNSD (OpenJS Node.js Services Developer), курсе подготовки к нему и несколько полезных советов, которые помогли мне сдать экзамен.

Ранее на этой неделе я устроил изолированный уголок в своей гостиной и сдал двухчасовой онлайн-экзамен на получение сертификата OpenJS Node.js Services Developer (JSNSD).

В этом посте я хотел бы рассказать о самом экзамене, своем опыте и подготовке к нему, а также обсудить, стоит ли он того и вам.

Я не буду делиться информацией об экзаменационных вопросах, поскольку это противоречит соглашению о конфиденциальности экзамена. Однако я больше расскажу об опыте и курсе подготовки к этому экзамену, предлагаемом Linux Foundation.

Кто предлагает этот сертификат?

Эта сертификация предлагается Фондом OpenJS, ведущим фондом, который поддерживает развитие и управление многими проектами NodeJS с открытым исходным кодом, такими как Node.js, Electron, jQuery и Webpack.

Экзамен проводится через The Linux Foundation, которая также известна тем, что выдает другие популярные сертификаты, такие как сертифицированный администратор Kubernetes (CKA) и сертифицированный инженер Linux Foundation (LFCE), а также другие типы сертификатов. Итак, на сегодняшний день это, пожалуй, самая законная сертификация Node.js в отрасли.

Предлагается два типа сертификатов Node.js:

  • OpenJS Node.js Services Developer (JSNSD) (Я выбрал этот). Этот экзамен посвящен созданию служб REST API и защите ваших служб от злонамеренного пользовательского ввода.
  • Разработчик приложений OpenJS Node.js (JSNAD). Этот экзамен посвящен основным модулям Node.js, таким как файловая система, буферы, потоки и дочерние процессы.

Я буду говорить более подробно о JSNSD, но некоторые советы также применимы, если вы принимаете JSNAD.

Формат и стиль экзамена

Экзамен — это экзамен, основанный на производительности (например, практическая лаборатория), что означает, что вы будете проходить тест на виртуальной машине онлайн, чтобы написать код и создать приложения Node.js.

Каждая задача потребует от вас создания простого приложения Node.js, которое реализует только определенное требование (например, метод HTTP, который должен возвращать определенный ответ HTTP и состояние).

Для JSNSD вы можете реализовать свое решение любым удобным для вас способом. Вас будут оценивать не по тому, как вы реализуете решение, а по тому, как ваше приложение отвечает на их различные HTTP-запросы.

Экзамен длится 2 часа, и вы решите его, подключившись к виртуальной машине среды удаленного рабочего стола Linux. Виртуальная машина для JSNSD в настоящее время использует CentOS с графическим интерфейсом. Виртуальная машина поставляется с предварительно установленными узлом, npm, Postman, Visual Studio Code и даже WebStorm IDE. Таким образом, вам не нужно ничего устанавливать на виртуальную машину, на которой вы будете тестировать.

Вам разрешено искать в Google и просматривать любую документацию Node.js через браузер Chrome на удаленном рабочем столе. Вы можете получить доступ к любой документации, документации по модулям npm и даже к GitHub. Однако во время экзамена StackOverFlow и другие веб-сайты Stack Exchange заблокированы.

Мотивация к экзамену и его значение

Я использую Node.js более четырех лет как на работе, так и в своих побочных проектах.

Я впервые услышал об этой сертификации из Твиттера в начале 2020 года, и что меня очень заинтересовало, так это стиль экзамена. Я подумал, что это будет захватывающая задача, поэтому я решил пройти JSNSD, потому что он больше соответствует тому, с чем я чаще всего работаю.

Я читал в Интернете о некоторых людях, которые получили один или оба сертификата, чтобы улучшить свои навыки работы с Node.js или потому, что их работодатели попросили их (по какой-либо причине). На данный момент я не нашел никакой информации о том, имеет ли этот сертификат большую ценность для работодателя, поскольку для компании нет организационной выгоды (партнерских преимуществ), если бы их инженеры имели этот сертификат.

Я обычно думаю, что навыки кодирования лучше проверяются созданием сложного проекта, а не сертификацией в некоторых сценариях. Однако я не хочу разжигать дискуссию о том, стоит ли сертификация языков программирования. Я бы сравнил эти сертификаты Node.js с сертификатами Java Associate от Oracle. Некоторые люди находят большую ценность в том, что сертификация Java помогает им хотя бы пробиться на собеседование. Сертификатам Node.js всего два года, поэтому они не так хорошо известны в отрасли, как сертификаты Java, но они все еще могут быть хорошим началом разговора на собеседовании.

Стоимость экзамена и курса дополнительного обучения ($$$)

Итак, причина, по которой я говорил о мотивации и ценности выше, заключается в том, что стоимость этой сертификации составляет умопомрачительные 300 долларов США, что довольно дорого для того, кто будет платить за нее из своего кармана (например, я). Если вы решите купить сопутствующий курс подготовки, вы можете купить комплект, который на момент написания этой записи в блоге стоит 499 долларов США. Эта цена указана за один из сертификатов (либо JSNSD, либо JSNAD).

К счастью, я купил этот экзамен (и курс) с огромной скидкой во время сезона распродаж, проводимого The Linux Foundation. Последней скидкой, которая была у них в начале апреля 2021 года, был экзамен за 99 долларов. Они также предложили комплект экзамена и подготовительного курса за 149 долларов. Итак, я настоятельно рекомендую подписаться на обновления по электронной почте The Linux Foundation и дождаться их следующего сезона распродаж или убедить своего босса заплатить за это.

При покупке экзамена вы получаете ваучер, действительный в течение одного года. Вы можете запланировать свой экзамен в любое время в течение этого года. Вы также получите бесплатную пересдачу, если не сдадите экзамен с первой попытки.

Если вы также приобретете курс, вы получите доступ к курсу на 1 год.

Прежде чем купить экзамен, убедитесь, что вы прочитали список часто задаваемых вопросов по ​​идентификатору и системным требованиям, а также не живете ли вы в настоящее время в стране, на которую распространяются санкции.

Подготовка к экзамену

Изначально, когда я покупал экзамен, курса подготовки к экзамену не было, поэтому я обратился к их списку рекомендуемой литературы, который включал:

Однако, пока я читал некоторые главы и разделы из вышеупомянутых ресурсов, я откладывал чтение большего. Я не чувствовал себя достаточно уверенно, знаю ли я все, что они собирались проверить меня, а информации было мало. Спустя несколько месяцев The Linux Foundation запустил пару учебных курсов для этих экзаменов, поэтому я купил курс Разработка сервисов Node.js (LFW212) и изучил его.

Курса мне хватило как единственного учебного материала, необходимого для сдачи экзамена. В общей сложности мне потребовалось пару выходных, чтобы пройти весь курс. Список глав указан на странице курса здесь. Курс предназначен для разработчиков Node.js среднего уровня, поэтому, если вы новичок в бэкэнде и Node.js, это может занять у вас немного больше времени.

Обзор курса

Курс представляет собой курс в письменном формате (поэтому нет видео или записей для просмотра). Он был разделен на десять глав с 1 или 2 лабораторными работами в каждой главе. Каждая лабораторная работа представляет собой письменное задание (похожее на экзаменационное задание), и вам необходимо загрузить несколько JS-файлов, содержащих необходимый код для каждой лабораторной работы. Один из файлов JS представляет собой набор модульных тестов, который вы можете запустить в конце своей лаборатории, чтобы проверить, правильно ли вы реализовали требования лаборатории.

Вот плюсы и минусы курса, основанные на моем собственном мнении:

Плюсы

  • Мне понравился курс, и в основном потому, что курс авторский сосредоточился на двух веб-фреймворках (Express и Fastify) и реализовал большинство примеров в каждом фреймворке, чтобы сравнить реализацию друг с другом.
  • Автор также проделал отличную работу, объяснив проблемы с утечкой памяти, которые могут возникнуть при использовании среды Express с асинхронным ожиданием (без try-catch), поэтому он предоставил экспресс-примеры с использованием функций в стиле обратного вызова.
  • У вас есть доступ к форуму, чтобы задать вопросы, если вы застряли.
  • Курса достаточно для сдачи экзамена, но он достаточно всесторонний, чтобы охватить некоторые основы проектирования REST API в Node.js.

Минусы

  • Для дорогого курса я надеялся, что лабораторные работы можно решить и проверить в Интернете, а не загружать все файлы и настраивать свою локальную среду.
  • Темы, затронутые в главах по веб-безопасности, разочаровывающе просты и ограничены. Вот что было рассмотрено в курсе: предотвращение загрязнения параметров HTTP, проверка запросов API, тела и структуры ответа, а также блокировка определенного IP-адреса вашего приложения на уровне кода.
  • Меню навигации на боковой панели меня довольно раздражает, так как многие подссылки имеют одинаковый заголовок, поэтому найти конкретную часть, которую вы читали ранее, сложно.

Хотелось бы, чтобы курс охватывал более продвинутые темы безопасности, а сертификат имеет продвинутый уровень для проверки более широкого спектра угроз безопасности, которые могут повлиять на любое приложение Node.js.

Планирование экзамена

Запланировать экзамен было просто через портал Linux Foundation. Я просто выбрал дату и время на 2 дня вперед. Раскрывающийся список выбора даты и времени очень медленный, но вы можете увидеть разные ежедневные возможности в разные часы после его загрузки. Сам тест проходит под контролем PSI.

Вам также будет предложено загрузить определенное расширение Chrome, чтобы проктор мог контролировать ваш экран.

Сдача экзамена

Для экзамена я установил изолированный, удобный и свободный от беспорядка письменный стол в своей гостиной. Я вошел в систему за 15 минут до начала экзамена и дождался появления проктора. Инспектор попросил меня показать свое основное удостоверение личности с помощью веб-камеры и совершить 360-градусный тур по комнате с помощью веб-камеры. Пройдя несколько дополнительных проверок совместного использования экрана, мне сразу же разрешили приступить к экзамену.

Доступ к удаленному рабочему столу осуществляется через вкладку браузера Chrome на моем ноутбуке. Размер рабочего стола виртуальной машины отображается в полноэкранном режиме на вкладке моего браузера. Внутри виртуальной машины есть браузер Chrome (который принадлежит виртуальной машине), который уже открыт со списком задач, которые вам нужно выполнить. Я открыл IDE WebStorm, которая сразу же открыла список папок для всех задач. Я просто прыгал между папками в терминале IDE. Я также открыл некоторые ссылки на документацию через браузер Chrome виртуальной машины (не на моей машине).

Экзамен прошел гладко, без задержек, и мне удалось выполнить все задачи за полтора часа, а оставшиеся полчаса я провел еще раз, тестируя свой код и убеждаясь, что не было сбоев.

Результаты были отправлены мне по электронной почте через 24 часа, и я успешно прошел тест с результатом 94%. К сожалению, отзывов о подсчете очков нет, поэтому я не знаю, какую часть я мог реализовать неправильно.

Вы также получаете цифровой значок через Credly и ссылку на инструмент проверки сертификата. Сертификат действителен в течение трех лет.

Последние мысли

Если вы новичок в бэкэнде или Node.js, я думаю, что этот курс или экзамен будет сложным. Если вы уже работали с Node.js раньше, это простой экзамен.

Экзамен может стать интересной вехой в личном обучении и помочь вам продемонстрировать что-то, чтобы получить первую работу программиста в компании Node.js.

Сопутствующий учебный курс экономит время, помогая вам учиться быстрее, вместо того, чтобы обращаться к нескольким ссылкам. Тем не менее, если вы хотите сэкономить и уже имеете некоторый опыт работы с Node.js, вы можете сначала сдать экзамен, так как у вас есть бесплатная пересдача. Затем вы можете решить, хотите ли вы приобрести курс или нет.

Тем не менее, я многому научился на этом курсе. Я много работал с Express раньше, поэтому в основном я узнал о Fastify благодаря этому курсу, и он мне понравился, поэтому теперь я буду в основном использовать Fastify в своих будущих проектах Node.js.

Резюме советов

  • Не забудьте рассказать об основах Javascript и Node.js (например, асинхронное ожидание, промисы, установка времени ожидания, обратные вызовы, package.json, зависимости, npm)
  • Изучите фреймворк (например, Express или Fastify). Реализация экзаменационных заданий на ванильном сервере Node.js займет у вас больше времени.
  • Убедитесь, что все ваши задачи могут быть запущены с помощью команды npm start.
  • Не запоминайте код. Это открытый экзамен, поэтому вы можете ссылаться на ссылки. Тем не менее, вам нужно будет изучить концепции перед этим. Времени экзамена недостаточно для того, чтобы вы научились реализовывать метод GET, если вы никогда раньше его не применяли.
  • Если вы планируете получить оба сертификата, я бы рекомендовал начать с JSNAD, если вы хотите охватить большинство основных модулей Node.js в своем обучении.
  • Дополнительный совет: в настоящее время Linux Foundation предлагает ограниченное по времени предложение для предварительного ознакомления со средой сертификационного тестирования Node.js. Вы можете получить представление о том, как выглядит тест VM, и ответить на несколько примерных вопросов. Нет проктора, и он не оценивается. Подать заявку на это можно здесь.

Я также нашел несколько дополнительных советов в этом посте от 2019 года.

Большое спасибо за то, что нашли время прочитать мою статью.

Если вам понравилось или у вас есть вопросы, дайте мне знать в комментариях ниже или свяжитесь со мной в Твиттере.

Первоначально опубликовано на https://abba.dev.