Зачем написана статья?


image

Когда я готовился к OCA и OCP по Java 8, то нашел много статей на Хабре, благодаря которым выбрал оптимальный путь и сэкономил много времени.


Однако по подготовке именно к OCA Oracle Database SQL (1Z0-071) материалов на Хабре нет и в интернете тоже очень мало. Поэтому я решил написать подробную статью, которая поможет заинтересованным потратить меньше времени и успешно сдать довольно объемный экзамен.


Зачем сдавал?


Главной причиной послужило желание упорядочить знания, которые я получил за годы учебы и работы и заполнить все белые пятна. Также я хотел узнать, какого уровня понимания сам вендор БД, в данном случае Oracle, ожидает от разработчиков.


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


Но ведь тогда, можно было бы просто прочитать книгу, и решать тесты. Зачем идти и сдавать официально? Как дополнительная мотивация.


При решении тестов можно невольно пожалеть себя и простить какие-то недочеты, а настоящий экзамен не простит. Можно по разному его сдать, но если мы пришли за пониманием, то сертификация довольно объективный измеритель знаний.


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


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


Что знал перед тем как начать готовиться?


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


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


Первый “Теория баз данных” Э.Э. Гасанова, это фундаментальный теоретический курс.


Второй курс “Базы данных” вел М.И. Кумсков, практический курс по типам баз данных, как анализировать требования, как создавать таблицы, связи и много чего еще.


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


Кроме этого, я как многие работал на работе и дома в основном с PostgreSQL, MySQL и SQLite, читал статьи, смотрел курсы.


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


Почему именно Oracle Database SQL?


Я рассматривал три базы данных PostgreSQL, MySQL и Oracle Database SQL.


PostgreSQL официальной сертификации нет. MySQL есть, но она довольно старая и мне лично ее ценность не до конца понятна.


Остановился на Oracle так как сертификация недавно обновлена, сертификат по этой базе, как мне кажется, ценится больше остальных. А так как курс только по SQL, то там описаны вещи, которые должны в той или иной степени работать во всех SQL базах данных, так как все они поддерживают ANSI SQL.


Как готовился?


Здесь я подробно описываю то, что я делал и какие ошибки совершил.


Опыт сын ошибок


Прежде чем начинать читать книгу, я хотел установить Oracle SQL. Как раз на Хабре прочел, что вышла 18c XE. Я зашел на сайт и увидел, что MacOS в списке нет. Windows на тот момент у меня не было, зато была VPS на Ubuntu. К сожалению, Oracle на Ubuntu я не смог завести, может попытка была необдуманной, но и не такие вещи я в жизни делал.


В итоге я прикупил на DigitalOcean VPS с CentOS и без особого труда поставил БД туда. Будучи вообще не знакомым с официальным редактором SQL Developer я решил, что буду писать в DataGrip от JetBrains, так как он уже был установлен. Подключил DataGrip к Oracle SQL и начал читать официальную книгу по подготовке к экзамену.


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


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


Занимался три раза в неделю по два-три часа. В какую-то неделю меньше, в какую-то неделю больше. Не могу сказать, что это приятное чтение и порой оно вызывало у меня отчаяние, но цель поставлена, план есть, можно было продолжать. Книга довольно сложная для восприятия. Иногда и со второго раза я не мог разобрать что имел ввиду автор.


К началу июня, больше чем через месяц, я все-таки закончил чтение и выполнил первый тестовый экзамен из двух в эмуляторе, который идет вместе с книгой. Причем я забыл про время и не успел закончить даже половину вопросов. По умолчанию программа не разрешила продолжить тест (в отличии от Enthuware для Java). В результате набрал меньше половины. Несмотря на то, что успел сделать только половину я убедился, что не полностью усвоил книгу.


Дела налаживаются


Поэтому решил дальше искать другие материалы по подготовке и наткнулся на курс на Udemy, первоначально отнесся скептически, так как всегда предпочитал книги при подготовке к более менее серьезному экзамену. Но не найдя альтернатив, я посмотрел рейтинг, почитал отзывы и купил курс (за 4 824 рублей) ничего особо от него не ожидая. Как оказалось примерно раз в неделю цена падает до 799 рублей, поэтому стоит подождать.


К этому моменту мне надоело постоянно подключаться к VPS для того чтобы разбирать примеры практически. Плюс ко всему DataGrip не поддерживает SQL*Plus команды. Поэтому достал ноутбук на Windows и поставил туда все локально, следуя инструкции из видео курса.


Не смотря на мои ожидания, я остался очень доволен курсом. Автор рассказывает как установить БД, установить SQL Developer и как разблокировать подготовленного Oracle тестового пользователя HR с уже загруженными данными. В течении всего видео курса почти все примеры показываются на тестовой базе HR. Также автор показал, что использует SQL Developers и это, я думаю, правильный и бесплатный выбор.


Странно, что ни про установку БД, ни про Oracle SQL Developer, ни про HR пользователя, в книгe не рассказывается. При этом в самом экзамене часто встречались вопросы, которые как раз основаны на данных из этой БД. Поэтому, если бы я знал где подстелить заранее, я бы начал с видео курса, и уже потом перешел к книге и сэкономил бы время.


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


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


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


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


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


Практика


Было ясно, что тестов из книги и эмулятора маловато, нужно было прорешать еще два-три тестовых экзамена перед тем как сдавать. Сначала я думал купить Kaplan Training их советует Oracle на официальном странице экзамена, но цена в $189 за полный курс меня обескуражила. Поэтому я купил тесты по совету автора курса Udemy. Я купил PDF + эмулятор за $60 долларов.


Меня ждал не очень приятный сюрприз. В отличии от Enthuware где тесты разбиты на 7 независимых экзаменов, эти тесты разбиты на две части в одной 272 вопроса, в другой 27. Я так и не понял логики, но разбираться не стал. Я просто в уме разбил на три отдельных по 78 вопросов и засекал два часа для каждого, как в настоящем. Купленные материалы оцениваю ниже среднего, если сравнивать с Enthuware. Встречались ошибки в вопросах и ответах, часто к вопросу нет объяснения, нет ссылки на форум где можно обсудить вопрос, нет возможности смотреть детальные отчеты, чтобы понять какие именно темы хуже всего усвоены.


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


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


Сдача


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


Сдача экзамена стоит $245 долларов.


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


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


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


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


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


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


На самом экзамене я уже особо не волновался, следовал плану, и закончил за 10 минут до конца, за оставшееся время на всякий случай пробежался по всем вопросам и проверил, что ответил на все. Через пятнадцать минут на почту пришло письмо, что можно проверить результаты, я зашел на сайт и узнал что прошел, с результатом в 85%. Чему был очень рад.


Как надо было готовиться


Если бы я заранее знал какие материалы и в какой последовательности использовать, сократил бы подготовку до 2-2.5 месяцев.


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


Я бы не разворачивал БД на VPS и не использовал DataGrip. Я бы сразу установил БД и SQL Developer локально на компьютер или виртуальную машину, следуя инструкции из видеокурса.


Итак, вот дорожная карта, по который я бы готовился:


  1. Проработать курс на Udemy и разобрать все примеры на локальной БД.
  2. Установить эмулятор из книги Стива О'Хирна, но саму книгу не читать.
  3. Прорешать экзамен. Попутно фиксировать темы вопросов на которые не можете дать однозначный ответ.
  4. Прочесть самые непонятные главы, обычно первых трех хватает.
  5. Повторить 3. и 4. для второго экзамены из эмулятора.
  6. Купить тестовые экзамены, прорешать два, повторяя 3. и 4.
  7. Записаться на экзамен и сдать.

Послесловие


Надеюсь, что статья поможет всем кто хочет сдать экзамен. Я постарался описать подробно, хоть и скучновато, все что делал по двум причинам. Во-первых, чтобы был понятен ход мыслей и вывод к которому пришел. Во-вторых, статей по этому экзамену мало. Буду очень рад дополнениям в комментариях! Удачи на экзамене!


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

Комментарии (22)


  1. Filex
    12.09.2019 10:21

    А в работе полученные знания пригодились?


    1. raiym Автор
      12.09.2019 10:44

      Уверенность появилась в знаниях, это наверное самый большой плюс.


  1. raiym Автор
    12.09.2019 10:42

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

    А если в общем, то каких-то быстрых результатов я не увидел пока =)


    1. Filex
      12.09.2019 10:49

      Понятно =)


    1. Barcel
      13.09.2019 10:12

      Какой аналог merge вы использовали?


      1. raiym Автор
        13.09.2019 10:50

        Еще не использовали. UPSERT в SQLite, не полный аналог, конечно, потому что MERGE больше умеет, но нам как раз подходит.


  1. dimkrayan
    12.09.2019 14:34

    Жаль оракл давно не раздает халявные ваучеры. Я когда-то давно так сдал несколько экзаменов по солярису.


  1. dnizovskikh
    12.09.2019 14:46

    Где сдавали экзамен?


    1. raiym Автор
      12.09.2019 16:55

      На сайте PearsonVue нашел ближайший от работы


  1. fivehouse
    13.09.2019 11:49

    Ну и после того, как сдали экзамен (обязательно после, для закрепления эффекта), зайдите на хаха и посмотрите увеличится ли количество предложений о работе и зарплата в вашем запросе вакансии со словом Oracle или внезапно уменьшится. Результат немного неожиданный.


  1. ksdaemon
    13.09.2019 13:25
    +1

    Если вдруг кто-то хочет другие оракловые экзамены посдавать, то я в своё время делал серию заметок про это. Думаю, что и до сих пор актуально.
    https://blog.ksdaemon.ru/tag/ocp/


    Там в основном про БД Oracle и кластеры.


    1. raiym Автор
      13.09.2019 13:37

      Здорово! =)
      С учетом того, что прошло уже много времени после того как вы получили первую сертификацию, как вы думаете насколько сильно это повлияло на работу и карьеру?


      1. ksdaemon
        13.09.2019 13:40
        +1

        нуу конкретно в моём случае не думаю, что сильно. Потому что все дальнейшие сертификации я получал, работая в той же компании. А инициативу я и так проявлял :) Но да, ко мне обращались как к эксперту по Оракл и вообще моё мнение было весомым и не оспариваемым :) Это конечно приятно!


        1. raiym Автор
          13.09.2019 13:43

          Ясно, спасибо!


          1. ksdaemon
            13.09.2019 13:45

            Но в первую очередь это нужно именно тебе самому. У Оракл очень классная документация и экзамены не пустые, а реально охватывающие практические штуки. После подготовки и сдачи — ты сам значительно лучше начинаешь понимать как всё устроено и работает!


            1. raiym Автор
              13.09.2019 13:54

              Да, согласен


  1. dim2r
    13.09.2019 20:12

    Оracle — очень хорошая система. Все логично и продуманно. Ничего лишнего. Напрягает только блокировка пакетов при компиляции.


  1. Rogerg
    14.09.2019 08:10

    Спасибо за статью, очень во время т.к. сам сейчас нахожусь в процессе подготовки к экзамену.
    У меня схожие мотивы, выбрал Oracle как наиболее авторитетную компанию по сертификации.
    После прочтения книги создается ложное ощущение что практически все знаешь, но когда пробуешь себя на тестах, то уверенность сразу пропадает, т.к. очень много вопросов с подвохом.
    Я конечно немного забегаю вперед но все же, какой сертификат может быть следующим после
    1Z0-071?


    1. raiym Автор
      14.09.2019 08:15

      Удачи в подготовке!

      Дальше, как мне кажется, идет Oracle Database: Advanced PL/SQL.


      1. Rogerg
        15.09.2019 07:19
        +1

        Я кстати сразу после прочтения статьи записался на курс Udemy. Пока курс очень нравиться (сразу была хорошая скидка), у мужчины смешной акцент (а кто из нас может говорить идеально), так что спасибо за наводку. Подтверждаю и рекомендую. It's very nice.


  1. Sequelgirl
    15.09.2019 08:13
    +1

    На хабре видела только java путь, как раз искала что-то подобное. Спасибо!
    А сколько, если не секрет, у Вас по итогу вышли финансовые затраты на подготовку к экзамену?


    1. raiym Автор
      15.09.2019 09:38

      за экзамен $245 + за курс на Udemy 4800 рублей + тесты $60 + официальная книга по подготовке (у меня есть подписка на Safari Books, поэтому досталась в рамках подписки) + куча времени на подготовку.