Skip to content
June 25, 2013 / ahriman hpc mode

Рассуждая о сертификации Microsoft. Зачем, как, почему, какие проблемы? Пример подготовки плана к экзамену 70-487.

Добрый день, уважаемые коллеги.

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

Зачем?

Итак, для того, чтобы зарегистрироваться на сертификационный экзамен Microsoft, необходимо прежде всего выяснить, зачем это нужно конкретно вам. Уходя от банальных причин, которые в принципе недоказуемы (например, “работодатели смотрят на количество сертификатов” без перечисления этих работодателей, это игра на некоторых секретных знаниях, при этом касающихся только определенной части работодателей), расскажу об одной причину, по которой сдаю экзамены я.

Причина, по которой я считаю нужным для себя сдавать сертификационные экзамены – это подтверждение уже существующей планки знаний и умений или установление новой. После определенного опыта использования любой интересной технологии часто не хочется терять этот опыт из-за того, что он не уложился в голове или уложился неструктурированно. Многие люди, даже имея за плечами многолетний опыт, часто не умеют подходить к изучению нового методически, так, чтобы новые знания не остались в пределах одного приложения, написанного с их использованием. Как раз здесь прекрасно подходит подготовка и сдача сертификационных экзаменов. Сдача экзамена подразумевает, что у кандидата уже сформировалась определенная устойчивая база знаний, изрядно дополненная реальным практическим опытом использования (подход к сдаче экзаменов, заключающийся в зубрении теории, не выдерживает критики, так как много вопросов связано именно с практическим опытом кандидата). Как же ее сформировать? Ведь даже профессиональные разработчики порой “плавают” в, казалось бы, основах тех технологий, которые они изучают. Ответ очень прост – настроиться на сдачу сертификационного экзамена от вендора.

Настроившись на сдачу экзамена, сказав, что “я хочу сдать этот экзамен для того, чтобы [X]”, где [X] – причина, следует, что логично, перейти к причине.

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

Зачем это делать? Зачем подтверждать свои знания? Зачем уходить в тот процесс, который в случае с IT грозит стать бесконечным? Для того, чтобы не было стыдно, когда в резюме есть строчка “профессиональный разработчик на WCF с опытом 5 лет”, на интервью же задают вопрос типа “как можно сделать так, чтобы запросы, приходящие в веб-сервис, выполнялись параллельно внутри одного созданного экземпляра сервиса?”, а ответ неизвестен. Кто-то может сказать, что “я не сталкивался с этим, поэтому не знаю.” или “это сценарий, который скорее всего никогда не пригодится”. Подобные ответы я слышал не раз, и всякий раз они сопутствовали незнанию _базовых_ основ технологии. Зачем знать о том, что такое Frame Relay, ведь им никто не пользуется? Зачем знать, что такое msbuild, если уже есть Visual Studio? Подобные вопросы возникают постоянно. И последствия у них могут быть такие же, как незнание того, как строить дом, не зная, как правильно делать фундамент.

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

Разумеется, что этот подход часто критикуется апологетами быстрого обучения, утверждающими, что, если “работал 5 лет с продуктом, то легко сдашь экзамен”. Может, и получится сдать. Волей случая в экзамене без подготовки могут попасться те вопросы, на которые кандидат гарантированно знает ответ. Но решает ли это задачу, ради которой сдается экзамен – подтвердить свои знания? С одной стороны, решает. С другой – пробелы в знаниях так и остаются пробелами.

Итак, решив с причиной, необходимо перейти к тщательному составлению списка литературы, которая может помочь в сдаче экзамена, как подготовительной, так и часто – документации, например, к API. Например, практически ко всем экзаменам Microsoft есть специальные книги, в участии которых принимают известные специалисты, которые являются, по своей сути, быстрой “пробежкой” по технологии с акцентом там, где это может быть полезно. Рассматривать их как единственный ресурс не стоит, скорее – как либо ресурс на первое прочтение (когда нужно понять, где пробелы в знаниях), либо, наоборот, в качестве чтения в последнюю ночь. Замечательной особенностью экзаменов Microsoft является наличие подробного описания к каждому экзамену, включая ссылки на некоторое количество подготовительных материалов и на покупку книг.

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

Как?

Типичной просьбой, который мне задают на всех курсах, которые я веду, является просьба рассказать о том, что такое MCTS, MCPD и иже с ними. Кто-то не знает даже этих аббревиатур, кто-то знает их расшифровку, кто-то даже предварительно представляет, как выглядит интересующий сертификационный трек. Но многие-таки попадают в ловушку, не читая подробно условия получения различных статусов. Давайте кратко рассмотрим их и дадим характеристику каждому из соответствующих экзаменов. Рассматривать будем сертификационный трек Web Developer.
Итак, решено сдавать сертификационный экзамен на веб-разработчика. Открывается страница Microsoft Learning, начинает изучаться соответствующий трек, и тут возникает вопрос – есть два статуса, Microsoft Certified Technical Specialist и Microsoft Certified Professional Developer. И там и там необходимо сдавать экзамены. Так зачем сдавать на MCTS, если можно сразу сдать 70-519 (PRO: Designing and Developing Web Applications Using Microsoft .NET Framework 4) и получить соответствующий статус?
Ошибка кроется в терминах. Сдав экзамен MCPD, вы… сдадите экзамен MCPD. Сдача одного этого экзамена не дает статус Professional Web Developer. Каждый статус уровня Professional состоит из набора экзаменов MCTS + одного экзамена, содержащего вопросы и кейсы непосредственно профессионального уровня. И только после сдачи всех низлежащих MCTS и одного экзамена MCPD кандидат получает статус MCPD. И, вместе с ним, у кандидата появляется пять статусов – по одному на MCTS и MCPD. Никак иначе. Бывают экзамен типа Upgrade, когда можно обновить свой статус до новой версии продукта.

Это необходимо четко понимать.

Различия между экзаменами MCTS и MCPD заключаются в одной большой разнице уровня подготовки кандидата, что отражается на вопросах в тестах. Так, в MCTS проверяются как моменты общего назначения (например, для чего предназначена та или иная функция в Windows Server, или вышеупомянутый вопрос про обрабатывающиеся параллельно запросы), так и вещи, касающиеся знания конкретных реализаций в технологии – например,  определение результата той или иной команды – подобные вопросы часто содержатся как в сертификационных треках для разработчиков, так и треках для ITPro. В экзаменах уровня Professional же фокус вопросов сдвигается в сторону практического опыта разработки либо развертывания (в случае ITPro). Кроме этого, в экзаменах уровня Professional содержатся так называемые тестлеты – отдельные семантические модули, в которых предлагается изучить сценарий и ответить на вопросы конкретно по этому сценарию. Например, “у вас есть распределенная инфраструктура, и несколько филиалов, в которых нужно развернуть N серверов с ролью S” или “вы хотите мигрировать большое корпоративное приложение с ASP.NET Web Forms на ASP.NET MVC”. Сценарии абсолютно выдуманные и упрощенные – в реальных экзаменах сценарии  могут быть гораздо сложнее, и по наитию ответить правильно можно только по случайности. Тестлеты – изюминка экзаменов Professional, и самая сложная их часть, так как именно в ней может содержаться тот сценарий, который ни разу не встречался и не изучался неподготовленному кандидату.

Если кандидат сдает MCPD, это необязательно означает, что он сможет сдать любой MCTS из соответствующего пути на этот MCPD. Это необходимо четко понимать.

 

Проблемы?

 

Следующие проблемы были замечены как у автора статьи, так и у многих людей, с которыми автор контактировал и пытался помочь в сдаче экзаменов.
1) Пост-регистрационная депрессия. Возникает обычно тогда, когда кандидат изначально поставил перед собой причину, по которой он хочет сдать экзамен, которая не соответствует действительно либо является выдуманной. Например, “если я сдам этот экзамен, то обязательно буду принят на высокооплачиваемую работу в X”. Может, это и произойдет. Насколько же знаю я, на высокооплачиваемой работе на интервью проверяют реальные знания даже в случае наличия сертификатов, либо не проверяют знания совсем, основываясь на каких-либо других метриках. Сертификат иметь престижно, но когда удовлетворяется внутренний потребитель за счет знания того, что подтверждается некая установленная планка, поведение кандидата резко меняется. Проблема же заключается в том, что кандидат начинает думать, зачем ему в действительно нужен этот экзамен. Время же, которое тратится на приход к правильной причине, является достаточно бесполезным.
2) Большое количество пробелов в знаниях уже после регистрации на экзамен и, соответственно, “я никогда не сдам этот экзамен”.. Это абсолютно нормальная ситуация, в которой просто необходимо правильно построить путь закрытия этих пробелов. Кроме этого, у Microsoft существует специальная программа Second Shot (Второй Шанс), позволяющая сдать некоторые экзамены второй раз в том случае, если в первый этого сделать не получилось. Подробнее про периодически меняющиеся экзамены можно почитать на самом сайте Microsoft Learning по ссылке
http://www.microsoft.com/learning/ru/ru/2nd-shot.aspx .

3) Моя организация не хочет оплачивать покупку ваучера на экзамен. Если организация не хочет делать этого, то это не причина не сдавать интересующий экзамен. Самообразование – это то, что может и должен делать каждый человек, связанный с IT. Подготовка к одному экзамену предоставляет одно большое преимущество – вы в любом случае узнаете много нового в ее процессе. Что может быть ценнее этого?

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

 

Пример?


Разумеется, без примера было бы можно назвать эту статью слишком философской. Я приведу пример своего плана, подготовленного для сдачи сертификационного экзамена 70-487 Developing Windows Azure and Web Services. Возможно, многого в этом плане не хватает, но отправной точкой к созданию собственного или расширению этого вполне может быть использован. Для собственного удобства я разбил его на определенные темы согласно странице экзамена на сайте Microsoft Learning – http://www.microsoft.com/learning/en/us/exam-70-487.aspx#fbid=KKy0fOW4PS2 .

Accessing Data (24%)

Обзор ADO.NET: ADO.NET Overview

Видео-курс SQL Server Fundamentals: http://pluralsight.com/training/courses/TableOfContents?courseName=sql-server-fundamentals&highlight=dan-sullivan_queryplanmgt*11#queryplanmgt

Обзор Entity Framework: Introducing Entity Framework

Обзор Entity Framework #2: Entity Framework Overview

Видео-курс Entity Framework and Data Models: http://pluralsight.com/training/courses/TableOfContents?courseName=efintro-models&highlight=julie-lerman_efintro-module1#efintro-module1

Обзор WCF Data Services: WCF Data Services 

Обзор WCF Data Services #2: WCF Data Services Overview

LINQ Fundamentals: http://pluralsight.com/training/courses/TableOfContents?courseName=linq-fundamentals&highlight=scott-allen_linq-introduction*14#linq-introduction

LINQ Data Access: http://pluralsight.com/training/courses/TableOfContents?courseName=linq-data-access&highlight=scott-allen_linq-dataservices!scott-allen_linq-entityframework-part2!scott-allen_linq-entityframework-part1*2#linq-dataservices

Entity Framework 4.0 by example: http://pluralsight.com/training/courses/TableOfContents?courseName=ef4-fundamentals&highlight=julie-lerman_ef4-using!julie-lerman_ef4-data-binding*1!julie-lerman_ef4-and-pocos!julie-lerman_ef4-models!julie-lerman_ef4-data-access!julie-lerman_ef4-t4-templates#ef4-using

Windows Azure Caching Service: http://pluralsight.com/training/courses/TableOfContents?courseName=azure-caching&highlight=scott-seely_azure-caching-m1*3,5!scott-seely_azure-caching-m2-dev*0,7,1,2,3,4,5,6!scott-seely_azure-caching-m3-other*0,5,1,3,2,4#azure-caching-m1

Windows Azure: The big picture: http://pluralsight.com/training/courses/TableOfContents?courseName=azure-bigpicture&highlight=david-chappell_azure-bigpicture-m1-survey*7#azure-bigpicture-m1-survey

Windows Server AppFabric Cache: http://pluralsight.com/training/courses/TableOfContents?courseName=appfabriccache&highlight=jon-flanders_appfabriccache-m1-introduction*1#appfabriccache-m1-introduction

Web Performance: http://pluralsight.com/training/courses/TableOfContents?courseName=web-performance&highlight=robert-boedigheimer_miscellaneous-performance*1,2#miscellaneous-performance

API: SqlCacheDependency ClassSqlCacheDependencyAdmin Class, System.Transactions, TransactionScope Class, IsolationLevel Enumeration

Distributed Transactions

Видео-курс Entity Framework and Data Models: http://pluralsight.com/training/courses/TableOfContents?courseName=efintro-models&highlight=julie-lerman_efintro-module1#efintro-module1

Обзор WCF Data Services: WCF Data Services 

Обзор WCF Data Services #2: WCF Data Services Overview

Building an OData Service (Part I)
Consuming OData using .NET
Consuming OData using jQuery

API: XmlNode Class (System.Xml) , XmlDocument Class , XmlWriter Class (System.Xml), XmlReader Class (System.Xml), XmlDocument Class, XmlNode Class (System.Xml), XPathNavigator Class (System.Xml.XPath)

LINQ to XML
Introduction to XML and XSLT in C#.Net – CodeProject

 

 

Implement data storage in Windows Azure

SQL Azure http://pluralsight.com/training/courses/TableOfContents?courseName=azure-sql-course&highlight=

Azure Cloud Services Storage Fundamentals http://pluralsight.com/training/courses/TableOfContents?courseName=azure-cloud-services-storage-fundamentals&highlight=

Windows Azure Building Blocks. Сервис Caching.

Пояснения по нововведениям в Windows Azure: сервисы хранилища. Ч.4

Пояснения по нововведениям в Windows Azure: сервисы хранилища. Ч.3.

Пояснения по нововведениям в Windows Azure: сервисы хранилища. Ч.2.

Пояснения по нововведениям в Windows Azure: сервисы хранилища.

Различия между локальным эмулятором хранилища и сервисами хранилища Windows Azure

Основы хранилища Windows Azure. Партиции.

Основы хранилища Windows Azure. Очереди.

Основы хранилища Windows Azure. Таблицы.

Основы хранилища Windows Azure. Блобы.

Сервисы хранилища Windows Azure. Рассуждения о простом усеченном экспоненциальном алгоритме отката для очередей.

Data Storage Offerings on the Windows Azure Platform

Using Windows Azure CDN – .NET – Develop
Retry Logic for Transient Failures in Windows Azure SQL Database

SQL Azure Retry Logic sample in C# for Visual Studio 2010

 

Querying and Manipulating Data by Using the Entity Framework (20%)

LINQ and Deferred Execution

Lazy Loading,Eager Loading,Explicit Loading in Entity Framework
How to use Transaction in Entity FrameWork?

SaveChanges Method

Обзор Linq To Entities: http://msdn.microsoft.com/ru-ru/library/bb386964(v=vs.90).aspx

Обзор Linq To Entities #2: http://professorweb.ru/my/LINQ/linq_entities/level14/14_3.php

API: System.Data.SqlClient Namespace
Async in Entity Framework 6.0

 

Designing and Implementing WCF Services (19%)

 

Все темы из этой секции обсуждаются в ссылках выше. +

1. Что нового в WCF 4.5? Начнём с конфигурации WCF

2. Что нового в WCF 4.5? Один WSDL-файл.

3. Что нового в WCF 4.5? Подсказки конфигурации и intellisense в файлах конфигурации

4. Что нового в WCF 4.5? Проверки конфигурации

5. Что нового в WCF 4.5? Поддержка множественной аутентификации на одну точку входа в IIS

6. Что нового в WCF 4.5? Точка входа HTTPS для IIS

7. Что нового в WCF 4.5? BasicHttpsBinding

8. Что нового в WCF 4.5? Изменения в режиме совместимости ASP.NET

9. Что нового в WCF 4.5? Улучшенный стриминг в IIS

Creating and Consuming Web API-based services (18%)

Web API и Windows Azure. Часть 1. История, немного про REST, примеры.

Basic Authentication with Asp.Net WebAPI

Implementing [RequireHttps] with ASP.NET Web API

AuthorizeAttribute Class

Coding Horror: Cross-Site Request Forgeries and You

Custom Action Filter in ASP.Net MVC application

 

 

Deploying Web Applications and Services (19%)

Update, Upgrade and VIP-Swap for Windows Azure Service–What are the Differences?

Overview of Updating a Windows Azure Service
IIS for Developers: http://pluralsight.com/training/courses/TableOfContents?courseName=iis-for-developers&highlight=steve-evans_iis-manage*3#iis-manage

http://pluralsight.com/training/Courses/TableOfContents/azure-websites

Web.config transformations: http://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx

Для того, чтобы познакомиться с мнением человека, отвечающего за Microsoft Learning, можно изучить следующие ссылки:

· «Что ждет ИТ-специалистов в облачную эпоху», «Подумайте об актуальности своих знаний», «В ИТ найдется место и молодым, и ветеранам»

· «Начинать надо с актуализации знаний»

· «Инициатива по своему обучению должна идти от сотрудника»

· «Лютц Зиоб: Уровень безработицы для специалистов, которые имеют адекватные знания в сфере ИТ, равен нулю»

Leave a comment