Во время "самоизоляции" подумалось получить пару сертификатов. Посмотрел на одну из сертификаций AWS. Материала для подготовки очень много — видео, спецификации, how-to. Очень времязатратно. Но ведь самое эффективное при сдаче экзаменов, основанных на тестах — просто решать экзаменационные или похожие на них вопросы.


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


Что не так?


Сперва, почему не подошло то, что есть. Потому что в лучшем случае это просто список вопросов с вариантами ответов. Который:


  1. Может содержать ошибки в формулировке
  2. Может содержать ошибки в ответах (если они есть)
  3. Может содержать "самодельные" некорректные вопросы
  4. Может содержать устаревшие вопросы, которые на экзамене уже не встречаются
  5. Неудобен для работы, нужно дополнительно еще делать заметки в блокноте о вопросах

Небольшой бизнес-анализ предметной области


Можно считать, что средне подготовленный специалист примерно на 60% вопросов ответит уверенно, на 20% ему нужна некоторая подготовка, и еще 20% вопросов мудреных — по ним необходимо какое-то изучение материала.


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


Получаем тэги и фильтрацию списка вопросов по ним


Вдобавок к вышеперечисленным стандартным — "Легкий", "Сложный", "Мудрёный" — добавим пользовательские тэги, чтобы пользователь мог отфильтровать, например, только по "Сложный" и "Lambda"


Еще примеры тэгов: "Устаревший", "Некорректный".


Что имеем в итоге?


Я прохожу все вопросы один раз, помечая тэгами. После этого забываю о "Легких". В моем тесте 360 вопросов, это значит больше 200 вычеркиваются. Они больше не будут отнимать внимание и время. Для вопросов на языке не родном для пользователя это ощутимая экономия.


Затем решаю несколько раз "Сложные". А о "Мудрёных", возможно, вообще можно даже забыть — если их немного и проходной балл достаточно невысок.


Эффективно, по-моему.


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


https://certence.club


Источник вопросов


Берутся с других ресурсов. Пока написан адаптер только для examtopics.com, — этот сайт, возможно, лучший в плане качества материала, и на нем есть вопросы для более чем 1000 сертификаций. Парсить весь сайт я не стал, но любой желающий может загрузить в certence.com любую сертификацию сам по нижеследующей инструкции.


Инструкция по самостоятельной загрузке вопросов

Необходимо установить в браузер веб расширение и пройти по всем страницам examtopics.com с вопросами, которые вы хотите добавить. Расширение само определит сертификацию, вопросы и они сразу же появятся на certence.com (F5)


Расширение представляет собой сотню строк простого JavaScript кода, вполне читаемого на предмет малварности.


Загрузить расширение в Chrome Webstore у меня почему-то каждый раз оборачивается какими-то нечеловеческими муками, поэтому для Хрома нужно скачать архив, раззиповать в пустую папку, затем Chrome > Дополнительные инструменты > Расширения > Загрузить распакованное расширение. Указать папку.


Для Firefox — ссылка. Должно установится само. Тот же zip, просто с другим расширением.


После загрузки нужных вопросов просьба отключить или удалить расширение, чтобы не плодить ненужный интернет трафик (хотя оно активируется только на examtopics.com).


Дискуссии пока в режиме read-only с того же сайта-донора, но помогают сильно.


В настройках есть выбор режима просмотра. Все данные пользователя хранятся на клиенте в локальном кэше броузера (авторизация еще не реализована).


Пока только десктопная версия.


Как сделать хороший UI/UX для мобильного экрана мне пока неочевидно.


Хотелось бы получить отзывы и предложения.