応用情報技術者試験　合格体験記

## まえがき
今年の秋に応用情報技術者試験を受け、先日結果が帰ってきました。無事一発合格でしたので、手短に合格体験記を書こうと思います。

![GfsXfdlbwAEA_VT.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858134/7b4ac321-fc9c-0433-0e8f-e35370061a6a.jpeg)

## 経歴
まずは簡単に自己紹介しておきます。

・大学2年生
・エンジニアとしての労働経験なし(現在は始めています)
・基本情報技術者取得済み(2024年3月)
・AtCoder緑
・Unityを用いたゲーム制作経験あり

主要なものはこれくらいです。プログラミングは大学1年生から始めて、実務経験はありませんでした。
エンジニアとしての基礎知識をつける目的で基本情報技術者試験を過去に受けており、こんな感じの成績でした。

![スクリーンショット 2024-12-31 122613.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858134/92831e63-1bf9-3491-8bf3-74f115c5243a.png)

基本情報は午後のプログラミングが必須なので、人によっては応用情報よりも取得難易度が高いらしいですが、競技プログラミングを通してある程度のアルゴリズム力はついていたので余裕を持って合格することが出来ました。
応用情報の午後試験は選択問題ですが、こちらでもプログラミングを選択しています。ただし、重要な注意事項があるので後で述べます。

## 午前試験
午前試験では四択問題が80問出題され、内訳としてはテクノロジ系が50問、マネジメント系が10問、ストラテジ系が20問出題されます。ここは基本情報技術者試験と同じで、出題内容も少し高度になるだけでかなり似た試験になっています。
テキストは[応用情報技術者 合格教本](https://www.amazon.co.jp/%E4%BB%A4%E5%92%8C07%E5%B9%B4-%E3%80%90%E6%98%A5%E6%9C%9F%E3%80%91%E3%80%90%E7%A7%8B%E6%9C%9F%E3%80%91-%E5%BF%9C%E7%94%A8%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%90%88%E6%A0%BC%E6%95%99%E6%9C%AC-%E3%81%BF%E3%82%84%E5%AD%90/dp/4297146207/ref=asc_df_4297146207?mcid=c0b89298d5933ce699526c8991e771b3&th=1&psc=1&tag=jpgo-22&linkCode=df0&hvadid=707442440790&hvpos=&hvnetw=g&hvrand=17956448607360675129&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9199025&hvtargid=pla-2566287674792&psc=1&gad_source=1)を使用しました。わかりやすくまとまっていて使いやすかったです。
![スクリーンショット 2024-12-31 123625.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858134/9fa98f90-f500-a632-01bd-8ef20a2ca99c.png)

テキストを何周かして、[過去問道場](https://www.ap-siken.com/apkakomon.php)を回して8割あたりに安定させました。ただ、本番はAI関連の用語が多く出題され、未履修だった為全体の得点率は少し下がってしまいました。ただ、午前試験を突破するには6割取れればいいので7,8割安定させちゃって午後試験の対策に移ったほうが良いと思います。

午後試験の対策では、OCSPとかMTTRみたいな略称の単語を多く覚える必要があります。このときに注意してほしいのが、正式名称で覚えるということです。MTTRって何回も唱えて覚えるより、Mean Time To Repairって覚えたほうが平均修理時間って意味も分かるし覚えやすいので絶対お得です。
更に、正式名称を覚えておけばMTTRとMTBFという単語を見たときにどっちが平均修理時間(Mean Time To Repair)でどっちが平均故障間隔(Mean Time Between Failure)だったかとかで迷うこともありません。他の紛らわしい単語も正式名称さえ覚えてれば一発です。
当たり前のことかもしれませんが、午前試験の対策で一番大切だと思っているので強調して述べさせていただきました。
たまにテキストに正式名称が書いてないこともありますが、そういうときは調べて覚えちゃいましょう。

## 午後試験
午後試験は11分野から5分野を選択して解答します。分野は以下のようなものがあります。
また、同時に私が選択した分野も◯印で書いておきます。
| No. | 分野名 | 選択 |
|:-:|:-:|:-:|
|  1 | セキュリティ  | ◯  |
|  2 | 経営戦略  | ◯  |
|  3 | プログラミング  | ◯  |
|  4 | システムアーキテクチャ  |   |
|  5 | ネットワーク  |   |
|  6 | データベース  |   |
|  7 | 組込みシステム開発  | ◯  |
|  8 | 情報システム開発  |   |
|  9 | プロジェクトマネジメント  | ◯  |
|  10 | サービスマネジメント  |   |
|  11 | システム監査  |   |

テキストは[応用情報技術者 午後問題の重点対策](https://www.amazon.co.jp/2024-%E5%BF%9C%E7%94%A8%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-%E5%8D%88%E5%BE%8C%E5%95%8F%E9%A1%8C%E3%81%AE%E9%87%8D%E7%82%B9%E5%AF%BE%E7%AD%96-%E5%B0%8F%E5%8F%A3%E9%81%94%E5%A4%AB%E3%80%81%E3%82%A2%E3%82%A4%E3%83%86%E3%83%83%E3%82%AFIT%E4%BA%BA%E6%9D%90%E6%95%99%E8%82%B2%E7%A0%94%E7%A9%B6%E9%83%A8/dp/4865753168/ref=asc_df_4865753168?mcid=f760df01cb7f35f8863f8ba97deb6f00&th=1&psc=1&tag=jpgo-22&linkCode=df0&hvadid=707442440799&hvpos=&hvnetw=g&hvrand=9482588645496874582&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9199025&hvtargid=pla-2247804180678&psc=1&gad_source=1)を使用しました。

![スクリーンショット 2024-12-31 131857.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3858134/3036a09b-3552-1e5a-a0fa-c83f7cd6ee1e.png)


なお、1番のセキュリティは必須解答なので、残りの10分野から4分野を選択する形になります。ですが、本番ではそれぞれの設問の難易度がどうなるかわからないので6問ほど絞って演習し、本番で解けそうな4問を選択するのがおすすめです。自分は今回選択した分野以外にシステムアーキテクチャの演習もしていました。
私が演習していた設問についてそれぞれ見ていきます。
### セキュリティ
必須解答です。必須なのもあってか大体簡単なことが多いですがたまに難しいかなといった印象です。まあ必須なのでやるしかないです。午前のセキュリティの部分が疎かな人はとりあえずそっちを完璧にすると良いと思います。本番は単語を書かせる1問だけ知識不足でわかりませんでしたがその他は簡単でした。

### 経営戦略
国語の試験です。私は高校生時代国語が大の苦手でしたが、それでも解くことができる程度の国語の試験です。演習を重ねるうちに、答えは全て本文に書いてあって、それを抜き出すだけということが分かってコツをつかめるようになっていきます。先程紹介したテキストの解説でもそれを学ぶことができます。
また、財務指標が色々出てくることがありますが、規則性があるので覚えることは実は少ないです。

### プログラミング
私は競技プログラミングをしているのでプログラミングは絶対に選択しようと思っていました。題材はエラトステネスの篩で、アルゴリズム忖度でした。本番でも全問解けたのですが、恐らく解答の仕方でやらかしました。というのも、情報技術者試験でのプログラミングは疑似言語で、色々解答の仕方について指定があります。特に、割り算は`÷`を使う必要があったり、代入は`←`を使用する必要があったりと、実際に私が使っている言語とは異なる書き方の部分が(当然ではありますが)多かったです。
このような記法ミスで半分くらい落としてしまったと感じているので、マジでここだけは注意してください。

### システムアーキテクチャ
演習では、稼働率・利用率が題材の場合は簡単だったのでそれが出題されれば選択しようと思っていました。
本番では別の題材だったので選択しませんでしたが、対策しておくと良いと思います。

### 組込みシステム開発
プログラミングを実生活と組み合わせたような感じの設問です。たとえばタイマーの設計などです。この設問は簡単なことが多いのですが、本番は少しむずかしかったです。基本的には簡単なことが多いのでおすすめです。

### プロジェクトマネジメント
これも国語の試験です。財務指標みたいなのを覚える必要もありません。極端に難しいことも演習含め無かったと思うので、かなりおすすめの設問です。ただ、演習を重ねて(必要であればテキストと合わせて)、解答の抜き出し方とかには慣れておいたほうが良いと思います。


私が演習していたのはこれくらいです。本番では普段難しめのネットワークやシステム監査が簡単だったり、データベースがかなり難しかったりしたみたいです。不足の事態に備えておくためにも余分に解ける問題を増やしておき、本番で内容や難易度を見極めて回答する設問を選択できると良いと思います。少しでも運要素は排除するべきです。ただ、キャパオーバーになってしまうと本末顛倒なので、そこは自分の時間とかと相談してみてください。

## 試験を通して得たこと
私は応用情報の前に基本情報も取得していました。それは学生のうちにエンジニアとしての基礎知識を身につけておきたいと思ったからです。要件定義、詳細設計、工数など最低限の知識をあらかた抑えられたと思うので、これらの資格を取得してよかったと感じています。ネットワークの仕組みや暗号化の仕組みなど、身の回りの色々な事について詳しく知れるのもとても良かったです。現在私は`Linux`の勉強をしているのですが、ssh接続などについてスムーズに理解することができ、情報技術者試験によって土台の知識を得ることが出来ていたと感じました。他にも色々恩恵があると思うので、是非受けることをおすすめします。