高専生が3カ月で応用情報に合格するまで

#はじめに
###合格報告
令和元年10月20日に行われた応用情報技術者試験（AP）に合格しました！

###受験の動機
今回自分が応用情報技術者試験を受けたのは、

- 就職の武器にしたいから
- インターンのネタになるから
- 余裕単位数ブーストしたいから

というとても不純な動機でした。

###自分のステータス

- 某高専情報工学科4年
- 飛行機つくる部活（情報知識は基本使わない）
- クラス内では成績悪いほうの人間
- ITパスポート、基本情報技術者などの資格ナシ（<font color = 'red'>**今回がIPAはじめて**</font>） etc...

###勉強開始時期・勉強時間
2019年8月頭から勉強をはじめました。
日によって30分程度しか勉強しない日もあれば、5-6時間勉強する日、一切勉強しない日もあるというムラありまくりの勉強スケジュールでしたが、合計で120時間程度は勉強したかなと思います。（割と隙間時間を使ったり~~講義中に講義そっちのけで勉強~~していることが多かったので、正確な数値は分かりません）

###諸注意
前述の通り、IPAの試験自体はじめてなので、個人の"超"偏見と自分なりの信憑性のない謎理論が含まれているかと思います。参考程度にご覧ください。
また、なにか間違っている点などがあれば赤子に話しかけるかのような気持ち、口調（文面）で指摘していただけると助かります。
あと初投稿です、見にくかったらごめんなさい~~（何重もの保険）~~

#参考書など
参考書については一冊しか使用していません。


[TAC情報処理講座(2019)『ニュースペックテキスト 応用情報技術者 2020年度』TAC出版](https://www.amazon.co.jp/%E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-%E5%BF%9C%E7%94%A8%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85-2020%E5%B9%B4%E5%BA%A6-TAC%E6%83%85%E5%A0%B1%E5%87%A6%E7%90%86%E8%AC%9B%E5%BA%A7/dp/481328048X/ref=sr_1_2?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&keywords=%E5%BF%9C%E7%94%A8%E6%83%85%E5%A0%B1%E6%8A%80%E8%A1%93%E8%80%85&qid=1576865373&sr=8-2)
↑Amazonに飛びます
![51+aQUUM7pL._SX349_BO1,204,203,200_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293955/0ee4037d-1a2b-de7f-db67-e0f1b4d2b211.jpeg)

他の比較書籍がないため正確なことは言えませんが、色使いもよく視覚的に分かりやすかったです。
内容も午後対策などが充実しており、ほんとに1冊あればいい感じでした。
（色々な参考書を読み比べるのも勉強法としてはアリだと思います）
<br>
---
また、午前問の対策として過去問を解きまくったのですが、
にしむら工房　教育「2020年春版 応用情報技術者試験問題集(無料全問解説付)」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/293955/1779b458-2d1a-b3b5-3c30-9d61799b065c.png)
[Google Play版リンク](https://play.google.com/store/apps/details?id=com.startthailand.ap_lite)

一問一答形式で解説もあるため、効率的に午前対策ができました。
ほかにも午前問を対策してくれるアプリ、サイトは色々あるので調べてみるのもアリ。

#勉強法
##午前対策
とりあえず参考書を読んで知識をある程度つけた後、ひたすら問題を解きました。
定かではありませんが、応用情報の<font color="red">**午前問のうち6割程は過去問から出る**</font>というデータもあります。
[→（参考）「応用情報技術者の合格率　その他統計資料」-応用情報技術者試験ドットコム](https://www.ap-siken.com/aptoukei.html)

実際に今回も解き覚えのある問題がいくつも出てきましたし、やるだけ損はないと思います。というか一番効率的な気がします。~~本質的理解はさておき~~
あと、参考書は流し読み...とまではいきませんが、一言一句覚えるほど熱心に読みこむ必要はないと思います。午後に選択する科目ならさておき、「これはこんな意味だったな～」という感じでやっていけました。
なので基本的には学校などの落ち着ける場所で本を読み、通学中や隙間時間などで問題を解く生活をしていました。

後述する午後で選択する分野については参考書などの内容をしっかり押さえておきましょう。

##午後対策
###午後試験概要
鬼門、午後。
応用情報の試験について知識がある人ならもうお分かりかと思いますが、午後問は選択式です。

 - 情報セキュリティ

を必ず解かなければならず、あとは

 - 経営戦略 / 情報戦略 / 戦略立案・コンサルティング技法
 - プログラミング（アルゴリズム）
 - システムアーキテクチャ
 - ネットワーク
 - データベース
 - 組込みシステム開発
 - 情報システム開発
 - プロジェクトマネジメント
 - サービスマネジメント
 - システム監査

のうち、4つを選択して解きます。
各大問20点で、20×5=100点満点のうち60点以上で合格です。

ですので、基本的には**情報セキュリティの勉強＋5-6分野の勉強**をするのがメジャー（だと思います、楽なので）

###各分野への対策など
※自分があまり触っていない分野もあるので偏見、知識の浅い部分が含まれます
####1.情報セキュリティ
必須の情報セキュリティについては**常識的な問題も多いため、そこまで難易度は高くありません。**割とアドリブでもなんとかなる感じの問題です。つまり、得点稼ぎポイントでもあります！
とりあえずは過去問を解いておけばいいかなーという感じですが、かといって知ってないと解けない問題（特にメールとかの認証関連）もあったりするので、基礎的な知識は頭に入れておくべきだと思います。

####2.経営戦略 / 情報戦略 / 戦略立案・コンサルティング技法
個人的にも評判的にも、ねらい目の分野。
もちろん専門知識は必要になりますし、用語を答える問題も出たりしますが、読解力と思考力、つまり**国語力があればある程度解けてしまうことも少なくありません。**
KPI,KGIをはじめとした用語とその意味や、各種経営分析手法、財務表の見方などに軽く目を通しておくといいかもしれません。

####3.プログラミング（アルゴリズム）
**プログラミングできる人向け。**CにせよJavaにせよ、なにかしらの言語をある程度書けるスキルをもっていることが望ましいです。具体的に言うと、ソートアルゴリズム（選択、挿入、バブル、基数、ヒープ、マージ...）や二分探索木などを理解し、書くことができるくらいかなと思います。
また、自分で目的に合ったアルゴリズムを組み立てられる＝設計の経験があると楽です。あとは問題を理解する力です。~~自分は「ニューラルネットワーク」の文字を見て真顔でそっ閉じしました。~~

####4.システムアーキテクチャ
システム開発（何らかの課題に対し、それを解決するソフト/ハードを開発する）の経験があることが望ましいです。
あと**計算問題があります。**ただでさえ長い問題文や図表、提示条件から使う値を抽出するので、得手不得手が露骨に分かれるかと思います。
問題形式は「システム構築する（した）よ→問題、改善点がある→どうしよう？/どれくらいになる？（計算）」みたいな感じがほとんどです。内容は違えど問題への考え方、取り組み方は通ずるところがあるので、解いてみることをオススメします。

####5.ネットワーク
**専門知識がないと無理**です。OSI参照モデルやサーバ関連の知識などがないとまず解けません。しかしながら**基礎的なネットワーク関連の知識を習得していれば確実な得点源**になるかと思います。
ですので、知識のある人/知識を習得していきたい人は選択することをおすすめしますが、**そこまで知識のない人が「応用情報を取る」という目的のためだけに勉強するなら、他の分野を勉強したほうが良い**かと思います。
いっぽう、ネットワークの勉強をしていれば比例してセキュリティ関連の知識もついてくるので、必須の情報セキュリティが楽になるかと思います。どうするかは人それぞれです。

####6.データベース
ネットワーク同様、データベースに関する知識やSQL文の知識がないとまず解けません。**「主キーって何？」「E-R図の読み方がわからない！」みたいな感じの人は回れ右して別の分野を勉強しましょう。**
いっぽう、SQL文が書けて、何らかのデータベースを用いたシステムの設計経験があればある程度は解けるかと思います。一度過去問を解いてみて、自分の技量と問題の形式を知っておくことが大事です。

####7.組込みシステム開発
システムアーキテクチャと似ていますが、どちらかと言えばハード寄りです。**システムアーキテクチャが「結果」を得るための「手段」を問いかける**のに対し、**組込みシステム開発は「手段」が提示された上で「結果」がどうなるかを求める**問題が多い印象です。
ですので、こちらも計算問題があります。また、結果を求めるうえで論理的思考力が必要となる場合が多いため、プログラミング（アルゴリズム）の知識もあると良いです。
個人的難易度は**システムアーキテクチャ ＜ 組込みシステム開発**です。組込みができればシステムアーキテクチャもできます（暴論）
...専門用語もあるので、午前問程度の難易度の基礎は押さえておきましょう。

####8.情報システム開発
組込みシステムとシステムアーキテクチャを足して2で割った感じです。状態遷移図をはじめとしたシステム構成や動作を示す図の穴埋めが結構出ます。
**問題文や図表を見てシステムの動きをきちんと理解できるかがカギ**となりますので、こちらもシステム開発の経験があるとだいぶ有利かなと思いますが、なくても大丈夫かなと思います。
専門用語もありますが、こちらも基礎的な知識、用語を押さえておけばよっぽど良いかと思います。

####9.プロジェクトマネジメント
割と前提知識が必要です。そこまで難しいことではありませんが、**テクノロジ系とは畑が違うため、プログラミングが得意な人からしたらあまり触らないほうがよい分野**かもしれません。逆に文系やプログラミングに自信がない人はそもそものアプローチ、思考プロセスが違うので勉強してみると良いかと思います。
スケジュール管理などでたまに計算を求められることがあるので、EVM（EV,PV,AC,BAC）の導出法などは押さえておくべきです。**EVMは結構大事です。**
また、この分野を勉強するメリットとして、なんか意識が高くなる感じがします。オススメです。

####10.サービスマネジメント
**前提知識ナシでもある程度解けるシリーズ。**自分もそうでした。なので特別そんな勉強はしていません。当日やってみたら結構いけたので不安な出来だったデータベースと入れ替えて選択に入れました。
対策としては、やはり過去問を解いておくことがベストかと思います。問題、条件は違えど結局**サービスマネジメントはITIL*のレールの上で行うことに変わりはない**ので、解きなれておく＝考え方を理解しておくことが大事です。
[→（参考）「ITILとは – システム管理者なら押さえておきたい、ITIL用語解説」-SmartStage](https://smart-stage.jp/topics/itsm_keyword_relate/p2/)

####11.システム監査
**続・前提知識ナシでもある程度解けるシリーズ。**提示されたシステム構成や運用・管理方法、監査方法を読んで「冷静にこれ問題では...？」という疑念を抱けるかが試される分野。間違い探しをしている感じでとても解いてて楽しいです。（真面目に、ほんとにハマる人はハマる）
専門知識がそこまで必要とされない分、問題点やその理由を指摘する際に**記述を求められることが多い**です。文字数指定があるため、限られた文字数の中で回答するスキルが求められます。要は国語です。誰しもにオススメの分野。こちらも過去問を解いて問題形式を掴みましょう。

#さいごに
今回紹介（？）した勉強法はあくまで自分が実践してきたことであり、人それぞれ向き不向きはあるかと思いますし、この勉強法自体が非効率かもしれません。
ただ少しでも応用情報取得の参考になれば幸いです。

また、応用情報をはじめ、<font color = 'red'>**資格は社会で自分の実力を示す指標として手っ取り早く使える武器になります。**</font>高専４年生になり、就職が迫ってきている今、実際にそれをしみじみと感じています。
基本情報、応用情報、それこそその上のスペシャリストは勉強すれば絶対取れると思うので、ぜひチャレンジしてください。また、そのチャレンジのきっかけがこの記事であれば幸いです。（その際はその旨メッセージなどを頂けるとモチベにつながります、よろしくお願いします。）

<br>
全体的に拙い文章となってしまい申し訳ございません。そのうち気が向いたら推敲します。