Рубрика:
Карьера/Образование /
Сертификация
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АНДРЕЙ УШАКОВ, НПО «Сапфир», ведущий разработчик/архитектор, std_string@mail.ru
Экзамены Linux Professional Institute
Полезна ли сертификация или нет – каждый решает сам (я знаю как ярых сторонников сертификации, так и не менее ярых ее противников). Мнение автора следующее: если сертификационные экзамены сдавать честно, то они несут определенную пользу и выгоду
В ноябре 2015 года я сдал первый экзамен из двух для получения сертификата LPIC-2, плюс ранее были два успешных экзамена для получения сертификата LPIC-1. После этих трех экзаменов (а до этого были еще экзамены для прохождения сертификации Microsoft и Oracle) я решил поделиться своими опытом и мыслями с теми, кому интересна тема сертификации.
За исключением ряда фактов, все, что приведено в данной статье, это мнение автора, которое может не совпадать с вашим мнением.
О сертификатах LPI
Сертификацией, о которой я хочу рассказать в данной статье, занимается Linux Professional Institute. Это некоммерческая организация, основная цель которой – обучение и развитие профессиональных навыков и карьеры разработчиков в мире Linux и технологий с открытыми исходными кодами. Основные средства для достижения этой цели – обучение исертификация.
У Linux Professional Institute [1] есть четыре сертификационные программы:
- Linux Essentials,
- LPIC-1,
- LPIC-2,
- LPIC-3.
Сертификационная программа Linux Essentials состоит из одного экзамена, является сертификационной программой начального уровня и существует сама по себе (т.е. она нетребуется для дальнейшего прохождения сертификации). Стоимость сдачи экзамена в рамках этой сертификационной программы – $110. И, по мнению автора, она не особенно нужна и полезна.
Сертификационная программа LPIC-1 имеет другое название – Linux Server Professional Certification – и состоит из двух экзаменов с номерами 101 и 102. Необходимо сдать оба этих экзамена для прохождения этой сертификационной программы.
Сертификационная программа LPIC-2 имеет другое название – Linux Network Professional Certification – и состоит из двух экзаменов с номерами 201 и 202. Для прохождения этой сертификационной программы необходимо пройти сертификационную программу LPIC-1 и сдать оба этих экзамена.
Сертификационная программа LPIC-3 имеет другое название – Linux Enterprise Professional Certification – и состоит из трех экзаменов с номерами 300 (Mixed Environment), 303(Security) и 304 (Virtualization and High Availability). Для прохождения этой сертификационной программы необходимо пройти сертификационную программу LPIC-2 и сдать любой из трех экзаменов.
Стоимость сдачи каждого экзамена в рамках сертификационных программ составляет $188.
Сертификат Linux Essentials не имеет срока окончания действия (другими словами, он бессрочен). Срок действия сертификатов LPIC-1, LPIC-2 и LPIC-3 ограничен пятью годами (иэто, пожалуй, самый большой недостаток этих сертификатов). Однако при получении каждого следующего сертификата все предыдущие сертификаты автоматически продлевают свой срок действия (так, при получении сертификата LPIC-2 автоматически продлевается срок действия сертификата LPIC-1).
Нужна ли такая сертификация?
Наверное, у любого человека сразу же возникнет вопрос: для чего же нужна эта сертификация (что она может дать)? На этот вопрос сложно дать однозначный ответ. Однако можно привести мнение автора, чем данная сертификация полезна разработчикам программного обеспечения под ОС Linux (вне зависимости от используемого языка для разработки).
Во-первых, позволяет систематизировать все то, что мы знали на данный момент об экосистеме Linux. Действительно, все разработчики читали литературу на ту или иную тему, разбирались с мануалами к командам и утилитам, а также решали ряд задач при работе с ОС Linux. Однако достаточно часто этот багаж знаний не полон и не до конца систематизирован. Так, например, если работать только на дистрибутивах, производных от Debian, то о менеджере пакетов RPM можно иметь весьма туманные представления. А приподготовке к экзаменам все основные темы, связанные с экосистемой Linux, так или иначе затрагиваются: Filesystem Hierarchy Standard, менеджеры пакетов, скрипты инициализации SysV и Upstart, работа с X-Server и многое другое.
Во-вторых, данная сертификация учит решать большинство задач, связанных с той или иной стороной администрирования ОС Linux. Нам больше не нужно ждать специально обученного человека (он же системный администратор) для решения таких задач, как, например, подключение нового жесткого диска к компьютеру или формирование сетевой инфраструктуры, основываясь на нескольких виртуальных машинах.
И, наконец, при подготовке к данной сертификации мы узнаем, какие средства у нас есть в наличии и как те или иные задачи уже решены в ОС Linux. Действительно, если перед нами стоит задача по расписанию запускать какое-то действие, то мы воспользуемся демоном cron вместо того, чтобы реализовывать свой подобный велосипед.
С другой стороны, если существующие средства нас чем-то не устраивают, то мы сможем это обосновать и реализовать свое средство, устраивающее нашим требованием. Так, например, и был создан anacron, когда стало понятно, что cron не позволяет решать задачи, связанные с запуском заданий через определенные промежутки времени.
Пример применения полученных знаний
Давайте посмотрим на реальный пример задачи, которую необходимо решить так, как это принято в мире (в экосистеме) Linux с учетом тех знаний, которые мы можем получить приподготовке к сертификационному экзамену.
Нам необходимо спроектировать для некоторого приложения подсистему конфигурирования, которая позволяла бы задавать параметры снаружи, а не содержать их в виде констант времени компиляции.
Тут следует сделать небольшое замечание. Обычно на начальных стадиях разработки какого-либо приложения задачу конфигурирования решают с помощью констант времени компиляции, содержащих все необходимые параметры (например, номер слушающего порта). А уже на более поздних стадиях (обычно ближе к выпуску приложения дляиспользования) реализуют полноценную подсистему конфигурирования.
Первым делом необходимо решить, что для нас будет источником конфигурационных параметров. Есть два возможных источника:
- аргументы командной строки;
- конфигурационные файлы.
Конфигурационные файлы позволяют задавать данные любого объема, но, с другой стороны, они являются дополнительной сущностью (помимо приложения), которую необходимо обслуживать (администрировать).
Аргументы командной строки позволяют задавать все необходимые параметры по месту, но они делают использование приложения более трудоемким.
Большинство приложений командной строки Linux управляется относительно небольшим объемом конфигурационных данных (конфигурационных параметров). Таким приложениям параметры передаются через аргументы командной строки. Для некоторых приложений определен конфигурационный файл со значениями параметров по умолчанию; если какой-либо параметр не задан через командную строку, то его значение будет взято из конфигурационного файла со значениями параметров по умолчанию.
Также есть приложения, которые в качестве источника конфигурационных данных используют только конфигурационные файлы. Обычно это приложения с достаточно большим объемом конфигурационных данных (хотя это не обязательно), которые было бы крайне затруднительно передавать через аргументы командной строки (например, демон cron иконфигурационный файл /etc/crontab). Использование конфигурационных файлов в качестве источника конфигурационных данных выглядит более универсальным.
Поэтому мы будем использовать именно их для нашего приложения. Следует сказать, что в нашем приложении мы все же будем использовать ряд аргументов командной строки, например, для получения помощи.
Следующий вопрос, который необходимо решить, – это формат конфигурационных файлов, которые мы будем использовать.
Если вы пишете на Java (или на C# под платформу Mono), то скорее всего захотите использовать конфигурационные файлы в формате XML (благодаря поддержке XML-сериализации и десериализации).
Если вы пишете на Erlang, то скорее всего захотите использовать строковое представление членов языка Erlang (как это сделано в конфигурационных файлах Erlang/OTP).
В операционной системе Linux обычно используются простые текстовые файлы с данными в виде пар ключ – значение в качестве конфигурационных файлов. Очевидно, что этонаиболее универсальный вариант, поддержку которого легко реализовать на любом современном языке программирования.
После того как мы выбрали источник конфигурационных данных (конфигурационные файлы) и формат этих данных, следует решить вопрос о расположении этого источника, атакже ряд сопутствующих вопросов.
Согласно Filesystem Hierarchy Standart файл с конфигурационными данными должен располагаться в /etc или в одной из поддиректорий.
Что же касается имени конфигурационного файла, то тут есть разные варианты. Для одних приложений имя конфигурационного файла – это имя приложения с расширением conf (например, sysctl.conf – это конфигурационный файл для sysctl). Для других приложений именем конфигурационного файла может быть любая строка, обычно все же включающая имя приложения (например, crontab – это конфигурационный файл для cron).
Первый вариант кажется более логичным, поэтому мы на нем и остановимся: для нашего приложения с именем app (имя может быть любым) полное имя конфигурационного файла будет /etc/app.conf.
Есть еще один вопрос, связанный с именем и расположением конфигурационного файла, – это вопрос тестирования приложения. Этот вопрос проявляется как при написании интеграционных тестов, так и при ручном тестировании и заключается в следующем: при тестировании нам необходимо формировать конфигурационный файл с теми или иными данными и передавать его нашему приложению.
Способ в лоб: каждый раз копировать в /etc сформированный конфигурационный файл. У этого способа есть два больших минуса.
Во-первых, нам необходимо будет перед тестированием сохранять, а после тестирования восстанавливать реальный конфигурационный файл.
Во-вторых, это проблемы с правами доступа; права доступа на директорию /etc – 755, владельцем /etc является пользователь root. Это означает, что при каждом копировании сформированного конфигурационного файла нам будет необходимо запрашивать права пользователя root (например, с помощью команды sudo).
Но есть другой подход, который позволит нам избавиться от этих проблем, – использование параметра командной строки для задания расположения файла с конфигурационными данными. Если этот параметр присутствует в аргументах командной строки, то путь к конфигурационному файлу задается этим параметром, в противном случае мы используем файл /etc/app.conf в качестве конфигурационного файла.
Давайте подведем итог. Мы решили, что в качестве источника конфигурационных данных мы используем конфигурационный файл. Этот файл имеет простой текстовый формат сданными в виде пар ключ – значение. Для нашего приложения с именем app полное имя конфигурационного файла будет /etc/app.conf. Кроме того, наше приложение станет поддерживать минимум три параметра командной строки:
- для получения номера версии приложения,
- для получения справки о приложении,
- для возможности задания расположения конфигурационного файла, отличного от расположения по умолчанию.
Программа и источники информации
Обязательный шаг перед сдачей экзамена – это подготовиться к нему. Самый первый шаг, который необходимо сделать всегда, – это найти и разобраться с программой экзамена. Другими словами, перед любым экзаменом всегда нужно знать список тем, по которым могут быть вопросы. Вся подобная информация находится на сайте самой организации Linux Professional Institute.
Так, например, для экзамена LPIC-1 Exam 101 список тем можно найти в [2]. Список тем разбит на категории, каждая из которых разбита на подкатегории. У каждой подкатегории есть некоторый вес, описание, список тем, входящих в данную подкатегорию и список определений, файлов и утилит, которые, так или иначе, относятся к темам из данной подкатегории.
Вес подкатегории – это целое положительное число, определяющее насколько часто вопросы, относящиеся к темам из данной подкатегории, могут появиться на экзамене. Чем значение веса больше, тем вопросы, относящиеся к темам из данной подкатегории, чаще могут появиться на экзамене.
В список определений, файлов и утилит входят не все возможные определения, файлы и утилиты, встречающиеся в темах из данной подкатегории, а только самые важные (помнению создателей экзамена). Так, например, для подкатегории «102.3 Управление разделяемыми библиотеками» в список определений, файлов и утилит входят утилиты ldd иldconfig, конфигурационный файл /etc/ld.so.conf и переменная окружения LD_LIBRARY_PATH.
Следует сказать, что на экзамене вполне могут быть вопросы об определениях, утилитах или файлах, которые не упоминаются в списке определений, файлов и утилит, и к этому нужно быть готовым.
Помимо списка тем, по которым могут быть вопросы, важным источником является справочная система, поставляемая вместе со всеми дистрибутивами Linux (доступ к ней осуществляется с помощью команды man). Она содержит как справочную информацию по конкретной команде, так и общую справочную информацию, относящуюся к тому илииному аспекту ОС Linux.
Так, например:
- команда man ls – выведет справочную информацию по команде (утилите) ls;
- команда man fs – информацию обо всех файловых системах, известных ОС Linux,
- команда man ext2 – информацию о файловой системе ext2, в том числе и список утилит, предназначенных для работы с ней.
Кроме справочной информации, поставляемой вместе со всеми дистрибутивами Linux, в нашем распоряжении находится интернет. В нем можно полностью найти все, что доступно в справочной информации, поставляемой вместе со всеми дистрибутивами Linux, а также много чего еще. Поэтому можно дать следующий совет: если вы не нашли где-тоинформацию на какую-либо тему, то попробуйте поискать ее в сети.
Есть и еще один источник информации для подготовки к экзамену – это специализированная литература, нацеленная именно на подготовку к экзамену. В этой литературе рассматриваются только те темы, вопросы на которые могут появиться на том или ином экзамене.
Так, например, для подготовки к экзаменам LPIC-1 Exam 101 и LPIC-1 Exam 102 была выпущена книга «LPIC-1: Linux Professional Institute Certification Study Guide: Exam 101-400and Exam 102-400». В ней рассматриваются только вопросы, относящиеся к экзаменам LPIC-1 Exam 101 и LPIC-1 Exam 102. Поэтому вопросов, связанных, например, с компиляцией ядра Linux, вы не найдете (вопросы, связанные с компиляцией ядра Linux, рассматриваются на экзамене LPIC-2 Exam 201).
А где же можно найти/купить подобную литературу? Если вы не боитесь английского языка (а вы и не должны его бояться, т.к. возможности сдачи экзамена на русском языке нет), тоее можно купить прямо на сайте Linux Professional Institute. Например, для сертификации LPIC-1 (для экзаменов LPIC-1 Exam 101 и LPIC-1 Exam 102) вся доступная для покупки литература располагается по [3].
Для покупки необходимо осуществить безналичный платеж с помощью банковской карты, при этом (что очевидно) все цены приведены в долларах. Покупать одну или несколько книг или же воспользоваться справочной информацией ОС Linux (и всемирной компьютерной сети Internet), решать вам.
Автор при подготовке к экзаменам LPIC-1 Exam 101 и LPIC-1 Exam 102 использовал книгу «LPIC-1: Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400». Без нее подготовка к этим сертификационным экзаменам потребовала бы гораздо больше усилий и времени.
Есть и еще один источник информации, которым можно воспользоваться при подготовке к экзаменам: пробные экзамены и так называемые braindump реальных экзаменов.
Что такое пробные экзамены, мне кажется, всем понятно: это вариант экзамена с вопросами, похожими на вопросы реального экзамена (более того, иногда попадаются вопросы, полностью совпадающие с вопросами реального экзамена).
На том, что такое braindump реальных экзаменов, следует остановиться подробнее. Есть категория людей, которые на сдаче экзаменов запоминают вопросы и свои ответы, после чего выкладывают их в интернет. Понятно, что при этом никто не гарантирует, что сам вопрос, возможные варианты ответа и правильный ответ будут совпадать с тем, что есть на самом деле. Часто бывает, что выкладываются только сам вопрос и правильный ответ, т.к. запомнить все возможные варианты ответа достаточно трудоемко. Некоторые из таких braindump бесплатны, за другие же их авторы или специализированные ресурсы просят заплатить некоторую сумму.
Пользоваться ли пробными экзаменами и braindump или нет, решать вам. На взгляд автора, если пробные экзамены и braindump не являются основным источником информации, топочему бы и нет. Основная проблема с braindump в том, что многие так называемые «специалисты» проходят подобные экзамена только с помощью braindump (особенно это любят делать индусы). Они заучивают все возможные вопросы и правильные ответы, после чего проходят успешно экзамен и получают сертификат, хотя при этом у них нет никаких знаний не по одной из тем.
Это одна из основных причин того, что на данный момент сдача сертификационных экзаменов не имеет большой цены в глазах работодателей (хотя следует сказать, чтобольшинство работодателей из-за границы на сдачу сертификационных экзаменов обращают внимание). Поэтому если ваша цель не просто сдать экзамен и получить сертификат, тонет ничего плохого, что после изучения материала вы потренируетесь в сдаче сертификационного экзамена дома.
При этом такие сдачи могут показать вам те темы, в которых ваши знания не достаточно сильны. Однако нужно учитывать (как говорилось выше), что и сам вопрос, и варианты ответов, и правильный ответ могут быть некорректны. Стоит ли самому создавать braindump после сдачи сертификационного экзамена или нет – опять же решать вам (вас за этоникто не оштрафует). Автор для себя решил, что создавать braindump после сдачи сертификационного экзамена он не будет.
Есть и еще один источник информации, который для многих, возможно, будет основным, – это ваш собственный опыт. Если вы постоянно работаете в ОС Linux и решаете повседневные задачи, желательно с помощью командной строки (а не с помощью разнообразных графических утилит), то на многие вопросы легко найдете ответ из своего личного опыта.
Так, например, если при работе с Debian-пакетами вы привыкли использовать утилиты командной строки (apt-get, apt-cache и др.), а не графические утилиты (Synaptic), то вряд ли для вас будут сложны вопросы об управлении Debian-пакетами.
А теперь давайте немного поговорим о самих вопросах, которые могут появиться на экзамене. Их можно отнести к одной из трех категорий:
- вопросы с одним правильным вариантом ответа,
- вопросы с несколькими правильными вариантами ответов,
- вопросы, для которых ответ нужно ввести.
С первыми двумя категориями вопросов все просто: будет предложено несколько вариантов ответов, из которых нужно выбрать один или несколько правильных. Для ответа навопрос из последней категории необходимо ввести ответ самому в специальное поле.
В эту категорию входят следующие вопросы:
- ввести имя команды (утилиты),
- ввести имя конфигурационного файла,
- ввести команду со всеми необходимыми аргументами для выполнения какой-либо задачи.
Периодически встречаются вопросы, ответы на которые специфичны для тех или иных дистрибутивов. И эта специфика касается не только разных систем управления пакетами (rpm, debian) в разных дистрибутивах.
Так, например, права у файла /etc/shadow в дистрибутивах Rad Hat установлены в 0400, а в дистрибутивах Ubuntu – в 0640 (и на эту тему есть вопрос на экзамене).
Достаточно часто будут попадаться вопросы о ключах тех или иных команд (утилит), причем нет 100% возможности узнать, о каких ключах команд (утилит) могут быть заданы вопросы.
И, наконец, есть ряд вопросов, ответы на которые нужно просто заучить. В первую очередь это вопросы о комбинациях клавиш Vim. Если не пользоваться Vim для повседневной работы, то подготовка к таким вопросам требует определенных усилий.
Процесс сдачи экзамена
Немного о том, как происходит сдача экзамена:
- вы приходите в назначенное время в специальный авторизированный центр, в котором стоит специальный компьютер со специальным софтом;
- перед сдачей экзамена предъявляете два документа (на последней сдаче мне сказали, что достаточно паспорта и банковской карты с подписью);
- сдаете все вещи (в том числе и сотовый телефон);
- садитесь за этот специальный компьютер и сдаете экзамен.
При этом за вами следят либо по веб-камере, либо лично (т.е. присутствует человек, ответственный за экзамен).
На сдачу экзамена вам отводится 90 минут, при этом нужно правильно ответить на 60% вопросов. После сдачи экзамена выдают документ с результатами.
Этот документ для каждой категории вопросов содержит результат того, как успешно вы отвечали на вопросы из соответствующей категории. Если вы ответили на все вопросы изкакой-либо категории правильно, то результат для данной категории будет 100%. В противном случае результат для данной категории будет меньше 100% (он может быть даже меньше 60%).
И напоследок позвольте дать вам несколько советов, которые могут помочь при сдаче экзамена.
- Активно пользуйтесь специальным флажком в программе, позволяющим пометить вопрос, если вы на 100% не уверены, что ответили на него правильно. Если вы не можете вспомнить правильный ответ на вопрос, то не расстраивайтесь: возможно, один из последующих вопросов подскажет вам ответ на данный вопрос. Так, например, если вызабыли имя какого-либо параметра для некоторой команды, то вполне возможно, что в одном из последующих вопросов будет приведено использование этой команды синтересующим вас параметром.
- Не задерживайтесь надолго на одном вопросе: помните, что на весь экзамен вам дается ограниченное время. Если вы не знаете ответа на какой-либо вопрос, то попробуйте вычислить на него ответ исходя из общей логики и ваших знаний. Если вы не знаете ответ и предыдущие советы вам не помогли, то попробуйте угадать ответ на данный вопрос, никогда не оставляйте вопросы без ответов.
- И, самое главное, не переживайте: экзамен на самом деле проще, чем он кажется на первый взгляд.
Полезна ли сертификация или нет – каждый решает сам (я знаю как ярых сторонников сертификации, так и не менее ярых ее противников). Мнение автора следующее: если сертификационные экзамены сдавать честно, то они несут определенную пользу и выгоду.
- Сайт Linux Professional Institute – http://www.lpi.org.
- Экзамен LPIC-1 Exam 101 – https://www.lpi.org/study-resources/lpic-1-101-exam-objectives.
- Литература LPIC-1 (для экзаменов LPIC-1 Exam 101 и LPIC-1 Exam 102) – http://www.lpimarketplace.com/category-s/1847.htm.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|