資格試験の勉強方法、教えます ― 「MCPC IoTシステム技術検定 中級」を爆速で攻略する(?)

## はじめに

こんにちは! 資格バウンティハンターのやぼ(@Yaboxi_)です。
今週本当は別記事を上げる予定だったのですが、よくよくカレンダーをみたら土曜日に「試験」という身に覚えのない謎の予定が登録されていたので、これはヤベえぞと急遽トライした超効率重視の資格勉強法を紹介していきます。

受験したのは**「MCPC IoTシステム技術検定 中級」**という資格試験です。
ベースとなる考え方は他の資格試験にも応用が効くものなので、会社で資格を取らなきゃいけない！とか、資格はサクッと取っちゃいたい！！という方にオススメです。

あ、これで落ちてたらゲラゲラ笑ってください。

## 「MCPC IoTシステム技術検定」って?

公式サイト: http://www.mcpc-jp.org/iotkentei/kentei_msg/index.html

*「IoTシステム構築・活用に関する知識を中心に、その習熟度を検定することで、IoTシステム構築に関係する技術者の対応力向上」*を目的に開催されている資格のようです。
業務で組み込み系システムに携わっている方はもちろん、「いろんなデバイスからデータを取得してごにょごにょしよう」というサービスに興味がある方にもオススメかと思います。

…とかなんとか言ってますが、資格バウンティハンター的には社内制度で合格時にもらえるお金しか見ていませんでした。かたじけない！

## 試験情報

私が受けたのは以下の回になります。
> IoTシステム技術 中級検定
> 実施日	第7回 2019年12月7日（土）
> 実施時間	9:50～11:20 (試験時間90分)
> 試験問題	マークシート80問

合格基準は公開されていませんが、仮に正解率70%とすると80問中56問正解で合格です。
つまり24問は捨てられるので、**当然のようにヤマを張っていきます。**

なんだか卑しいようですが、「兵は詭道なり」とは孫子の弁、これは立派な戦略です。
*まず戦略を立て、どうしても勉強しないといけないところのみ学び、資格取得に不要なことは一切しない―*
それが基本コンセプトになります。

幸い、その攻略書たる公式テキストは既に入手していました。
それでは、次章から具体的にどこにヤマを張るかを検討していきましょう。

## 試験対策
### 01.配点比率とテキストの厚みから重要テーマを拾う
また孫子曰く、「彼を知り己を知れば百戦して殆うからず」。
というわけで、まずは今回の敵たる試験の出題傾向の分析から始めます。

この試験では公式サイトにて出題比率が開示されています。このデータを用いていきましょう。
(簡単化のため足して100%になるように適当に調整しました。)
http://www.mcpc-jp.org/iotkentei/kentei_msg/index.html

| No. | テーマ                        | 出題比率 | 調整後比率 |
|-----|------------------------      |---------|--------|
| 1.  | IoTシステム構成と構築技術        | 5%~15%  | 10%  |
| 2.  | センサ/アクチュエータ技術と通信方式 | 30%~35% | 30%  |
| 3.  | IoTデータ活用技術              | 25%~30% | 30%  |
| 4.  | IoT情報セキュリティ対策技術       | 20%~25% | 20%  |
| 5.  | IoTシステムのプロトタイピング技術   | 5%~15%  | 10%  |

一方、公式テキスト「IOT技術テキスト 第2版」の章立てとそれぞれのページ数は以下のとおりです。

| 章番号 | 章                          | ページ数 |
|-------|-----------------------------|------|
| 1.    | IoT概論                     | 12P  |
| 2.    | IoTシステムのコンピューティング技術       | 33P  |
| 3.    | IoTデータ活用技術               | 59P  |
| 4.    | IoT通信技術                  | 64P  |
| 5.    | IoTデバイス                     | 47P  |
| 6.    | IoTシステムのプロトタイピング開発        | 48P  |
| 7.    | IoT情報セキュリティ               | 30P  |
| 8.    | IoTシステムに関する保守・運用上の注意点 | 12P  |

出題テーマとテキストの章立てを対応づけたのが以下のテーブルになります。
さて、ここでどのテーマが重要かを考えると、「出題比率は高く、ページ数は少ない方」を先に勉強していくとお得な気がします。
つまり「出題比率に正比例して、ページ数に反比例する」式があれば、お得度を一律に比較できそうです。

ここでは、出題比率をページ数で割ったものに100を掛けたものを"優先ポイント"と定義し、この値が高いものを優先で勉強します。
（定数100は単にポイントが小数だとなんとなく気持ち悪いので掛けただけです）
```優先ポイント := 100*出題比率 / ページ数```

| 出題テーマ                             | 出題比率 | テキスト章                                                        | ページ数     | 優先ポイント |
|----------------------------------------|----------|-------------------------------------------------------------------|--------------|--------------|
| 1. IoTシステム構成と構築技術           | 10%      | 1. IoT概論+2. IoTシステムのコンピューティング技術                 | 12+33 =  45P | 22.2         |
| 2.センサ/アクチュエータ技術と通信方式 | 30%      | 4. IoT通信技術+ 5. IoTデバイス                                    | 64+47 = 111P  | 27.0         |
| 3. IoTデータ活用技術                   | 30%      | 3. IoTデータ活用技術                                              |          59P | 50.8         |
| 4. IoT情報セキュリティ対策技術         | 20%      | 7. IoT情報セキュリティ+8. IoTシステムに関する保守・運用上の注意点 | 30+12 =  42P | 47.6         |
| 5. IoTシステムのプロトタイピング技術   | 10%      | 6. IoTシステムのプロトタイピング開発                              |          48P | 20.8         |

### 02. 優先ポイントと勉強順の制約から、各章の勉強順を割り出す

こうして優先ポイントが割り出せたわけですが、ここで勉強順の制約を考慮しないといけません。
各章の内容はそれぞれに連関しているので、順序を間違えると理解に無駄に時間を食います。
たとえば、「詳細を概論より先に読む」ことは殆どの場合しないでしょう。
このような際に「順序に制約がかかっている」とここでは表現します。

勉強順の制約を考慮するということは、各内容の前後関係と独立性を見るということです。
これを本試験の各出題テーマで検討すると以下のことがわかります。

* "1. IoTシステム構成と構築技術" は概論部を含むため一番先
* "3. IoTデータ活用技術" は内容的に独立している
* "4. IoT情報セキュリティ対策技術" も内容的に独立している
* "5. IoTシステムのプロトタイピング技術" は "2.センサ/アクチュエータ技術と通信方式" より後

ということで、これを組み合わせて、かつ優先ポイント順に並べていくと、勉強順は以下のとおりになります。

| テーマ                            | 章                     |
|--------------------------------|------------------------|
| 1.IoTシステム構成と構築技術             | 1. IoT概論             |
|        |      2. IoTシステムのコンピューティング技術                  |
| 3.IoTデータ活用技術                  | 3. IoTデータ活用技術       |
| 4.IoT情報セキュリティ対策技術            | 7. IoT情報セキュリティ       |
|  |     8. IoTシステムに関する保守・運用上の注意点                   |
| 2.センサ/アクチュエータ技術と通信方式         | 4. IoT通信技術          |
|               |  5. IoTデバイス                             |
| 5.IoTシステムのプロトタイピング技術           | 6. IoTシステムのプロトタイピング開発 |

### 03. 勉強時間の割当

さて、あとは優先ポイントの割合を見ながら適当に勉強時間を割り当てていきます。
今回勉強に割けそうなのは大体10時間。
ここまでの文章を書くのに2時間も使ってしまったので(はしゃぎすぎた)、これを"準備・検討"として割り当てています。
大抵は30分くらいあれば勉強順の目星はつけられるかと思います。

|勉強順| 勉強すること                           | 時間     |
|------|----------------------------------------|----------|
|1     | 準備・検討                             | 2h       |
|2     | 1. IoTシステム構成と構築技術           | 1h30m    |
|3     | 3. IoTデータ活用技術                   | 2h30m    | 
|4     | 4. IoT情報セキュリティ対策技術         | 2h       | 
|5     | 2.センサ/アクチュエータ技術と通信方式  | 1h       |
|6     | 5. IoTシステムのプロトタイピング技術   | 1h       | 

ところで、他の資格試験では「過去問を解く」というタスクを"準備・検討"の次に入れる必要があることを忘れずに。
資格勉強の鉄則は「分析→過去問→間違えたところ、わからないところとその周辺知識を埋める」です。
今回は過去問が提供されていないのでテキストベースの勉強のみの正攻法でやっていますが、
過去問がある場合はとにかく過去問を解きまくることが最速攻略への近道です。
**「過去問で出題されない内容=優先度が低い内容」**です。
過去問を解くうちに勝手に優先順位付けが終わっているし、合格に必要な知識も染み込んでいる、というわけです。

### 04.やっと勉強をはじめる

ここまでやって、やっと勉強に取り掛かります。ここからはもう愚直にやるしかないですね。
勉強のやり方は人それぞれ合ったものがあるかと思いますが、一例として私がよくやるオリジナル勉強法をご紹介します。

>1. 【初日のみ】テキスト全体をスーパーざっと見する(章立てくらいしか見ない粒度の位置関係の把握)
2. その日勉強する範囲をざっと見する(節の中で図があるとか、なにかが太字になっているとかいう粒度の位置関係の把握)
3. 真面目に読む(ちゃんと文を読む)
4. 自分が初めて出会った情報や重要っぽい情報(図とか太字とか)を、メモにスーパー雑に手書きで書き出す(このメモは基本的に見返さない)
5. その日の勉強が終わったら、2.の粒度間で今日勉強した範囲をざっと見して、メモに何を書いたか**思い出す**
6. 【最終日のみ】今までメモに何を書いたかを**思い出し**ながら、2.の粒度間でテキスト全体をざっと見する

私は資格勉強では基本的に整理されたノートは取らずに、代わりに即捨てるようなメモを取って、
あとでその内容を反復して**思い出す**ことで記憶に定着させる、というやり方を取っています。
ノートはキレイに書かないと…！みたいな強迫観念に襲われる方には結構オススメです。

### 05. 勉強が終わったら - 前日・当日の準備

こうして前日までに計画された時間の勉強が終わったら、試験の日時と場所、当日必要なものをチェックして、ふかふかのお布団で寝ます。

あとは当日起床チャレンジに成功したらもはや合格です。おめでとうございます。
勝者の気持ちで会場に向かい、マークシートに名前を書き、分かるところは塗りつぶし、分からないところは神に祈りを捧げ、マークシートを全部塗り終わったらこれで貴方も立派なシャーマンです。
試験終了後は美味しいものを食べるなり、神への祈祷を続けるなりして自分なりの開放感を満喫してください。

## 受験体験記
### シラバスのここがおもしろい！
個人的に面白かったのは「7. IoT情報セキュリティ」と「5. IoTデバイス」。
自分は特に7章はソフトウェアQA的視点から読んでみるとかなり面白かったです。

**情報セキュリティの要件**
「情報セキュリティの3大要件は機密性(Confidentiality)、完全性(Integrity)、可用性(Availavility)」[ISO/IEC 27000]という話があり、これISO25010のシステム/ソフトウェア品質特性に含まれとるやんけ！とか一人で盛り上がってました。
さらに"この機密性、完全性、可用性にはサービスによってPriorityがあります"という指摘が面白く、
品質特性の話をする際には網羅性ばかりを見ていてPriorityはあまり深く考えたことがなかった身からすると、
設計視点だと確かにPriorityいるよな〜〜〜と勝手に唸ってました。

**セキュリティ・バイ・デザイン**
システムの設計段階からセキュリティを作り込もうぜ、という考え方なんですが、
これはソフトウェアテスト界隈ではテスト7原則「早期テストで時間とコストを節約」と似ていて[JSTQB]、
更にはソフトウェア品質界隈の新製品開発重点主義における「品質は設計と工程でつくりこむ」[SQuBOK]に通じる話。
先述の"品質 ∋ セキュリティ"という視点に立てばそれも当然で、
は〜〜〜何事も繋がってんな〜〜〜と勝手に唸ってました。

### 受験当日
想像の3倍くらい受験者がいました。マイナー資格かと見くびっていた…。

内容について言えることは、とにかく次にご紹介するブログのトピックを一度見ておいてください。
ちょっと勉強したプラスアルファでこの記事の確認をしておけば多分合格ラインに乗るかと。
[難なく MCPC IoTシステム技術検定試験(中級) に合格したい|IoT memo](http://cutnpaste.hatenablog.com/entry/2017/12/03/193809)

マークシート4択問題しかなく、時間はほぼほぼ余りますのでご安心を。
ただ途中退室は不可です。私は朝起きた時点で合格だったので余った時間は週末の競馬のこと考えてました。

## さいごに

この記事ではMCPC IoTシステム技術検定 中級を題材に、私が普段どういうふうに資格試験の勉強をしているかをご紹介しました。

資格は資格にすぎません。しかし、本当に良い資格のテキストは、業務をしていると何度となく見返したくなるもの。
それなら資格は取るだけサクッと取ってしまって、必要だと思ったら深く読み込んでいけばいい、そんなスタンスもアリなんじゃないかな、ということで長々と攻略法を綴りました。
参考になればうれしいです。最後までお付き合いいただきありがとうございました。


(これで試験に落ちるのがオチ)