基本情報技術者試験(FE)に合格(見込み)した話

# はじめに
先日受験した令和３年度上期の基本情報技術者試験（FE）におそらく合格したので、学習内容や使った教材についてざっくりと紹介していきたいと思います。
なお、前回開催の令和２年度は午前**８２**点、午後**５９**点というなんとも悔しい結果に終わっています。

# 試験学習前の知識

HTML・CSS・PHPを少し触った程度。その他出題分野の知識は無く、ゼロからのスタートとなりました。

# 使った教材
##午前用

キタミ式イラストIT塾 基本情報技術者 令和03年
https://www.amazon.co.jp/dp/B08PPJPZ4V/ref=cm_sw_em_r_mt_dp_6TEY40AKS311HFJ4SD27
　
##午後用

情報処理教科書 出るとこだけ！基本情報技術者［午後］第2版
https://www.amazon.co.jp/dp/B07YZ71QY8/ref=cm_sw_em_r_mt_dp_EKP1QTRYF9R58WDR6RCB
　
徹底攻略 基本情報技術者の午後対策 Python編 徹底攻略シリーズ
 https://www.amazon.co.jp/dp/B08573FYNY/ref=cm_sw_em_r_mt_dp_2MMPPGFDTT73X9RW530N
　
##午前・午後共用
基本情報技術者試験ドットコム
https://www.fe-siken.com/

#学習法
令和２年度からのCBT開催を踏まえ、今回は午後学習⇨午後受験⇨午前学習⇨午前受験、という午前午後の期間を空けて受験する計画で進めていきました。
（午後から受験したのは、不合格だった前回を午前⇨午後で受験したので、午後を継続して学習した方が効率的と考えたため。前回試験からの間が短かったこともあり、とても有効な手段でした。）

##午前
###キタミ式を読む

まずはこれ、多分FEで定番のテキストではないでしょうか。イラスト付きで分かりやすく解説してくれます。平日３時間、土日８時間も読めば１週間ほどで読破できます。一度じっくり読んだら次の過去問道場へ進みました。

###基本情報技術者試験ドットコムの過去問道場（午前）をひたすら解く

**やはり過去問を解くことが午前・午後ともに一番重要だと思います。** ひたすら解いて解説をしっかり読むことで理解を深めます。必要に応じてキタミ式の当該ページで復習すると効果的。
試験時間１５０分で８０問を解くわけですが、模擬形式で受けてみた所３０分ほど余ったので解答ペースは気にせずに学習していきました。（本番では６０分も残して退室することができました。）
**最終的には９割ほど解けるようになりました。**

##午後

###出るとこだけ！基本情報技術者を読む
これは中々評価の高い、出題されそうな分野を分析して「出る順」に順位付けたテキストになります。出る可能性が高いとされるSQLやアルゴリズムは数章にわたって重点的に解説してくれます。合理的で非常に分かりやすいテキストだったと思います。
しかしここで落とし穴が。CBTになったことで受験者ごとに問題が異なる可能性が出てきました。他のCBTではある事のようですし、一斉受験で無い以上、不正防止のためのランダム出題は十分あり得ます。類似問題をランダムで出題しているなら良いのですが、そうでなければ出題が多岐に渡り、「出る順」が意味をなさなくなってしまうかもしれません。これから受験される方は注意してください。

###基本情報技術者試験ドットコムの過去問道場（午後）をひたすら解く
選択言語のPythonは過去問が無いため、プログラミング分野を抜いた約１８０問をひたすら解きました。
必須回答の情報セキュリティ分野は比較的難易度も低く、高配点なので重点的に学習しました。
選択分野は全分野やりましたが、データベース、ソフトウェア設計、ハードウェアあたりが個人的には解きやすかったです。**その中でもデータベースは問われる内容が大きく変わらないため、安定して高得点が狙える**のでおすすめです。
午後問の中でも最難関のアルゴリズムですが、他の分野の数倍は学習に時間が掛かりました。何問も解いてプログラムに慣れ、効率的なトレース方法を習得することを重視して学習しました。CBTにより問題文のプログラムに直接書き込めなくなったのが痛手で、**必要な部分を見極めてトレースすること**が大切になってきます。
午前では時間配分を考えませんでしたが、午後は時間に全然余裕がないので、時間を意識して過去問を解く必要が出てきます。１５０分で５問回答なので一問あたり３０分となりますが、アルゴリズムとプログラミング分野に特に時間が掛かるため、**１問目と選択の２問を各２０分、アルゴリズムとプログラミング分野に各４５分**を目標に過去問を解いていきました。
**最終的には全分野合わせて９割ほど解けるようになりました。**

###徹底攻略 基本情報技術者の午後対策 Python編を読む

前回から追加されたPython。過去問が存在しないためこれ一本で学習を進めました。こちらも参考書の中で評価が高いものをチョイス。Pythonの基礎を幅広く学ぶことができます。
巻末には他言語の過去問をPythonに変換した問題が３問、IPAのPythonサンプル問題が収録されています。一通り読み終えてからサンプル問題を解いた結果、一問を除いて全て正解することができ、FEに求められるレベルの学習が出来たと実感しました。
過去問の無い現状では、**アルゴリズムは擬似言語の問題で慣れておき、Pythonの仕様をきちんと学んでおく**ことで対応力を付けるのが良いかなと感じました。

#試験本番
CBTにより試験日を選択できるため、午後を5月上旬・午前を５月下旬に受験しました。当日の詰め込みや寝坊対策のためにどちらも１５時スタートに。
**※守秘義務があるため問題内容については触れることができません。**
##午後試験
まず結果を。
![fe_pm](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/388486/31afca91-77fb-ae32-2fc1-cd5e37771974.png)
計算してみたところ**８４.５**点でした。
最後の問題がPythonなのですが、前問のアルゴリズムに手間取って途中で時間切れに…。しっかり取り組めた他の問題は高得点を取ることができました。
手間取ったアルゴリズムですが、トレースのやり方に無駄が多く、そこに時間を取られてしまいました。（メモ用紙が足りずに会場のお姉さんを呼ぶレベル）やっぱりトレースは大切。
ちなみに解いた順番ですが、特に気にせず１問目から順番に解いていきました。配点割合などで優先順位を付ける人もいるんでしょうか。
##午前試験
![fe_am](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/388486/114b6314-0505-f230-68a6-09b29d507e0b.png)
前回受験では**８２**点だったのに今回は**７５**点。思ったより低くてヒヤヒヤしました。どうやらストラテジ系で失点が多かったようです。
私の解き方ですが、最初は計算問題など時間のかかる問題をスルーして知識問題等を解き、その後じっくり計算問題を解きました。最初の方で計算問題に詰まるとペースを乱されかねないので、簡単な問題を先に解いてしまいましょう。
８０問解くのに掛かった時間は約９０分。一時間ほど残して退室できました。

##合格基準
午前・午後ともに６０点以上で合格です。（前後する可能性あり）私は午前７５点・午後８４.５点。
午前については間違いなく合格と言っていいと思いますが、問題なのは午後です。毎年何人かが選択問題の選択ミスで採点されずに不合格になっているそう。（解く問題を選択し、選択した問題のみ採点されます。**選択間違い・忘れに注意！**）
６月下旬の合格発表まで気が抜けません。

#まとめ

+ 過去問をひたすら解こう
+ 午前の計算問題は後回し
+ 午後はトレースに慣れよう
+ 問題の選択ミスには注意
+ **問題の選択ミスには注意**

#おわりに
今回の試験でおそらくFEに合格することができました。以前プログラミングを始めて挫折し、きちんと基礎から学ぼうと決めて勉強に取り組みました。浅く広くにはなりますが、プログラムを作るために必要なことや流れを掴めたのではないかと思います。これから何を学んでいくのかはっきりと決めていませんが、どんな分野にも学んだことが生かせると思うので、これからも頑張っていきたいと思います！
Qiitaどころか長文を投稿することが初めてで、読みにくいところも多々あったと思います。ここまで読んでくださりありがとうございました。