基本情報技術者試験　合格体験記

# はじめに
`基本情報について簡単にまとめると、駆け出しエンジニアにとって登竜門となる資格の一つです。`このたび、こちらの資格に合格した(と思う)ので学習方法や学習手順などを解説していきたいと思います。
  
これから受験しようと思っている方、受験したけど惜しくも不合格となってしまった方への参考になればと思います。
ぜひ最後まで目を通していただければと思います。

ここに自分の結果を乗せておきます。

**・午前試験**
![IMG_0159.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697947/577107b7-9a9e-4d1c-f7ec-52246a45c4e1.png)

**・午後試験**
![IMG_0158.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697947/ffbdb1ef-4faa-3cc9-1549-f051112bcf85.png)

~~点数配分に変更があったとしてもおそらく大丈夫だと思います。~~
**6月27日追記　無事合格いたしました。**

# 目次
| 章| タイトル　　　　　　　　　| 詳細　               　　　　　　 |
|:--|:--|:--|
| 1  | [基本情報をとるメリット](#1基本情報をとるメリット)  |   |
| 2  | [勉強時間](#2勉強時間)  |   |
| 3  | [試験構成](#3試験構成)  |   |
| 4  | [学習戦略](#4学習戦略)  | どの選択問題をとるべきかなど（メイン）  |
| 5  | [私が使った参考書など](#5私が使った参考書など)  |   |
| 6  | [試験当日](#6試験当日)  |   |
| 7  | [最後に](#7最後に)  |   |

# 1.基本情報をとるメリット
個人的な意見を踏まえて記述します。まず第一に国家資格の一つであるので持っていて損はないと思います。

・大学の推薦入試など書類審査で得点を確保できる。（工業高校生などに限る）
・資格手当などがもらえる可能性がある。
・転職の役に立つ場合がある。
・IT知識の基礎が固まる。

などです。とにかく取っておいて損はないと思います。

# 2.勉強時間
ここは短めにします。

知識ゼロから合格を目指すのであれば多く見積もって半年がよいと思います。
具体的に**150~200**時間あれば行けると思います。
ただ、受験者本人の要領によっては多少前後するかもしれません。**あくまで参考程度にしてくれればと思います。**

以前受けたことがある、IT経験者の方であれば**50~60**時間で行けるかなと思います。
プログラミングの経験が充実してればかなり有利です。

ちなみに私が基本情報を合格するまでに受けた回数は3回です。合格するのにかかった時間は130時間といったところです。
1,2回目はPBT方式でした。

# 3.試験構成

(1)午前試験は**80問**で構成され、**48**問以上正解で合格です。 
(2)午後試験は必答問題、選択問題を回答して100点中60点以上取れば合格です。

**(1),(2)を両方とも満たして合格です。**

**・午前分野**
| 分野 | 大分類 |
|:--|:--|
| **テクノロジ系**  | ・基礎理論 <br> ・コンピュータシステム <br> ・技術要素 <br> ・開発技術 | 
| **マネジメント系** | ・プロジェクトマネジメント <br> ・サービスマネジメント  |
| **ストラテジ系** | ・システム戦略 <br> ・経営戦略 <br> ・企業と法務 |

午前試験は主に3つの分野（テクノロジ、マネジメント、ストラテジ）で構成されます。
テクノロジ**50問**、マネジメント**10問**、ストラテジ**20問**が出題されます。（数問程度誤差はある）

・午前試験はすべて四択で、配点は1問**1.25**点です。
・テクノロジはIT技術だけを問われるだけでなく、数学知識をよく出題されます。（確率、統計、極限など）
・マネジメントは個人的に難しく、数も少ないので最悪対策しなくてもいいです。
**・これが重要なのですが、午前試験は過去問から40問程度出される傾向があります。**

**・午後分野**
| 問 | 分野 | 備考 |
|:--|:--| :-- |
| 問1  | <font color="Red"> 情報セキュリティ </font> | 必答
| 問2~4  | ・ソフトウェアまたはハードウェア <br> ・データベース <br> ・ネットワーク <br> ・ソフトウェア設計 | ※問2~5のうち2問回答
| 問5  | ・プロジェクトマネジメント <br>・サービスマネジメント <br> ・システム戦略 <br>・経営戦略 <br>・企業と法務|上に同じ
| 問6  | <font color="Red">アルゴリズムとデータ構造</font>|　必答
| 問7~問11  | <font color="Red">・C　<br> ・Java <br> ・python <br> ・アセンブラ（ASCLLⅡ) <br> ・表計算ソフト　</font> |どれか一つ回答

おそらく受験者の多くが悲鳴をあげるであろう午後試験です。
初めて受ける方向けに説明すると、

**問1：情報セキュリティ（必答)**
**問2~5：選択問題（7分野から4問出題、2問選択)**
**問6：データ構造/アルゴリズム（必答）**
**問7~11：選択問題（5分野から1問解答)**

**赤で色を付けている内容は合格に直結する内容です。**

上に示したように、かなり多くの知識が必要となります。
ただ、すべてを完璧にしなくても合格はできるのでどうすればよいかは後程説明します。

# 4.学習戦略

ここから合格するためにどのような手順で勉強すればよいかを書いていきます。

# 午前試験

先ほども述べたように、午前試験は80問中40問ほどが過去問から出題されます。
つまり、過去問をひたすら解いていくことが一番効率がよいです。

2つほどやり方があります。

**・参考書を一通り読み込む→ある程度知識をinputする→過去問を解いていく。**
**・最初からいきなり過去問をやる。**

要するに過去問への着手の速さの違いですが、前者は初めて受ける人、後者は経験者の方が実践するとよいと思います。

↓例題です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697947/b44fc387-f7c0-6324-aa2d-14f4c4c24e1c.png)

<br>
午前試験の勉強をするうえで心がけておいてほしいのは、<font color="Red">セキュリティ</font>分野をよく理解しておくことです。<br>
これは午後試験で確実に問われる内容だからです。

# 午後試験

・午後試験はすべての問題を解く必要はなく、出題された問題の中で自分が得意なものを選んで解くことができます。

ただ気を付けてほしいのは、運が悪いと自分が**得意な問題が出題されない**可能性があることです。
試験構成の表を見てほしいのですが、問2~4は4つの分野から3問、問5は5分野から1問しか本番出題されません。

そのため、問5の対策はせずに問2~4の対策をしておけばよいと思います。
4分野のうち3分野を解けるようにしておけば、確実に2問は対策した分野を解くことができます。

特にお勧めしたい分野は**データベース**です。
理由としては全体的に必要知識が少なく、ほかの分野よりも得点を取りやすいからです。（私は出ませんでしたが）
あと経験ですが、文章が短い傾向があります。

**・ここで午後試験を突破するために重要なことを言います。**

<font color="Red">午後試験の各分野における問題の答えは問題文に隠されていることがよくあります。</font>
つまり、文章読解能力が問われるということとなります。（私はここに気づかず苦労しました。）
問題がさっぱりわからないときは意外とこのパターンが多いです。

ここで午後分野の配点をのせます。
| 問 | 分野 | 備考 |点数 
|:--|:--| :-- | :-- |
| 問1  | <font color="Red"> 情報セキュリティ </font> | 必答 | 20点 
| 問2~4  | ・ソフトウェアまたはハードウェア <br> ・データベース <br> ・ネットワーク <br> ・ソフトウェア設計 | ※問2~5のうち2問回答 | 各15点
| 問5  | ・プロジェクトマネジメント <br>・サービスマネジメント <br> ・システム戦略 <br>・経営戦略 <br>・企業と法務|上に同じ|各15点
| 問6  | <font color="Red">アルゴリズムとデータ構造</font>|　必答|25点
| 問7~問11  | <font color="Red">・C　<br> ・Java <br> ・python <br> ・アセンブラ（ASCLLⅡ) <br> ・表計算ソフト　</font> |どれか一つ回答 | 各25点

点数欄を見ると赤文字の分野の配点が高いと思います。
そうです、基本情報の午後がきつい理由はプログラミング分野で全体の半分を占めているからです。

完結に意識することをいかにまとめます。
**・情報セキュリティは満点を取る。**
**・アルゴリズムとデータ構造、ソフトウェア開発（問7~11)で両方とも60%以上取る**
**・アルゴリズムとデータ構造、ソフトウェア開発を解く時間をどちらも45分とること。**

以上を意識すれば、合格点に達する確率がかなり上がると思います。

未経験の方からすれば
**・C**
**・Java**
**・python**
**・アセンブラ（ASCLLⅡ)**
**・表計算ソフト**

からどれを選べばよいかわからないと思います。
この中にかつて勉強したことのあるプログラミング言語があればそれを選べばよいと思います。
ただ、そうでない人は無難に表計算ソフトを選べばよいと思います。（Excelみたいなものです。)

私が実際に対策した分野は

**・ハードウェア、ソフトウェア**
**・データベース**
**・ソフトウェア設計**
**・C**

となります。

**午前試験、午後試験ともに過去問の演習を十分にしておくことをお勧めします。
目安としては両方とも、直近5年分(10回)程解いておくとよいです。
多ければ多いことに越したことはないです。**

# 5.私が使った参考書など
使用した参考書などを書いていきます。（リンクも載せておきます。）

[①イメージ＆クレバー方式でよくわかる 栢木先生の基本情報技術者教室](https://www.amazon.co.jp/dp/B09M8CWK1Y/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
[②基本情報技術者　午後試験対策書](https://www.amazon.co.jp/dp/B09J8W3S6N/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)

午前と午後で1冊ずつそろえた感じです。
あれ、過去問題集ないの？と感じる方がいるかもしれません。
実は過去問に関してはIPAが公開しています。（令和元年秋期試験まで）

こちらのサイトです。
[過去問道場](https://www.fe-siken.com/fekakomon.php)
使い方を簡単に説明します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697947/c749501f-35aa-0eb5-0276-dfff6b00644f.png)

・出題形式などを選択し出題開始ボタンを押せば、問題を解くことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2697947/4da38dd0-d96d-2970-2f49-e367590d0eee.png)

・模擬試験形式で出題→平成21年以降から作成→選択しをランダムに並べ替えるを選択して解くのをお勧めします。

書店などで参考書に目を通し、自分に合ったものを購入してもらえればと思います。

# 6.試験当日

持ち物は本人確認書類と予約確認書です。それ以外は試験に必要ないですし、持ち込みはできません。

試験日までに必ず「[試験当日の流れ](http://pf.prometric-jp.com/testlist/fe/exam_procedure.html)」を確認しておいてください。
あと、午前試験と午後試験はそれぞれ別日に受験することをお勧めします。

気になる試験結果についてですが、受験後数分以内に登録メール宛てにレポート結果が送信されます。
表示された点数が採点結果となります。
もしかしたら点数が前後するかもしれませんが、確定だと思います。
60点ちょうどだと怖いですね。

# 7.最後に

**試験合格に一番大事なことは継続力です。** 毎日問題に触れることで合格への道筋が見えてくると思います。（私はそうでした。）

できるだけ楽して合格しようと思う人がいると思いますが、その考えは捨てたほうがいいです。
中途半端な結果に終わると思うので。

あとは周りの情報に左右されずに自分のペースで勉強をしてください。勉強あんまりしなくても余裕で合格できたとつぶやく人がいますが絶対に勉強しているはずです。

仮に落ちてしまったとしても少なからず問題との相性はあるので気を落とさないようにしましょう。（あきらめないことが大事）

本記事は以上となります。

ご覧いただきありがとうございました。

# 参考文献
[基本情報技術者試験ドットコム](https://www.fe-siken.com/fekakomon.php)