先日、基本情報技術者試験を受験してきました。
科目A:790点、科目B:745点で無事合格することができたので、私が受験までにやったことをまとめてみようと思います。
当方のステータスとしては、
文学部心理学専修出身、IT未経験、ド文系脳。
学習開始時点で、Progateのフロントエンド言語 & データベース言語はひと通り学習し終えている感じでした。
自分自身、勉強法や参考書選びなどで多くの Qiita 記事を参考にしたので、この記事も悩めるどこかの誰かの一助となりますように…と祈っております!
目次
1. 学習時間
期間としては1ヶ月半、学習時間は150時間ほどでした。
科目Aに最初の4週間を費やし、最後の2週間は科目B対策をしながら科目Aの仕上げをしました。
科目Aはとにかく暗記量が多いので、早めに取りかかって着実に知識を定着させたいです。19世紀の偉い方が忘却曲線なるものを発見してくれているので、それに則って繰り返し学習をするのみです!
私は受験を思い立った瞬間に申し込み、勉強するしかない状況に自分を追い込みました。オススメです。
ちなみに、IT未経験の場合の学習時間は一般的に200時間とされているようです。
2. 使用教材
書店でいくつかの参考書を手に取ってみて、著者が猫好きっぽかったので自分に合っていそうだったのでかやのき先生を選びました。
新しいものを買えば大丈夫です(適当)。
試験範囲を体系的に網羅するのに役立ちました。
当方無類の紙好き & 形から入るタイプのため参考書を買いましたが、ありがたい教材が YouTube などにたくさんあるので、学習スタイルによっては買わなくても大丈夫かも?と思います。
購入したのは上記のみで、あとは YouTube と多数 Webサイトの力を借りました(後述)。
3. 学習方法
どの記事を読んでも、みなさん口を揃えて 科目Aは量、科目Bは質 と仰っています。
勉強を終えた今断言できますが、これが真理です。真理は先人によってすでに発見されているのです…(怪しくないです)。
とは言っても、勉強法が分からず挫折するのは一番悲しいので、私が実際にやったことを辿ってみます。
科目A
1. 参考書を読む
まずは参考書を通しで読みました。内容の7割くらいを理解することを目標に、テキストを読んで章末の問題を解いていきました。
後で過去問を解くときに段々分かっていくので、最初から完璧を目指さないほうがいいです。
割と序盤に基礎理論が出てくるのですが、補数?シフト演算?????という感じで、ドツボにハマって白目を剥きかけていたので、ここはサラッと読んで一旦飛ばしました。2割くらいしか分かっていなかったと思います…。
科目Bの対策には基礎理論の理解が必須なので、早めに倒すのがオススメです。私は無理でした。
マネジメント系、ストラテジ系は一般常識的なところもあるので、テクノロジ系をやっつけてしまえば勝ったも同然です!
ちなみに参考書ですが、情報量が膨大なこともあり、最低限の情報しか載っていない印象です。
理解できない時、なんでそうなるの?が分からない時は、chatGPT様に聞いたりググったりして理論を理解することで、できるだけ丸暗記にならないようにしました。
下記のサイトは脳内お花畑でも理解できるのでとてもオススメです。虚無のイラストで癒されたりもできます。
「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典
必死に逃げ続けた基礎理論ですが、科目Bの対策に着手しようとしたタイミングで逃げ切れないことを悟り、悟りを開きました。
すーさんという YouTuber の方が有料教材レベルの動画を多数出してくださっており、これを使わない手はないです。
実際私は、参考書であんなに理解できなくて嘔吐きかけた基礎理論が、びっくりするくらいすんなり理解できました。
この再生リストを視聴しながら、手を動かしてノートにまとめていきました。
ノートにまとめるのはぶっちゃけ非効率ですが、私は科目Bのためにも確実に理解したかった & まとめノートをお守りにするタイプなのでやりました。
参考書よりも簡潔に、自分の分かる言葉でまとめたノートは財産です!
受験勉強と一緒ですね。
基礎理論以外にも、例えばRAID、コンパイラ方式の実行手順、A/D変換など、ちょっとややこしいけど視覚的に記憶したほうがよさそうなものもまとめました。
ノートの右側のこの部分にこれ書いた!とかいう覚え方もできます(邪道)。効率が悪いので、時間がない方にはオススメしません。
2. 過去問道場
参考書を半分くらい読んだ後は、そこからは同時並行で過去問を解いていきました。このサイトは言わずと知れたレジェンドですね。
学習を終えた分野から順番に、分野ごとに全ての問題を解いていきました。現時点(2025.6.4)で平成16年春期から令和5年免除までの過去問が載っていますが、全部やりました(多分やりすぎ)。
過去問を解き、知らない言葉が出てきたら解説を読み、調べ、参考書に書き込んだり前述のノートにまとめたりしました。
最初は正答率40%とかでパソコンを投げたくなりますが、地道に繰り返していくと「わかる…わかるぞ…ッ!」状態に到達して無双できます。
私は計算問題が出てくると拒否反応で一旦水を飲みに行ったりしていましたが、計算問題の9割は見掛け倒しです!!!
計算自体は単純なことが多く、多少の国語力があれば解けます。むしろ、問題さえ読めればいいので暗記問題より確実な得点源になります。
- 実効アクセス時間
- HDDのアクセス時間
- A/D変換(画像と音声)
- 基数変換
- 補数
- 順列と組み合わせ
- MIPS
- システムの稼働率
- 工数
- 損益分岐点
- ROI
- 線形計画法
このあたりの計算は確実におさえておくべきです。
3. 仕上げに過去問3回分
全ての分野の過去問を終えた時点で試験まで残り2週間でした。
実力を確かめるために直近の過去問3回分を通しで解いたところ、正答率は9割超えでしたが、すでに解いている問題なので当たり前です。本番では初見の問題が出ることを考えると、過去問で9割以上取れたら安心かなとは思います。(私は不安しかなかった)
最後に参考書をザーッと流し読みして、覚え切れていないところは当日まで繰り返し目を通しました。
科目B
来ましたね。手をつけるまでは未知すぎて宇宙人になりそうでした。
声を大にして言いたいのですが、科目Bは7割が見掛け倒しです。
始めは全体の半分です!!!恐れずいきましょう。
基本的に、基礎理論とオブジェクト指向さえ理解していれば科目Bの対策に着手できます。
オブジェクト指向が理解できなければ、 Progate などで JavaScript などを簡単に学習してもいいと思います。
私は科目B対策でもすーさんの動画にお世話になりました。
全部で26問の解説をしてくださっています。
私は擬似言語の読み方 & トレースのやり方だけ確認した後、まずは以下の18問を自力で解きました。
サンプル問題(6問)
令和5年度公開問題(6問)
令和6年度公開問題(6問)
※ 令和6年度公開問題の解説はないので、他のYouTuberさんの動画を参考にしました。
最初は時間を気にせず、一つひとつ丁寧にトレースをしていきました。(難しいやつは30分とかかかった)
その後動画を見て、トレースの流れが合っていたか、プログラムの内容が自分の理解と合っていたかを確認します。
あとはそれぞれの問題について、かかった時間と、なんで間違えたのかをまとめていました。弱点が見えてくるのでオススメです。
最初はトレースに時間がかかりすぎて絶望しかけますが、慣れてくるとパターンが見えてくるので、全体像の把握とトレースのスピードが上がっていきます。ほんとです。
また、トレースに夢中になりすぎて全体像を忘れてしまうと、トレースをミスすることが増えます。入力 → プログラム → 出力の大きな流れを常に頭に置くよう意識していました。
上の18問が終わったら、さいとうさんという方のオリジナル問題10問を同じ流れで解きました。
後半の問題はかなりボリューミーなので、時間は気にしなくていいと思います。
ここまでやったら、問題の内容を忘れたあたりのタイミングで全ての問題を再度解きます。
※ セキュリティ問題に関しては、最低限のセキュリティの知識があれば国語の問題なので、科目A対策で十分です。
最終の実力試しとして、公式のサンプル問題を100分通しで解きました。
20問を通しで解けるのはこのサンプル問題しかないので、直前の力試しにとっておくことをオススメします。
ここで私は8割正解できたので、少しだけ安心できました(少しだけ)。
これももちろん復習で再度解きます。
ここまでやったら、目には見えないですが着実に力が着いています!
Be confident! I'm proud of you! (誰?)
ついでに心構えというか、私が問題を解くとき常に意識していたことをまとめておきます。
- 問題文が長くてもやっていることは単純なことがほとんど
- return を先に確認
- 具体例の式と同じ形の式がプログラムにあったらチャンス!一般化するだけ
- リスト系は図にするとわかりやすい
- 選択肢を試していく系の問題は、あたりをつけられなければ捨てる
とにかく恐れないことです。こんなに恐れているのは私だけかもしれませんが…。
ほとんど見掛け倒しです。
ちなみに、大の苦手だった科目Aのフローチャートが、科目B対策を始めるとスラスラ理解できるようになったので、やっぱり最初から完璧を目指さないほうがいいです。
4. 試験当日
私はメンタルが弱いので当日はストレスで頭が痛くなりました。
試験内容については触れられませんが、難しかったです…。
本番になるといつもできていることができなくなったりしますね。
ただ、求められているレベルは過去問と同じです!
ここまで書いてきたことがどこかの誰かの一助となることを祈っております。
余談ですが… 科目Aの勉強を始めた時、「概念すぎて理解できない」現象に何度も悩まされました。
というのも、ネットワークとかって、目に見えないし実態がないじゃないですか。CPUの処理時間とか、伝送速度なんて、概念のかたまりでしかなくて、頭の中でうまくイメージができないんですよね。
しかも天文学的数字が出てくるとそれはもう宇宙について考えていることと同じです。私にとっては…。
そんなモヤモヤをずっと抱えていた私でもなんとかなったので、なんとかなります。頑張ってください!