3週間でAzure Developer Associateを獲った話

# Introduction:athletic_shoe:
### プロローグ
クラウド部課長「すーみん、AWS DVA[^1]の勉強してるんだって？」
[^1]: AWS認定 Developer Associateのこと
SES部ワイ「ｱｯﾊｲ」
課長「Azureパートナー取りたいから、AZ-204とってくれんか」
ワイ「いいですけど、いつまでです？」
課長「**3週間（2020年9月25日まで）で**」
ワイ「えぇ……」
課長「んじゃよろしく」
ワイ（クラウド資格だし…期限短すぎやんけ…（滝汗））

### OverView
この記事では、~~クラウドの知識が乏しい私が、~~Microsoftが実施している試験
**[『Developing Solutions for Microsoft Azure（AZ-204）』](https://docs.microsoft.com/ja-jp/learn/certifications/exams/az-204)**
の合格までに私が取り組んだ「合格体験記」を記しています。


# AZ-204とはどんな試験？:baby:
### 概要
IaaSとして提供されるクラウドサービス『Azure』を、開発者が活用することを測る試験です。試験に合格すると、『**Azure Certificate Developer Associate**』を獲得することができます。
Azureのアーキテクチャ部分よりも、APIの活用や、CLIやSDKを用いた実装方法や手順、ストレージ活用やセキュリティなどにずっと重きが置かれた出題となっています。
また、Azureを活用する上で必要となる『C#』を用いた出題もあり、プログラミング経験（ソースを正しく読み解けるか）も必要となります。

### 出題範囲（Azure公開内容より）
* Azure 計算ソリューションの開発 (25-30%)
* Azure ストレージを開発 (10-15%)
* Azure Security の実装 (15-20%)
* Azure ソリューションの監視、トラブルシューティング、最適化 (10-15%)
* Azure サービスとサードパーティサービスの連携と活用 (25-30%)

### 合格ライン
**700 / 1000**（1点刻み）

* 問題は、私が受験した際は48問出題されました。
* 設問によっては、解答箇所が複数あり、各解答箇所で得点が与えられる場合もあります。

# 対策について:u55b6:
### Azureの読み方を知らなかった
AzureではなくAWSなら、『EC2』や『S3』を少しだけ触ったことがある程度でした。
そもそもAzureに関しては、**読み方すら分からない状態**だったこともあり、文字通りゼロからのスタートでした。（**アジュアー**とか読んでいました）
一方、『C#』や『.NET』の基本的なポイントを抑えていた点や『SQL Server』『PostgreSQL』の経験があった他、『応用情報技術者』の知見がある状態だったので、Azureサービスの活用を抑えていけば、可能性は薄くないような気がしていました。

### 対策ソースが少ない！
AZ-204は、前身のAZ-203試験の頃から情報が少ないように感じます。
例えば、問題形式や出題傾向などは、「基本情報技術者試験」などとは違って、実試験を受けなければ得られない情報となっております。
また、日本語によるAZ-204の参考図書は、2020年8月31日時点でわたしが知る限りは存在せず、**Microsoftが出している"正式な過去問"も存在しません**。

### 理解すべきはクラウド開発手法
この試験は、開発者がAzureを活用することを想定した試験です。そのため試験を戦う上で理解しておくべきは、ネットワークインフラなどの部分ではなく、開発に特化した知識や技術面です。
例えば、適切なプロトコルを答えるような問題は出題されませんが、選択肢のソースコードから適切なメソッドを答える問題が出題されます。

# 対策方法:writing_hand:
### Microsoft Learnのラーニングパスを一通り終える
[AZ-204の紹介ページ](https://docs.microsoft.com/ja-jp/learn/certifications/exams/az-204) の『準備する2つの方法』に用意されている『ラーニングパス』を一通り実施しました。
試験にそのまま出題される訳ではないですが、試験問題を正しく読み解くための基礎知識として抑えるべきポイントが多いので、面倒ですが1周だけでもしておく必要性はあると感じました。
また、ラーニングの中にはサンドボックスを使って実際にAzureサービスを触るハンズオンがあります。時間がかかる場合もありますが、1回は触れておくと良いかと思います。
しかし、『機械学習』に関わる点は本試験では一切出題されませんでした。
今後出題されるかは分かりませんが、現時点では流し読みするだけで良いかと思います。

### 模擬問題を入手し、解いてみる
下記のサイトで模擬問題を入手し、ラーニングパスを進めていくのと並行して毎日少しずつ解いていきました。

* JP Exam（有料） https://www.jpexam.com/AZ-204J_exam.html
    * PDF版とソフト版がありますが、両方買うといいと思います
    * 日本語が怪レい点がありますが、問題の質は悪くないと思います
    * 一度購入すると、1年間に渡って問題のアップデート配布を無償で受けることができます
* EXAM TOPICS（無料） https://www.examtopics.com/exams/microsoft/az-204/
    * 英語版のみ
    * 問題数は少ないですが、他の受験生のコメントを読むことができます
    * 1,2ページ進むたびに「Are you a robot？」と~~憎たらしいロボットが~~何度も尋ねてきます。

ラーニングが終わったあとはひたすら問題を解きました。試行回数は多いほうがよく、**選択肢の内容を見たら答えがわかるくらい**解いたほうが良いです。


### 追加ラーニングを実施したり、リファレンスを読んだりする
模擬問題を解いてくと分かってくるのですが、[AZ-204の紹介ページ](https://docs.microsoft.com/ja-jp/learn/certifications/exams/az-204) で紹介されているラーニングは、**試験範囲を網羅していません**。（そういうところだぞMicrosoft）
別途ラーニングを実施したほうが良いと感じたのは、『Docker』『Azure Active Directory』『Azure Key Valut』『Azure API Management』『Azure Application Insights』などでしょうか。
これらの中にはラーニングが存在しないものもありますので、必要に応じてリファレンスを読んで対応する必要があります。

### そのた
勉強方法としては、ラーニングは手で筆記して覚えることを行いました。この時代に筆記は時代遅れかと思われますが、記憶定着方法としては、音読と並ぶれっきとした正攻法です。
また、ラーニングの学習中と並行して模擬問題を解くことで、問題の肌感覚を早めに獲得することができ、効率の良い学習が可能となります。
さらに、初見の単語は逐一調べるようにしてください。単語の意味がわからない状態では、問題を解くどころか解説を理解することもままなりません。


# 結果:snowflake:
**781 / 1000** でした。祝・一発合格！！\:tada:
![InkedIMG_20200925_171107_LI.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/193858/fb6f3eb1-cdfa-8fa9-138e-6415ce320a60.jpeg)


### 勝因
短期間集中で専念したこともあり、定着が早かったことが1つ要因だと考えていますがどうなのでしょう…
ちなみに、今回の対策方法は、高校時代に応用情報技術者を取った経験をそのまま活用しています。当時の、知識が一切なかった頃の知識定着方法が活きているといいなあ…

### さいごに
他のMicrosoft資格がどうかはわかりませんが、Azure Developer Assosiateは、C#の言語知識があれば早期取得も可能であると思います。