himanago

Azure・C#などのMS系技術やLINE関連技術など、好きな技術について書くブログ

MCP試験(70-483:C#によるプログラミング)を受けてきました

はじめに

先月末、Microsoftの認定資格であるMCPの、「C#によるプログラミング(70-483)」を受けてきました。 今回は受けるにあたっての準備と実際の試験についてなどを書き残しておこうと思います。

動機

この試験をなぜ受けたか、というと理由は3つです。

1. スキルの証明

かれこれ7年半くらい前から業務でも頻繁に使っているC#について、スキルを持っているということを対外的に証明したかったというのがひとつ。

同じく継続的に使っているJavaについてもOracleの認定資格をとったりしているので、C#でもそれをやっておきたいと思ったため、時間があれば前から受けたいと思ってました。

2. 講師登壇の説得力

上記と少しかぶるのですが、今年度会社でC#関連の講座を担当するので、講師として説得力をもてるようにしたかったことです。
講師プロフィールに関連資格が書いてあると、とりあえず「この人ちゃんと知ってるのかな」って思いますよね。
もちろん、資格だけあればいいかというとそういうわけでないのはもちろんですが。

3. de:code MCP割引

これがいちばん大きかったです。 f:id:himanago:20170521210618p:plainde:code 2017 リーフレットより)

de:codeのMCP割引は税抜\56,000で、早期割引(税抜\68,000)よりも安いんです。
なので、まずはこのタイミングで試験を受けてしまって、だめだったら早期割引の値段で申し込むことにしました。
早期割引が4/28までだったので、駆け込みで4/24に受けました。

試験の概要

試験で出題されるC#のバージョンは、試験の概要に「Visual Studio 2012」と記載されているので、C# 5.0」となります。
async/awaitあたりまでが試験範囲に含まれることになります。

準備

この試験には日本語の対策書籍(MCP教科書 Windows 10(試験番号:70-697)などのいわゆる赤本)がないので、英語の書籍ですが、Exam Refというものを使いました。
MCP対策書籍としては定番もののようです。

https://www.amazon.co.jp/dp/0735676828/www.amazon.co.jp

すべてを読み込むことはできませんでしたが、練習問題が各パートごとに数問載っているので、どんな問題が出るのか知る上で重宝しました。

章立ては試験に沿っていて、

  • Manage Program Flow(プログラムフローの管理)
  • Create and Use Types(型の作成と使用)
  • Debug Applications and Implement Security(アプリケーションのデバッグとセキュリティの実装)
  • Implement Data Access(データ アクセスの実装)

と、試験範囲と同じ構成になっています(全384ページ)。
全部をじっくり読み込むのは相当骨が折れそうですし、ある程度C#経験があれば文法的な部分はおおよそ問題ないので、ほとんどは流し読みで、気になったところはじっくり読む、という使い方をしました。

個人的には、セキュリティの実装あたりは普段そこまで意識していなかったところなので、ちゃんと勉強する必要があるなと思いました。

しかし結局、4月は業務が忙しく、ろくに対策をする時間もとれず、「もう落ちてもいいや!」と当たって砕けろな覚悟で申し込みました。
すべてはde:codeのため。受験を先延ばしにして万が一そこで落ちて早期割引でも申し込めなかったり、さらにはチケット完売なんてなったりしてしまったら目も当てられませんから。

試験当日

夕方18:30からの予約だったので定時ダッシュして秋葉原の試験センターへ。

ひととおり手続きを終え、予約時間になったらPCの前へ。
案内には試験時間が150分と書いてあったのに実際には120分だったり、試験開始前に、「試験はどうでしたか?」的なアンケート答えさせられたりと、若干混乱させられましたが、試験が始まりました。

形式はほとんどが多肢選択式。
プログラムの虫食い部分に当てはまるコードや、正しい実行結果を選択します。

なかには、複数の選択肢から複数の虫食い部分にドラッグ&ドロップして解答するものも。
この形式でswitchのcase, default, breakの穴埋めが出たときは「ばかにしてるのか!」とも思いましたが、LINQのクエリ形式やasync/awaitまわりのキーワードを埋める問題も出たので、そこは楽しく解いていくことができました。

案の定、対策の不十分だった「アプリケーションのデバッグとセキュリティの実装」まわりの問題には苦戦しました。

またなかには、翻訳が微妙な問題(ひとつだけ「あれ?」と思ったものがあった)や、解答の選択肢のソースコードから単語間のスペースが消えて詰まってしまっているものなどがありました。

こういうときは、試験問題の表示を英語に切り替えることをおすすめします(試験問題の機能でできる)。
英語に切り替えると、ソースコードの空白がちゃんと表示され、読みやすくなりました。

また、自分の知識と照らし合わせて問題と選択肢が「何か変だな」と思ったら、英語の方を読んでみると、誤訳とまではいかなくても、ニュアンスの微妙な違いから英語のほうが本来の意味を理解できることがあります(そんなに英語が得意でなくても)。

こういう対応ができたのも、Exam Refを見ておいたことで英語の問題文への抵抗感がそこまでなくなっていたからかな、と思います。

結果

そんなこんなで試験を終え、結果は無事合格でした。合格点は700点とのことだったので、7割合格でしょうか。
点数はぎりぎりで、やはりというか、「アプリケーションのデバッグとセキュリティの実装」のところがやたら低かったです。
そこ以外でなんとか点数をとれていたのと、(全部でなくとも)Exam Refを見ておいたことが今回の勝因かと思います。

まとめ

Exam Refの確認はしておいたほうがいいなと思いました。
試験本番で英語に切り替えることも戦略として一つの手なので、その対策の意味でも必須だと感じました。

とはいえ、基本的なことがしっかりわかっているかが結果に大きく関わってくるので、やはり普段からの経験がものをいうのは事実でしょう。
実際、今回は試験対策が功を奏したというよりは地力で踏みとどまった感じですし。

このあとの認定パスとしては70-357:Developing Mobile Appsを受けてMCSA: Universal Windows Platformを目指すか、
70-486:Developing ASP.NET MVC Web Applicationsを受けてMCSA: Web Applicationsを目指すかの2択になりそうです。
UWPもASP.NETもきちんと勉強したいなと思っていた技術なので、どちらに挑戦しようかまだ悩み中です。今年度中には、ぜひ挑戦したいと思います。

そして明後日からはついにde:code 2017!
前夜祭のDay0と今回初となる「Hack Days」のDay3,4も含めて5日連続参加します。最新テクノロジに触れられる貴重な機会、楽しんできたいと思います。

以上です。