Экспорт экзаменов из Visual CertExam в Anki

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

Собственно процесс подготовки обычно выглядит как многократное прохождение одного и того же экзамена раз за разом в Visual CertExam. У этого подхода есть, на мой взгляд, большой минус: программа не учитывает, насколько хорошо я знаю конкретный вопрос, и при каждом проходе мне приходится раз за разом тратить время на те вопросы, которые я уже хорошо выучил, чтобы перейти к тем, которые еще нет.

Я уже довольно давно использую Anki, в которой используется алгоритм интервального повторения(Spaced Repetition).

Перевод, на мой взгляд, слишком буквальный, но не суть важно. Сама система подробно описана по ссылке, но вкратце ее можно описать примерно так: формируются карточки с вопросом и ответом. Во время повторения материала показывается вопрос, и нужно вспомнить правильный ответ. Ответ сравнивается с ответом на карточке, и если ответ совпадает, то программа покажет карточку чуть позже. При правильных ответах интервалы выглядят примерно так: день, два, неделя, две недели, месяц, ну и т.д. Если ответ неправильный, то программа сбрасывает интервал и все начинается по новой. Таким образом, используя эту систему ежедневно (желательно), материал откладывается в долговременную память.

У этого подхода есть много плюсов:
  • Хорошо выученный материал показывается реже, следовательно, не нужно тратить на него время
  • Новый/забытый материал повторяется чаще
  • Anki есть для всех платформ (Windows, Linux, Mac)
  • Есть клиенты Anki для Android, iOS и прочих мобильных платформ. То есть можно учить материал на своем мобильнике, стоя в очереди, в автобусе и т.д.
  • Еще в Anki есть режим зубрежки, в котором можно пройтись по всему материалу, игнорируя интервалы, чтобы, скажем, повторить материал перед экзаменом

Это очень краткое описание Anki. В программе есть очень много настроек, поддержка многих языков и все такое.

Anki можно скачать вот здесь.

Поэтому я решил написать скрипт, который экспортирует дамп из формата Visual CertExam в колоду Anki. Он еще довольно сырой и ограничен, но он работает и уже помог мне сдать экзамены, сильно экономя время.

Скрипт написан на Python и его можно скачать вот здесь.

Работает он примерно так. Экзамен экспортируется из VCE Designer в текстовый формат, после чего скрипт из этого текстового файла создает готовую колоду Anki.

Вопрос и список ответов идет на лицевую сторону карточки, а правильный ответ (или ответы, если их несколько) идет на заднюю сторону. Если к ответу есть заметки или дополнительное объяснение, они тоже добавляются на заднюю сторону карточки.

Текущая версия скрипта заточена под работу с ankimini. В основном потому, что в этой сборке есть все необходимые зависимости.

Я лично проверял его только на Windows, но теоретически он должен сработать и на других системах.

Как пользоваться скриптом:
  1. Качаем Python 2.7(32 bit) (Python 3 и 64бит опять же не тестировал).
  2. Качаем ankimini отсюда.
  3. Распаковываем ankimini.
  4. В Visual CertExam Designer открываем экзамен .vce .
  5. Нажимаем File->Export to, и экспортируем в папку с ankimini. Файл зовем test.txt (важно выбрать формат .txt — с rtf скрипт не работает).
  6. Открываем файл test.txt в Notepad++.
  7. Жмем Encoding->Convert to utf-8 и сохраняем файл. (теоретически должен подойти любой редактор, который сможет сохранить файл в формате utf-8).
  8. Копируем скрипт vcetoanki.py в папку ankimini.
  9. Запускаем vcetoanki.py

Все. Если все прошло успешно, в папке ankimini должен появиться файл test.anki, который можно открыть в Anki и начать по нему учиться.

Минус скрипта в том, что он не сохраняет картинки, если они есть в дампе. Их, к счастью, обычно очень немного. Я начал интереса ради разбирать бинарный формат .vce, чтобы можно было конвертировать напрямую, без экспорта в txt, и с минимальными потерями данных (как картинки), но я зашел недалеко и всего лишь успел расшифровать название экзамена и первый вопрос. Если кому-то это интересно, я могу выложить то, что успел разобрать на gist.github или pastebin.

Надеюсь, этот маленький скрипт поможет кому-нибудь так же, как он помог мне.
Поделиться публикацией

Комментарии 34

    0
    Недавно готовился к экзамену и столкнулся с той же проблемой…
    Спасибо за оригинальное решение ;)
    Жалко плюсовать не могу, но "+" идея однозначно заслуживает!
      +3
      Даже хорошо зная теорию, дампы сильно повышают шанс пройти сам экзамен

      Да. Даже не так: можно легко пройти экзамен, абсолютно не зная теорию.

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

      Чушь.

      Это, само собой, и так все знают.

      Я что, единственный в мире человек, который честно сдавал абсолютно все свои сертификационные экзамены?

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

      К примеру, мой начальник собеседовал одного крутого CCNP, который не знал АБСОЛЮТНО ничего, даже что такое «split horizon». Видимо, дампы все-таки не очень хорошо «закрепляют в памяти детали самой темы», и эффективнее будет зубрить тему целиком и полностью…
        0
        На самом деле сдавать экзамены чисто по дампам не самое лучшее решение. Да, у такого человека будут все сертификаты. Но чтоб работать-то нужно теорию знать.

        У нас на курсе вся теория еще и закреплялась практикой на виртуальных, и иной раз на физических машинах. Но при всем этом нам препод лично раздавал последние дампы экзаменов.

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

        Сам по себе дамп мало чего стоит, но вместе с теорией он-таки действительно помогает закрепить в памяти детали темы.
          +1
          Сертификаты обычно нунжы не для того чтобы работать, а для того чтобы фирма в которой человек работает получала плюшки от МС
            0
            дамп сильно повышает шанс прохождения экзамена.

            Вот Вы прошли курс подготовки. И теперь минимум по 2 раза зубрите дампы. Если у Вас всё настолько плохо с мозгом — может, имеет смысл подыскать себе другую сферу деятельности? У нас, например, улицы грязные, некому подметать…
            Я сдал в общей сложности 4 экзамена Microsoft (два после курсов, там шел даже ничего не повторяя) и 10 письменных экзаменов Cisco (включая CCIE R&S), которые вроде как считаются более сложными (но ни единого курса по ним не проходил). Однажды был на обучении по цискиным делам, но как раз после них на экзамен не пошел. А цискины экзамены малость подороже стоят. Microsoft ведь еще и вторую попытку бесплатно дает? Или уже нет? Так почему для меня не было проблемой сдать даже те направления, по которым я не имел боевого опыта? Нет, память довольно паршивая, дело не в этом.
            Даже больше. Я на лабу CCIE (цена вопроса 55к рублей за попытку) ходил за свой счет, не прорешав ни одной тренировочной лабы. Вроде бы все ладилось, но почему-то завалил. Не беда — потихоньку подучу матчасть и еще раз пойду. Самое грустное: когда мы с народом уходили после 8-часовой сессии, этот народ очень бодро обсуждал между собой, кому какая лаба попалась. Один рвал и метал по поводу «мою я нигде не встречал, новая видать». Я практически сломал себе лицо ладонью… Даже сюда му*аки добрались.
            вместе с теорией он-таки действительно помогает закрепить в памяти детали темы.

            Повторюсь:
            Чушь.

            Закрепляет детали темы ее повторение без знания конкретных вопросов. Представим себе, что по некоторой теме можно задать миллион вопросов. Вы вызубрили (разумеется, без понимания, иначе не пришлось бы по 2 раза прорешивать дампы) сотню из них. Так напомните: какие там знания дают дампы?
              0
              У вас осталось совсем мало времени, CCIE в ближайшее время будет Retired
                0
                CCIE в обозримом будущем не будет retired. А вот конкретную сертификацию могут и обновить.
                Или с CCIP путаете? Так он у меня и так есть. И обновление CCNP Service Provider мне нравится.
            0
            Тут многое еще и от экзамена зависит. К примеру, я недавно сдавал CCNA Voice. Так вот экзамен там, имхо, абсолютно бестолковый. Разумеется я читал Study Guide, занимался этим на работе, даже конспектировал. Но когда я открыл дампы — был немного в шоке. Большая часть вопросов была на очень отдаленные от реальной действительности темы.

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

              0
              К примеру, я недавно сдавал CCNA Voice. Так вот экзамен там, имхо, абсолютно бестолковый.

              Я сдавал ICND1/2, IINS, BSCI, BCMSN, ONT, ISCW, BGP+MPLS, QOS, CCIE RS. Почему-то ни один из них не могу назвать бестолковым. Сходить что ли на ICOMM, посмотреть… Вас раздражают вопросы по теореме Найглиста и тому подобное? Но это же фундамент…
              В реальности же все усреднено, и дампы можно расценивать как пробный экзамен, чтобы оценить свои силы.

              Думается, такого не бывает.
              экзамены совсем не бесплатны

              Я без дампов ходил на экзамен по цене сильно подержанного автомобиля. И?
                0
                CCNA Voice (ICOMM) действительно довольно слабая тема. Там получается что-то вроде Discovery перед получением CCNP Voice.
                0
                Поддержу. Те экзамены, которые сдавал я (MB7-xxx) больше на знание деталей а не сути. Можно быть успешным разработчиком, можно достаточно неплохо ориентироваться в программе, по которой стаёшь экзамены, но если ты не помнишь на зубок названия каких-то форм, пейджей, репортов, последовательность их вызовов и групп меню, в которых они расположены, то экзамен можно и не сдать.

                В любом случае, прочтение материалов для подготовки не даёт 100% уверенности, что ты сфокусирован именно на тех моментах, которые важно знать именно для этого экзамена.
                  0
                  Ну по моей тематике: человек, сдающий сертификацию по голосовым направлениям, обязан знать presence, voice mail, все основные протоколы h.323 и так далее. Человек, сдающий что-то по роутингу, не может не знать порядок установки BGP сессии, виды арий OSPF и так далее. Иначе у него в мозге образуется здоровая дыра, которая непременно проявит себя в процессе траблшутинга, и вместо быстрого решения проблемы он начнет судорожно гуглить.
              0
              Вас раздражают вопросы по теореме Найглиста и тому подобное?

              Совсем нет, там в основном было про Presence и VoiceMail. А на уровне CCNA лучше экзаменовать знания по основам, будь то dial peer-ы, или протоколы сигнализации.

              Я сдавал ICND1/2, IINS, BSCI, BCMSN, ONT, ISCW, BGP+MPLS, QOS, CCIE RS

              Все с первого раза? Даже если нет, это без сомнения, достойно уважения. Тем не менее, почему не подстраховать себя? Хотя это уже конечно вопрос принципов и отношения, кому как.

                0
                там в основном было про Presence и VoiceMail.

                И на что жалуетесь?
                CCNA тоже должен что-то уметь…
                Все с первого раза?

                ISCW со второго. Я сдавал его вскоре после CCNA Sec, показалось, что все то же самое, а на практике проглядел пару здоровых блоков, которых не знал (CBAC кажется и еще что-то).
                Ну и лабу CCIE завалил — хотя так и не понял, почему. Я сдавал в пятницу. Говорили, в четверг ходил гуру эпических масштабов с 20-летним опытом в телекоммуникациях, тот тоже набрал около 20% на L2 части и тоже не смог понять, почему.
                почему не подстраховать себя?

                Должно быть два результата похода на экзамен.
                1) Тему понял (соответствуешь требованиям Cisco), экзамен сдал.
                2) Тему не понял, экзамен завалил.
                Вы предлагаете «тему не понял, экзамен сдал». Зачем?

                Рядовые цискины экзамены тоже стоят копейки, вполне можно позволить себе сдавать их честно. Если экзамен провален, то обычно это значит, что ты паршиво знаешь материал, и стоит его повторить.
                  0
                  Должно быть два результата похода на экзамен.
                  1) Тему понял (соответствуешь требованиям Cisco), экзамен сдал.
                  2) Тему не понял, экзамен завалил.

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

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

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

                  Рядовые цискины экзамены тоже стоят копейки

                  Ваше здоровье, если 250$ для Вас копейки. Для меня — нет. Как и для многих, я думаю.
                    0
                    Так вот дампы позволяют ответить на этот вопрос и сделать выводы что нужно повторить, на чем заострить внимание, без финансовых потерь.

                    Автор писал «и при каждом проходе». То есть он убедился на первом проходе, что ни черта не знает, и вместо изучения матчасти приступил к зубрежке, запуская второй раунд. На выходе знаний нет, есть лишь ответы на некоторые вопросы.
                    Тут вопрос действительно принципиальный. Вам надо любой ценой получить статус, вне зависимости от уровня знаний? Или же убедиться в том, что соответствуете некоторому уровню знаний? Меня вот только второе интересует, потому я готов ходить и на экзамен ценой в $1750, скорее рискуя завалить его, чем мухлюя. Ценность полученной жульническим путем сертификации любого уровня равна нулю. Если бы я прорешал штук 30 тренировочных лаб CCIE RS — я бы сдал лабу, но не смог бы после этого заставить себя сказать «я — CCIE», потому что это было бы ложью.
                    А могли бы прийти к такому же результату, просто открыв дамп у себя дома.

                    Дамп охватывает примерно все вопросы экзамена. Вы думаете, существуют люди, которые прорешают лишь маленький блок и на этом остановятся? Я же на второй попытке ISCW наткнулся не более чем на 10% знакомых вопросов, т.е. экзамен не утратил объективности. Да и для тех, что были знакомы, я не знал заранее точный ответ, потому что специально постарался забыть, о чем спрашивалось на первой попытке, чтобы не заострять внимание на отдельных вопросах вместо целых тем, по которым я хромал.

                    Что до последних моих экзаменов — BGP+MPLS и QoS — сдавал я по принципу «в четверг на ровном месте захотелось CCIP, посмотрел блюпринт, записался на субботу, без всякой подготовки пришел и сдал первый, через неделю — второй по тому же принципу».
                0
                Я бы хотел покапаться в исходниках скрипта, который расшифровывает бинарники.

                Надо посмотреть, если лицензия позволяет расшифровывать их (точнее не запрещает прямо), то можно не в gist выложить, а в полноценный репозиторий и допилить всем миром до работоспособного состояния.
                  0
                  Давно использую Anki и недавно сдал 762 MS по настройке сетей, обучившись перед этим на курсах.

                  Anki. Использую больше года для повторения иностранных слов на стационарном (Symbian такой Symbian), синхронизирую через Dropbox, чтобы и на работе иметь доступ к колодам. Программа простая, но лишнего и нет, то, что нужно.

                  По поводу MS. У меня был некоторый опыт администрирования до похода на курсы, после курсов я научился еще некоторым базовым вещам, читал книгу для подготовки именно к этому экзамену, но посмотрев дампы понял, что с моим уровнем подготовки, имхо, весьма проблематично сдать экзамен, т.к. если лично не нажал «вот конкретно ЭТУ галку» в настройках затерянной в глуши менюшке, то ни из каких книг не почерпнешь эту информацию. Если только методом исключения еще возможно. Это о некоторых вопросах с экзамена — не сложных, но встречающихся.

                  В итоге я пользовался дампами, параллельно копая глубже в нужных направлениях. На экзамене было 90% вопросов из дампов. Для собеседования это действительно не сильно большой плюс — нужны реальные знания, которые возьмутся только из практики.
                    0
                    Я сдавал после курсов 70-291 «Implementing, Managing, and Maintaining a Microsoft Windows Server 2003 Network Infrastructure». Ну не было там абсолютно никаких проблем, полная халява. Более того — если на курсах учиться, а не сидеть в аське, то преподаватель неизбежно протащит ученика физиономией по всем «вот конкретно этим галочкам» в Virtual PC. Более того — все эти галочки совершенно очевидны и логичны.

                    Но да, у них есть вопросы, на которые именно методом исключения и нужно отвечать. Ничего сложного.

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

                    То есть еще один товарищ не осилил банальный курс и зазубрил готовые ответы без малейшего понимания вопроса и матчасти. А мне потом с такими работать…
                      0
                      Возможно, наши курсы и экзамены различались. Преподаватель говорил, что в 2011 году 642 усложнился, т.к. MS посчитал, что до этого была та самая «полная халява».
                      Абсолютно точно могу сказать, что пройденные мною курсы к 642 готовят частично. С отсутствием бекграунда в виде опыта и только курсами сдать этот экзамен проблематично.

                      Последний абзац или троллинг или попытка оскорбить. Я не зря дописал «параллельно копая глубже в нужных направлениях», т.к. просто зубрежка дампов для меня неприемлема.
                        0
                        С отсутствием бекграунда в виде опыта и только курсами сдать этот экзамен проблематично.

                        Опыт нетрудно заработать в VMWare.
                        Я не зря дописал «параллельно копая глубже в нужных направлениях»

                        Хорошо, копаете глубже в 1% направлений (тех, которые мелькали в списке вопросов — ну не поверю, что и остальные затронуты). Потрясающе…
                        или попытка оскорбить

                        Не исключено — я ненавижу дамперов. Данные бездарные личности, неспособные честно осилить даже вполне тривиальные курсы, нивелируют ценность сертификаций. Ничего личного, просто глобальная ненависть.

                        Как надо:
                        1) Готовишься.
                        2) Идешь сдавать. Если заваливаешь, то:
                        3) Глубже готовиться по непонятным направлениям (а не вопросам)
                        4) Снова идти сдавать. Если неудачно, то GOTO 3.

                        Рано или поздно в голове образуется достаточно знаний для честной сдачи экзамена. Если нет — имеет смысл задуматься о карьере дворника.
                          0
                          Я поддерживаю пункт «Как надо», согласен с тем, что тупое заучивание дампа (без дальнейшего развития знаний) никуда не годится.
                            0
                            А зачем вообще открывать дамп? Что мешает сразу все выучить, даже если сдать придется не с первой, а со второй попытки? Не знаю как Вы, но я бы себя перестал уважать в тот момент, когда открыл бы дамп. Это — автоматическое признание собственной профнепригодности.
                          0
                          Еще момент.

                          The Microsoft Certified Technology Specialist (MCTS) on Windows Server 2008 credentials are intended for information technology (IT) professionals who work in the complex computing environment of medium to large companies.

                          Подскажите пожалуйста: разве не олигофренически выглядит жалоба «без опыта сдать проблематично», если в описании к экзамену сказано английским по белому «сертификация предназначена профессионалов, работающих с боевой инфрой в средних или крупных компаниях»? Может, тогда вообще не стоит сдавать, а следует сначала набраться опыта?
                            0
                            Оо, то есть, ко всему прочему вы уже назвали меня олигофреном. Быстрое развитие событий.
                            Вы во многом правы в своих комментариях, но вести с вами дальнейший конструктивный диалог не буду, выливайте негатив в другом месте.
                              0
                              Ну а как еще назвать человека, который жалуется на требования к опыту, хотя сказано «The MCTS candidate should have at least one year of experience implementing and administering Windows Server 2008 R2 in an environment that has the following characteristics:»? Что он вообще забыл на этом экзамене?

                              Вы не думали, что экзамен специально разработан так, чтобы человеку без практического опыта было крайне сложно его сдать? И что курсы не рассчитаны на «полный ноль»? Если бы не было баранов, зубрящих ворованные вопросы, сертификация MS могла бы считаться очень и очень весомым пунктом в резюме.
                                0
                                К сожалению курсы рассчитаны именно на «полный ноль», но в остальном всё верно — с опытом можно сдать экзамен без подготовки вообще.
                                  0
                                  К сожалению курсы рассчитаны именно на «полный ноль»

                                  Нет конечно.
                                  Например: www.microsoft.com/learning/en/us/Course.aspx?ID=6421B&Locale=en-us#tab3
                                  Читать после «Before attending this course, students must have:»

                                  Ну естественно, смотря какие курсы. Однако, в описании практически ко всем экзаменам говорится про необходимость наличия стажа работы в этом направлении. Пусть на самом деле есть лишь единицы экзаменов, где этот стаж проверяют. Например — Cisco CCAr. Там надобно сначала заплатить $3,750 за рассмотрение своей заявки на сдачу экзамена (еще не факт что согласуют — тут как раз требуется документально подтвержденный опыт работы; если кандидатуру отклонили, то деньги никто не вернет), а потом остальные $11,250 за сам экзамен. Немудрено, что подобного уровня специалистов — единицы, и большинство из них наверняка сотрудники Cisco.
                                    0
                                    Это заметно, если проходить программу последовательно. На примере MCSE (аналог CCNP): 270, 290 и 291 — разжовывают самые элементарные вещи, научат даже полных нулей; 293 и 294 — основываются на знаниях из предыдущих курсов, но тоже ничего сложного; реальный опыт требуется лишь в 297 и 298 — курсах по проектированию инфраструктуры для средних-больших компаний.
                                      0
                                      «Полный ноль» — понятие растяжимое. Человек действительно может знать винду на уровне секретарши перед началом обучения даже по самым первым курсам — тогда ему будет весьма тяжко.

                                      Тем не менее, формальные требования есть. Microsoft говорит про «год опыта» и тому подобное, так что жаловаться «буду зубрить дампы, потому что без опыта стать сложновато» абсурдно.

                                      Я, кстати, вспомнил — вроде есть одна компания, которая выпускает тренировочные вопросы для массы разных экзаменов. Не дампы, ни один из этих вопросов не появится на экзамене, и при этом они примерно того же уровня, что и экзаменационные. Вроде бы это Boson. Только дамперам это не интересно…
                            0
                            642 в 2010 был копией 291, я сдавал оба с разницей в полгода и был очень удивлён увидев теже самые вопросы.
                          0
                          Вопрос ради интереса. Если понятно, что «с моим уровнем подготовки, имхо, весьма проблематично сдать экзамен» — зачем вообще идти? Может, стоит побольше времени провести на технете, неделю-две старательно поработать с виртуалками, еще раз прочитать пособие? Предполагается, что нормальный человек так и поступит…
                            0
                            Вы опять пытаетесь оскорбить? «А мне потом с такими работать» и «нормальный человек так и поступит…»

                            На вопрос по сути ответил в комментарии выше.
                              0
                              У меня свежи воспоминания, как я одному сертифицированному винадмину объяснял, как устроен и работает его же DHCP сервер. Опять же, дампера легко вычислить по общей некомпетентности, в то время как сертификация предполагает кругозор.

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

                        Самое читаемое