応用情報技術者試験は大変難しい試験です。

# <font color="Red">**応用情報技術者試験はとてもとても難しい試験です。**</font>
この記事で私が伝えたいことはこれに尽きます。

# 私の経歴と持っていた知識
- 大学&大学院の専攻は情報系でした
- しかし、 **コンパイラの仕組み**だとか**離散数学**だとか、応用情報には役に立たない事を学んでいました
- Pythonは研究で触っていました
- 入社後も、システム開発的なことはほとんど関わりませんでした
- プログラミングはほぼ毎日しています
- しかし、基本的に**一人で完結する小さなプログラムしか書いたことがありません**
- 試験とは関係なくWEBアプリに興味を持って、ちょっとだけ勉強してました

# 舐めてたら1回落ちました
「応用情報は、ちゃんと朝起きて会場に行けることを証明できるだけの資格だよ」
「情報系出てたら余裕だよ笑」

大学の先輩、会社の先輩、ネットの噂...
2021年の夏、私は<font color="Red">**完全にこの試験を舐めていました**</font>。

基本情報も持っていないのに、いきなり応用情報に申し込みました。
## １回目のチャレンジと、その失敗
私はまず、８月の中旬くらいからこちらの[キタミ式の参考書](https://www.amazon.co.jp/%E3%82%AD%E3%82%BF%E3%83%9F%E5%BC%8F%E3%82%A4%E3%83%A9%E3%82%B9%E3%83%88IT%E5%A1%BE-%E5%BF%9C%E7%94%A8%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%B9%B3%E6%88%9031-01%E5%B9%B4-%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93%E8%80%85%E8%A9%A6%E9%A8%93/dp/4297102129)を読み始めました。
![B07L9QYQ7Z.01._SCLZZZZZZZ_SX500_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/8f794739-0998-b568-042c-a504695fafb9.jpeg)
令和３年秋の受験なのに、TSUTAYAで中古で売ってた古いやつを買いました。
完全に舐めてますね。

しかも、これを読み始めたのは8月末くらいです。
「はいはい知ってますよ～」
という感じで、ベッドに寝っ転がりながら、1か月くらいダラダラと読んでました。

結局、過去問を解き始めたのは試験2週間前になってからでした。

そして試験当日、<font color="Red">**鬼のようなプログラミング問題**</font>（一筆書き）が出てパニックに陥り、撃沈。
それから、私と応用情報技術者試験の因縁が始まったのです。

# 次の春は基本情報を受けました
また応用情報にチャレンジして、何も得られずに終わるのが嫌でしたので、着実に基本情報から受けようと思いました。

応用情報と基本情報は同時に受けられるのですが、二兎追うものはなんとやらという事で、<font color="Red">**基本情報だけに絞りました**</font>。
CBT方式は色々と嬉しい点が多いのですが、直近の過去問が公開されていないのはやや不安でしたね。

本番はややドキドキしましたが、なんとか合格しました。
![画像1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/6fcd43b9-4bc3-c99e-535e-53385c1437ba.png)
![画像2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/6051f1d3-bd97-bafc-98ca-fbe3bebd7c49.png)

それから、応用情報へのリベンジが始まりました。

# 勉強法・諸々の対策

## まずは、過去問道場で午前の過去問を解きましょう
もう散々語りつくされていると思いますが、過去問はめっちゃ大切です。
そもそも、応用情報を受ける人はIT系の知識を少なからず持っているでしょうから、参考書なんて読まずにいきなり過去問を解き始めていいでしょう。

**もちろん、[過去問道場](https://www.ap-siken.com)を利用してください。**
神サイトです。

そして、<font color="Red">**ユーザー登録はめっちゃおすすめです**</font>。
問題を緑、黄色、赤でチェックして、後から復習できるからです。

2022年度秋は、7月の中旬から勉強を始めました。（約80日前から）
平成28年春～令和3年春の計10回分を1周し、次は、チェックしながらまた1周しました。
試験直前の1週間で、チェックしておいた怪しい問題をまとめて解き直しました。

（試験終了直後、サイトの段級位認定は二段でした）

## 午後の対策は選択から
結局私が勉強したのは
- 情報セキュリティ
- プログラミング
- システムアーキテクチャ
- ネットワーク
- 組込みシステム開発
- システム監査

の6分野でした。
本番は、ネットワークを外した5問を解きました。
ネットを見ていても、私と全く同じ選択をした人は少ないのではないでしょうか。

それぞれの選択理由としては

**情報セキュリティ**
必須だから

**プログラミング**
普段からプログラミングしているから。
過去問を何回か解いてみて、行けると判断。

**システムアーキテクチャ**
消去法。覚える知識は少なく、国語力も必要としないから。

**ネットワーク**
セキュリティに絡むから。5分野に絞るのが怖かったから。

**組込みシステム開発**
誰しもが一番簡単と認めるから。

**システム監査**
[こちらの記事を参考にして](https://qiita.com/c60evaporator/items/0bbda34eead71c9e38d9#%E5%95%8F11-%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E7%9B%A3%E6%9F%BB)
追い込まれた理系にはいいらしいから。

です。

そして、本番に解く順番は

セキュリティ → プログラミング → 組込み → 監査 → （シスアキ or ネットワーク）

という戦略にしました。

この順番で解くことにした理由としては、脳死で選択でき、かつ時間もそこまでかからないセキュリティを最初に解き、前半で集中力が残っているうちにプログラミングと組込みに取り組んで時間を稼ぎ、次に計算がいらない監査で頭をリフレッシュし、最後に時間が余っている中で、厄介なシスアキかネットワークに挑むといった戦略でした。

基本的にはシステムアーキテクチャを解きますが、本番難しそうならばネットワークに切り替えるという方針でした。

5chではプログラミングを選ぶのはバカだとか、応用情報はプログラミングを選ばなくてもいいから基本情報より簡単だとか書かれていますが、普段からプログラミングをやっている方は、過去問を解いてみていけそうだと感じたら選択してもいいと思います。

## 午後をどのように勉強したか

午前の過去問を1日1回分解いていき、大体7～8回分解いた後、午後の勉強を開始しました。
午後と午前は並行して勉強していました。

まずは[緑本](https://www.amazon.co.jp/gp/product/4865752218/ref=ppx_yo_dt_b_asin_title_o03_s00?ie=UTF8&psc=1!
)を解き始めました。
![B08NJ15483.01._SCLZZZZZZZ_SX500_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/a203ff1c-d7f7-f074-fa57-9c788f3ebb6a.jpeg)

1回目の受験で2021年度の物を買っていたので、2022年度でもまた使いました。
今から受ける人は最新版を買った方が良いと思います。



まずは上記の選択科目6分野を1周しました。
バランスよく勉強するのではなく、セキュリティを全部解き終わったら次は監査を解き終わす、という風にやっていきました。

ここで、<font color="Red">**毎回30分測って問題を解きました**</font>。
30分測ると分かってきますが、分野によって時間が余ったり足りなかったりすることが分かってきます。
私の場合は、システムアーキテクチャとネットワークに関しては時間が足りず、組込みやアルゴリズムは時間が余ることが分かりました。

その結果、上記の戦略が立てられるようになりました。
応用情報はここら辺の戦略がかなり大切です。

緑本を一周した後は、[こちらの合格教本](https://www.amazon.co.jp/gp/product/429712467X/ref=ppx_yo_dt_b_asin_title_o08_s00?ie=UTF8&psc=1)を用いて知識の吸収も行いました。

![B09NKFH9TY.01._SCLZZZZZZZ_SX500_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/1c229220-6384-6620-d805-6c6cb7a87b7b.jpeg)

全て読んだわけではなく、セキュリティの章とネットワークの章と監査の章だけ読みました。
キタミ式と比較して情報量がかなり多いので必読だと思います。

ネットワークは結局選択しませんでしたが、セキュリティでけっこうネットワークの知識が必要になってくるので、読んでおいた方が良いと思います。

試験まで残り3週間というところで、午後の過去問を本番形式で解き始めました。

具体的には、<font color="Red">**A4の紙に両面印刷して、150分測って過去問を解きました**</font>。
本番の試験と同じ形式にすることは、かなり大切です。

実際解いてみると分かりますが、150分も集中して机に向かい続けるのは苦行です。
応用情報の午後は、<font color="Red">**この辛さに耐えられるメンタルと集中力を手に入れることが何よりも大切です**</font>。
2～3回分解けばメンタルと集中力はかなり鍛えられ、試験問題を見ても物怖じしなくなると思います。

最終的には、午後の過去問は10回分解きました。

当たり前ですが、答え合わせはめちゃくちゃ大切です。
過去問道場には午後の答案の解説もありますので、「なぜ間違えたのか」「どうしてその回答のアイディアが出なかったのか」をしっかりと分析しましょう。


# 午後問題のテクニック（心得）
過去問を解く中で個人的に学んでいったテクニックを書いていきます。

## 全体
**文章の読み方**
緊張していたり集中できていなかったりすると、本文を読んでも空回りしてしまいます。そういう時は、頭の中で文章を読み上げてみると良いです。
ですが基本は、「文章を見る」→ 「頭の中で瞬時にイメージする」という感じで、文章をリズムよく読めることが重要です。これは過去問を何度も解くことで培えます。過去問を解くときは、「自分がテンポよく文章を読めているか？」を意識しながら文章を読むとよいと思います。

**姿勢正しく**
意外と重要です。特に過去問の演習をするときは大切です。しっかりと姿勢を正しくすれば集中力を切らさずに問題に取り組めるようになります。

**記述はより詳細に具体的に**
5W1Hを記述に入れることが大切です。ふわふわと、「〇〇だとよくないから」などという記述ではなく、システムで具体的（物理的）に何が発生するのかを記述しましょう。

**理由は具体的な事象をイメージする**
「～はなぜか？」のような問題に対しては、「それをやったら、具体的にどうなるのか」「それをやらなかったら具体的にどうなるのか」を考えるとよいです。

**設問は最初に読まなくてよい**
まずは本文を読み始めていいと思います。とりあえず読み進めて、「ア」が出てきた辺りでチラッと設問を見る感じでいいと思います。
キリがいいところまで読んで、設問を見て...という感じで私は読み進めました。


## 情報セキュリティ
- 特になし。「全体」のテクニックを心掛けながら臨みましょう。

## プログラミング
- 100％ケアレスミスしてます。絶対見直してください。
- 限界値分析をしましょう。数字が1つ分だけ違うことは普通にあり得ます。
- for文は具体的に何のために回しているのかを考えて、疑似コードに記入しましょう
- 疑似コード外の欄もかなり大切です。添え字が0から始まるのか1から始まるかなど、重要な情報が眠っています。
- 変数や定数の説明は、疑似コードを読んだときに初めて読めば問題ないです。
- 変数には、疑似コードが進んだときに実際に何の値が入っているのかを実際に確認した方がいいです。なんとなくのイメージだけで考えると危険なことがあります。
- 同様に、具体的にソースコードが進んでいったときに具体的に何が発生するのかを一つ一つ確実に追っていくべきです。

## システムアーキテクチャ
- ビットとバイトを間違えないように、絶対に印をつけましょう。
- 数字（〇〇バイトなど）が出てきたら、四角形で印をつけましょう。

## 組込みシステム開発
- ビットとバイトを間違えないように、絶対に印をつけましょう。
- 数字（〇〇バイトなど）が出てきたら、四角形で印をつけましょう。
- 限界値分析をしましょう。数字が1つ分だけ違うことは普通にあり得ます。

## システム監査
- [システム監査基準](https://www.meti.go.jp/policy/netsecurity/downloadfiles/system_kansa_h30.pdf)を読みましょう。
- 文章に書いてある行動を、全部疑いながら読みましょう。
- 怪しい部分、システムの名前、数字（〇〇か月、××バイト）、組織の名前、が出てきたら印をつけましょう。後で問題から証拠を探すときにかなり役立ちます。
- 監査人は、「証拠」を手に入れることが仕事です。「何をチェックするか？」が問われることが良くありますが、基本的には「〇〇書」のように、物理的な文書や証言など、証拠となりうるものが必要です。関係なさそうでも、<font color="Red">**物体**</font>を探しましょう。
- 設問から離れた位置に答えがあることがあります。

# スタバで勉強しましょう
私のお勧めは、チャイティーラテホットのアーモンドミルク変更です。
家で勉強するより幸せな気持ちになれます。


# 試験前日・当日の心得
- 前日は8時間寝ましょう。
- 前日に荷物の準備をしましょう。
- 当日のお昼は食べすぎないようにしましょう。


# 応用情報の結果
何とか合格できました。
![ap.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/451017/a9a8b039-ce8e-c09d-b48d-a332444d3c58.png)
TACを用いた自己採点が77点でしたので9点プラスでした。
プログラミングは満点でした。

組込みがめちゃくちゃ簡単だったことと、システムアーキテクチャに得意なDockerとWebアプリの問題が出たことが勝因だと思います。

最初に応用情報を受けようと思ってから1年半経っていましたので感慨深いです。

# おわりに
最後に繰り返しますが、応用情報技術者試験は難しい試験です。
文系問題の難問はエスパーじゃないと解けないとも言われており、TACやiTECの解答速報と公式の解答が全く違う事もある理不尽な試験です。
合格率を2割程度にするために謎の得点調整を行っているという噂もあります。
（[総務省のこちらの資料](https://www.soumu.go.jp/main_content/000576428.pdf)を見ると、得点調整はされていないようですが。。。）

ですが、あれこれ言ってても仕方ありません。
難しい試験ですが、ちゃんと対策すれば受かる試験でもあると思いますので、めげずに頑張りましょう。