基本情報技術者試験を独学で合格した話(令和3年2月)

f:id:ogurizyon:20210810152939j:plain

独学で基本情報技術者試験に合格しました!

2021年の2月上旬に行われたCBT試験を受験し、午前試験は88.75点(テクノロジ95%マネジメント100%ストテラジ84%)、午後試験は97.00点(4分野が100%で1分野が80%)という結果でした。参考書や動画などは利用せず、基本情報技術者試験ドットコムのみで勉強しました。

 

www.fe-siken.com

 

IT業界の中では非常にメジャーな試験であるため、合格者の体験談の需要はそれなりにあるだろうと思い、自分が行った勉強方法や受験したときの様子について書くことにしました。1万7000字超えのフルボリュームでお送りします。

 

 

 

 

CBT方式に移行した基本情報技術者試験

 

体験談に入る前に、試験の内容について軽く触れておきます。

基本情報技術者試験とは、IPA情報処理推進機構)が行っている国家試験の1つで、ITエンジニアとして必要な基本的知識・技能が問われます。情報系の学校の生徒やIT企業の新入社員に資格取得を推奨されるケースが多く、毎年10万人以上が応募する人気の高い試験となっています。

 

「午前試験」と「午後試験」の2つの試験形式があり、両方受験してそれぞれ60点以上取ると合格です。片方が不合格、もう片方が合格だったとしても、次回試験の免除はなく再び両方受験することになります。午前試験は4択問題が80問、午後試験は長文問題が5問(11問の中から選択)です。

 

f:id:ogurizyon:20210725133545p:plain

https://www.jitec.ipa.go.jp/1_11seido/seido_gaiyo.html

 

試験は1年に2度行われます。

令和元年秋季までは「春季(4月)」「秋季(10月)」という区分で実施されました。しかし、令和2年度は春季、秋季ともに新型コロナウイルスの影響で中止。

その代替も兼ねた令和2年度試験が2021年の1~3月の間に行われましたが、その際に従来の紙の試験からCBT(Computer Based Testing)方式へ移行しました。

f:id:ogurizyon:20220115224734p:plain

CBT方式では、紙ではなくパソコン上で問題を解きます。問題文にメモを直接書き込むことができなくなるなど、今までと解き方が少し変わりました。もちろん私用のパソコンで受験するのではなく、試験会場に設置されたPCで受験します。

また、試験が1日ではなく数ヶ月間に渡って行われるようになりました。したがって、問題のネタバレを防ぐためにメモの持ち出し禁止・問題内容の口外禁止などの制約ができました。

 

試験時間・試験会場は自分の自由に選んで申し込みできます。これは都合がつきやすくて便利になりましたね。ただ、土日はすぐ埋まるのでなるべく早めに申し込みしたほうがよいです。

また、午前試験と午後試験を同日に受ける必要はなく、別々の日に受けることもできるようになりました。なんなら午前に午後試験を、午後に午前試験を受けることも可能です。ややこしい…(笑)

 

残念ながら、1つの実施期間が終わっても過去問題が公開されなくなりました。僕もいつもどおり公開されると思っていたのですが、この記事の下書きを書いているときに気づきました。過去問題を紹介しながら受験当日のことを語ろうかなと思ってたんですけども…。



試験勉強の流れ

f:id:ogurizyon:20220115224940j:plain

自分がどれくらいの事前知識を持っていて、どのようなペースで学習していたのか、少し自分語りさせていただきます。対策方法だけ知りたい!という方は読み飛ばしてください。

 

僕は2020年3月に近畿大学を卒業しました。物理学専攻だったので情報系の知識には疎く、4年生のときに情報学科の講義を受けて2進数、ソート、OSI参照モデルをなんとなく理解した程度でした。公開鍵暗号方式トランザクション処理もSQLも一切知りませんでした。

プログラミングはC言語の経験がありましたが、使用用途が数値計算メインだったのでポインタがギリギリわかる程度、構造体なにそれおいしいの?状態でした。アルゴリズム的な面では、ifで分岐してforで繰り返すという基本知識でしかコーディングできませんでした。

 

2020年4月に今の会社に入社しました。業務内容はいわゆる技術者派遣(SES)なのですが、コロナ禍の影響で顧客企業が新卒エンジニアを雇う余力がなくなり、派遣先が一向に決まらない状態が続きました。したがって派遣先が決まるまでの約1年間、自社で研修を続けることになりました。研修と言っても講師から教わることは特になく、ほとんど自習です。

そこで研修期間中、午前の3時間は基本情報技術者試験の勉強、午後の4時間はC++などのプログラミング言語の勉強をすることにしました。基本情報の勉強は、基本情報ドットコムの過去問題をひたすら解いて、わからなかったところをググってノートにまとめました。プログラミング言語の勉強は、書籍の問題を解いたり、自分で適当なソフト作ったりしました。

 

 

研修中に記入していた日報を元に、おおまかな学習スケジュールを紹介します。本来はきっかり2,3時間ではなかったり、別の年度の問題を同じ日に解いたりしていましたが、わかりやすいようにざっくりと区切りました。計画的に勉強するのが苦手だったので、好き勝手に時間を調整しながらやってます。

なお、研修時間外の勉強は試験直前しかやっていません。

 

ほとんど全てがわからない状態で始めたので、わからない部分を調べてノートにまとめながら進めていると、とてつもなく時間がかかりました…。最初は150分で解く試験に対して2週間も費やしました。

なお、午後問題はひとまずスルーして、午前問題の内容の理解を優先しました。

 

4月20日(月)~5月1日(金)令和元年秋季午前問題

3時間×10日=30時間

5月7日(木)~5月17日(金)平成31年春季午前問題

3時間×7日=21時間

5月20日(月)~5月25日(月)平成30年秋季午前問題

3時間×6日=18時間

5月26日(火)~5月29日(金)平成30年春季午前問題

3時間×4日=12時間

6月1日(月)~6月3日(水)平成29年秋季午前問題

3時間×3日=9時間

6月4日(木)~6月5日(金)平成29年春季午前問題

3時間×2日=6時間

 

 

午前問題の範囲は大体把握できたので、ここから午後問題に挑戦します。最初は文章が全然頭に入ってこなくて大変でした。量子力学の教科書と格闘していたときの感覚を思い出しました。

サイバー攻撃マルウェアなどについて知っていても、それが何の原因で起こってどう対策するのか…。IPアドレスについて知っていても、どんなネットワークを構築してどう通信するのか…。理屈は知っていてもどのように運用するのかは曖昧だったので、応用的な知識を取り入れる必要がありました。

 

大問の選択は、物理卒のくせに計算嫌いなのでマネジメント系は捨てて問2~6を選択、プログラミングは唯一知っているC言語を選択しました。SQL(データベース)は勉強したものの、実物を触ったことがない人間には限界があると感じて、受験直前の1月に捨てました。

 

6月9日(火)~6月12日(金)令和元年秋季午後問題

3時間×4日=12時間

6月14日(月)~6月17日(木)平成31年春季午後問題

3時間×4日=12時間



午後問題が難しすぎて萎えたので、ここから約1週間の午前中はmikatypeで英語入力の練習をしていました(笑)基本情報対策を再開したあとも1時間は練習しています。

 

6月29日(月)~6月30日(火)平成30年秋季午後問題

2時間×2日=4時間

7月1日(水)~7月3日(金)平成30年春季午後問題

2時間×3日=6時間

7月6日(月)~7月9日(木)平成28年秋季午前問題(うっかり平成29年を飛ばす)

2時間×3日=6時間

7月10日(金)~7月13日(月)平成28年秋季午後問題

2時間×2日=4時間

7月14日(火)~7月16日(木)平成28年春季午前問題

2時間×3日=6時間

7月20日(月)~7月21日(火)平成28年春季午後問題

2時間×2日=4時間



そろそろ先に進むよりは以前解いた問題を解き直して知識を固めた方が良いだろうと思い、令和元年秋季に戻りました。最初の方はよくわからないから後回しにした部分や覚えるポイントを見誤った部分が多く、2週目でも時間がかかりました。

 

7月27日(月)~7月29日(水)令和元年秋季午前問題

2時間×3日=6時間

7月30日(木)~7月31日(金)令和元年秋季午後問題

2時間×2日=4時間



ここで夏季休暇を含めて2週間空いていますが、C#windows forms)でmikatypeのコピーソフトを作成することに没頭していました(笑)

 

8月20日(木)~8月24日(月)平成31年春季午前問題

2時間×3日=6時間

8月25日(火)~8月26日(水)平成31年春季午後問題

2時間×2日=4時間

8月27日(木)~8月28日(金)平成31年春季午前問題(間違えてもう一回解いてる)

2時間×2日=4時間



ここから約2週間は、文字入力が2倍速になると信じて一日中かな入力の練習をしてしまい、時間をドブに捨てました\(^o^)/

かな入力は頭の体操になって楽しかったですが、ローマ字入力もかな入力もスピードは大きく変わらないとされており、それなら十分に慣れているローマ字入力の方を使った方が速いだろうというオチ。

 

9月11日(金)~10月23日(金)

午前 30時間

午後 26時間

写経 37時間

 

9月10月はマイペースに好き勝手やってて日付ごとに区切れなかったので、全部まとめました。

全問不正解するほど大苦戦していたアルゴリズムC言語対策として、問題のプログラムをC言語で写経しました。使われているコーディングのテクニックに気づき、問題における文章やコードの癖がつかめるようになり、6割以上はなんとか取れるようになりました。



10月26日(月)~

時間を決めて過去問題を解いたところ、午前・午後ともに9割程度取れるようになっていたので、10月末で勉強を一旦終了しました。なおコロナ禍により秋季試験も中止され、いつ受験できるかわからない状況。

代わりの時間では、TypeScriptや応用情報の勉強をしていました。



1月6日(水)

今年の目標に「基本情報合格」を宣言したついでに、久々に基本情報ドットコムにアクセスしてみると、申し込みが始まってるじゃないですか!

ということですぐ申し込みをして、基本情報の対策を再開しました。2ヶ月ほどのブランクがあったので、忘れていた知識を思い出していく。CBT方式への変更については、元々パソコン上で解いていたので全く気にしませんでした。

 

ここからはスプレッドシートに間違えた問題とその理由をメモして、正答率をチェックしながらミスの原因を片っ端から潰していきました。ミスした原因を頭に刷り込めるので、最終段階の勉強法としておすすめです。

 

f:id:ogurizyon:20210809134330p:plain

 

1月7日(木)平成30年春季午前問題

2時間

1月8日(金)平成29年秋季午前問題

3時間

1月12日(火)~1月13日(水)令和元年秋季午後問題

5時間

1月14日(木)平成29年春季午前問題

4時間

1月19日(火)平成31年春季午後問題

5時間



ここまでTypeScriptなどと並行してのんびり対策していたのですが、午後問題やばいやばいマジでやばいと気づいて、ここからぶっ通しで午後問題の対策をしていました。

依然としてアルゴリズムC言語に苦戦していて、初見の問題を30分以内に解けるかどうかが不安。解答に必要な部分は正確にきっちりトレースして、解答に不要な部分は問題文通り動いてると信じてスルーするという、見極め力を磨いて時間短縮を計りました。

 

1月22日(金)~1月25日(月)平成30年秋季午後問題

5時間

1月25日(月)~1月26日(火)平成30年春季午後問題

5時間

1月26日(火)平成29年秋季午後問題

3時間

1月27日(水)~1月28日(木)平成29年春季午後問題

5時間

1月28日(木)、2月1日(月)平成28年秋季午後問題

5時間

1月29日(金)

午前試験受験

2月1日(月)平成28年春季午後問題

3時間

2月2日(火)

午後試験受験



以上が勉強のスケジュールです。

ここに書いた時間を足すと、勉強時間は312時間でした。事前知識が少ない状態からの独学だと、やはり数週間の勉強でなんとかできるほど軽い試験ではないですね。ただ、隙間時間を活用して効率よくやれば、もっと短縮できたとは思います。



午前試験対策その1 〜ノート書く〜

 

午前問題をどのように対策していたのか紹介します。

 

勉強方法としては 

・問題を解く

・わからない概念が出てきたら、調べてノートにまとめる

これだけです。

これをひたすら忍耐強く続けていきました。



わからない概念でも大体はサイトの解説を読めばわかるのですが、一応他所の情報も参考にしました。ググって出てきたサイトを上から順にアクセスしてわかりやすい説明を探し、わかりやすい説明であれば熟読しました。

試験を解ける程度の知識があれば問題ないので、説明が完璧に正確かどうかのチェックに時間を費やさないようにしたいところ(僕はそれで無駄に時間をかけすぎました…)。もし正確な説明が欲しいなら信頼できる書籍を買えばよいので。



よくお世話になったサイトだけ紹介します。

 

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

https://wa3.i-3-i.info/index.html

ITの用語をざっくり解説してくれます。詳しく理解するには不十分ですが、ここで雰囲気をつかんでおくと他所での解説が読みやすくなります。

 

e-words.jp簡潔かつ丁寧な解説で理解しやすい。文中に出てきた単語や関連項目へのリンクがあるのもグッド。

 

qiita.com

解説サイトではありませんがぜひ読んでほしい記事。公開鍵暗号方式やデジタル署名については、どこの解説を読んでもイマイチ腑に落ちなかったのですが、これを読んでようやくモヤモヤが解消されました。



そして、調べてわかった複数の情報をかけ合わせていい感じにノートにまとめました。

 

ノートの効果は絶大です。文章を読んだだけで新しい概念を理解するのは非常に難しいので、自分の言葉にしてアウトプットする過程を経ることで、内容を頭に定着させることができます。

後で見返して思い出すためというより、とにかく自分の言葉にして文字を書くことが重要で、目で見るだけではすり抜ける情報を頭に残す効果があります。書いたもので理解するのではなく、書く作業で理解するのです。

もしPC上でノートを作る場合でも、文章のコピペは絶対にせず、自分で文章を考えてタイピングすることが大事だと思います。

 



ここからは、ノートを書くときに気をつけたことを3つ挙げてみます。

1. キレイにまとめようとしない

1つ目は、キレイにまとめようとしないこと

他人に説明するために書くわけじゃないので、メモ書きのようなイメージでいいんですよね。覚えるために書くのではなく書くことで覚える、見やすさは二の次。キレイに書こうとしてあーだこーだ悩むのは時間の無駄、その時間で次の問題が解けます。

 

僕は過去問題を解いた順番にノートを書いていたので、関連する内容が同じページに無くバラバラになっていました。

例えば、DRAMSRAMなどの話とEEPROMやUV-EPROMなどの話のページが離れていたり、公開鍵暗号方式の話があちこちに点在していたり、とにかくバラバラです。前に書いたことを忘れてまた同じことを書いたことも多々あります。

 

f:id:ogurizyon:20210724204224j:plain

講座や参考書を活用せず過去問題ベースでやると、こういうジャンルぐちゃぐちゃのノートになっちゃいます。でも、ノートを書く一番の目的は「内容を自分の言葉にして書くこと」なので、多少ノートが見直しにくくなっても問題ないと思っています。

とはいえ、ハードウェア・ソフトウェア・ネットワーク・マネジメント…という風にせめてノートをジャンル分けしていれば、もう少し見直しやすかったなーと反省。



2. 色ペンの強調は後から付ける

2つ目は、色ペンの強調は後から付けること。なぜなら、最初はどの内容が重要でどの内容が重要でないかがわかっていないからです(特に独学では)。

・どの内容が繰り返し出題されるのか

・どの内容が詳細な理解が必要なのか

・どの内容が自分にとって覚えにくく何度もミスするのか

過去問題を解いていく内にそういったものがだんだんわかってきますので、それに応じて色ペンで強調していきました。

 

ちなみに使用した色ペンは赤、緑、青の3色。色ペンは2色でいいという言説もありますけど、僕は3色は欲しいですね。

  • 赤:丸暗記したい
  • 緑:丸暗記はいらないけど覚えておきたい
  • 青:覚えておかなくていいけど見たら思い出せるくらいにしたい

 

強調として主に使っていた方法はこちら。

  • 四角:とても重要な単語
  • 下線:重要な単語、文章
  • 波線:とても重要な文章
  • 丸:類似概念の判別に使う単語

 

頑張って書いたけど全然必要じゃなかったので全く色ペンが使われていないページがこちら。

f:id:ogurizyon:20210724204246j:plain
MPEG

勉強し始めて間もない頃だったので要領がわからず、丁寧に書きすぎました。「MPEGは動画圧縮するやつ」とだけ覚えておけば十分でした。

逆に、何度も間違えたのでめちゃくちゃ強調してるページがこちら。

f:id:ogurizyon:20210724204301j:plain

ACID特性。

英単語そのまんまやしすぐ覚えれるやろと思って、最初は色ペン無しだったのですが、何度も間違えるので派手に強調することになりました。「コミットかロールバックのどちらかで終了する」という文言も後から追加しています。

 

3. 余白を多めにとっておく

3つ目は、余白を多めにとっておくこと。ガンガン改行を入れて、ページ上側は空けておき、右側もなるべく空けておく。

以前間違えた問題をまた間違えたときはノートに書いた部分を見直しますが、そのときに「わかりにくい」「この説明だけじゃ足りない」と感じることがあります。そうなったときは、説明が不足している部分を再度調べ直して、新しく余白に書き足します。

 

勉強開始して間もない頃、余白を用意しなかったせいで大変なことになったページがこちら

f:id:ogurizyon:20220109165143j:plain

ハッシュ関数

午後問題のセキュリティで問われることも多く、さらに応用情報ではソルトやらレインボーテーブルなどの概念も追加されたので、書くべきことが多くなりすぎました。



勉強に慣れてきて、余白を用意していたので容易に書き足せたページがこちら。

f:id:ogurizyon:20210724204343j:plain

テスト方法。

ページの上側を空けていたので、ベンチマークテストを追記しました。ついでに、下部のクラウドサービスのところでもDaaSを追記しました(あまり出ないので色ペンで強調していませんが)。





午前試験対策その2 〜過去問解きまくる〜

午前試験の大きな特徴として、問題の一部が過去問題からそのまま流用されます。しかも選択肢が違うとか数値が違うとかではなく、本当に全く同じ問題。なので、過去問題を繰り返し解くことは点数に直結します。

何らかの参考書を使って勉強している人も、基礎勉強はほどほどでいいので、直接過去問題を解いて勉強することをおすすめします。

 

基本情報ドットコムには「過去問道場」という機能があります。指定した範囲の過去問題からランダムに出題されます。選択肢をランダムにして覚えゲーを防ぐことができます。計算問題を出さないようにすることで、文字が書けない移動中でも快適に解けます。

僕は試験直前しか使いませんでしたが、毎日移動中や寝る前などに過去問道場でガンガン解いていれば、遥かに効率よく覚えられたなと反省しています

www.fe-siken.com

 

 

「正答だけ見て誤答は無視していい」というような意見をどこかで見ましたが、僕は誤答もしっかり確認しておいた方がいいと思います。

 

例えばこの問題。

情報セキュリティにおいてバックドアに該当するものはどれか。

ア:アクセスする際にパスワード認証などの正規の手続が必要なWebサイトに,当該手続を経ないでアクセス可能なURL
イ:インターネットに公開されているサーバのTCPポートの中からアクティブになっているポートを探して,稼働中のサービスを特定するためのツール
ウ:ネットワーク上の通信パケットを取得して通信内容を見るために設けられたスイッチのLANポート
エ:プログラムが確保するメモリ領域に,領域の大きさを超える長さの文字列を入力してあふれさせ,ダウンさせる攻撃

www.fe-siken.com

バックドア」がどれかわからなかったとしても、イはポートスキャナだな、ウはLANアナライザ(ミラーポート)だな、エはバッファオーバーフローだなとわかれば、消去法でアを選択できます。

わかる概念が増えれば増えるほど、誤答の選択肢を弾いて正答を絞り込めるようになります。

 

さらにこの問題で誤答をチェックしていると、さきほどは誤答だったポートスキャナが問われる問題が出たときに解けます。

攻撃者がシステムに侵入するときにポートスキャンを行う目的はどれか。

ア:後処理の段階において,システムログに攻撃の痕跡が残っていないかどうかを調査する。
イ:権限取得の段階において,権限を奪取できそうなアカウントがあるかどうかを調査する。
ウ:事前調査の段階において,攻撃できそうなサービスがあるかどうかを調査する。
エ:不正実行の段階において,攻撃者にとって有益な利用者情報があるかどうかを調査する。

www.fe-siken.com

 

さらに、さきほどは誤答だったバッファオーバーフローが別の問題の誤答だったとき、選択肢から弾くことができます。

データの破壊,改ざんなどの不正な機能をプログラムの一部に組み込んだものを送ってインストールさせ,実行させるものはどれか。

ア:DoS攻撃
イ:辞書攻撃
ウ:トロイの木馬
エ:バッファオーバフロー攻撃

www.fe-siken.com

 

…といった感じで、問題とそれに対する答えを丸暗記するのではなく、全ての選択肢の意味を理解しておくことで、複数の問題に対応できるようになります。また、セキュリティ、ネットワーク、マネジメントの内容は午後問題にも絡んでくるので、誤答も含めてしっかり理解することが重要です。(とはいえ、稀に絶対覚えんでもええやろって誤答もあるので、そこは柔軟に)

 

また、解答丸暗記だと落としてしまう問題もあります。応用情報の問題ですが、これは見事にやられました。

www.ap-siken.com

花形・金のなる木・問題児・負け犬のアレ(PPM)ですが、4つのうちどれかを選択するのではなく、なんとグラフの縦軸横軸を聞かれました。単語だけでなんとなく覚えている人は振り落とされる問題です。

なので、こういう変化球にも対応できるようにするためにも、解答の丸暗記はしないほうが良さそうです。

 

 

試験範囲が広いので、覚える内容は本当にたくさんあります。しかし以下の点から、午前問題の対策は苦ではないと思います。

・4択問題

・6割正解で合格

・単語やその意味を正確に覚えなくても問題文見てわかれば良い

・過去問題と全く同じ問題も出る

・試験時間が30~60分くらい余る

そういう緩さがあるので、とにかく解答丸暗記はせずに一つ一つの概念をきちんと理解して、ひたすら過去問題を周回すれば大丈夫。勉強時間を確保することさえできれば大丈夫だと思います。

 



午後試験対策

 

次は、午後問題をどのように対策していたのか紹介します。

 

「午前問題を解ければ午後問題も解ける」という言説をよく耳にしますが、「じゃあ午前問題対策すれば午後問題も楽勝なんだなぁ~」ってのほほんとしていると、とんでもないことになります(´・ω・`)

確かに「午前問題を解けなければ午後問題は解けない」のですが、だからといって「午前問題を解ければ午後問題は解ける」は成立しないのではと。午後問題は明らかに午前問題より難しいです、覚悟してください。

 

午後試験が難しい理由とその対策について、5つ挙げてみました。

 

1. 難しい長文を読まされる

午後問題は文章が難解です。そして長いです。

難しい長文を読んで、問題文の状況を正確に漏れなく理解しないといけません。僕が初めて問題文と対峙したときは、20分かけても全く何も頭に入ってこなくて絶望しました。問題を繰り返し解いて文章に慣れることが重要です。

 

本当に文章読解問題なので、理系じゃなくて文系じゃんと揶揄されることもあります。しかし僕は今の仕事で延々と仕様書とにらめっこしてるので、文章読解は実務で必要だと痛感していますね。

 

対策

頭に入ってこない対策として、ひたすら文章の内容をメモします。内容を単語レベルに分解して簡潔にメモします。

解答中に見返すためというより、手を動かして頭を働かせるために書きます

f:id:ogurizyon:20220109022229j:plain

こうやって要点を掻い摘んで書くことで、目で見るだけでは右から左だった文章が頭に入ってくるようになりました。ノートを書く理由で説明したのと同じことで、自分の言葉にして書くことで理解できるようになるのです。

なお、これは問題解いたあとに見返すことはないので、ノートではなく電子パッドに書いていました。(上の画像では最近購入したiPadで書きました。余談ですが、iPad使えばノート書けるし途中計算もできるし超便利だと思います。)



2. 同じ問題が出ない

午後問題は同じ問題が出ません。

午前問題は、ほとんどが過去問題と同じ問題や類似した問題で構成されていました。午前試験は(よろしくないですが)意味をわからず回答を丸暗記したとしても合格点には届くでしょうが、午後問題はちゃんと意味を理解していないと解けません。

 

対策

午後問題は同じ問題が出ないとはいえ、同じ問題形式です。なので午前問題と同じく過去問題を繰り返し解くことで、「問題形式のノリ」に慣れていきます。

 

僕が気づいた「問題形式のノリ」について2点紹介します。

1点目。

午前問題で問われるような基本的な知識は除けば、答えにつながる根拠は全て問題文中に書いてあります。センター試験の小説のように、常識的に考えて…とか状況から察するに…とか曖昧な理由で導くことはなく、全て問題文の記述を元に解答できます。これに気づくことができれば、問題を解くのがやみつきになります。

2点目。

問題の難易度が一定になるように、問題文の状況に対する説明の丁寧さが調節されています。理解が容易な題材では説明が雑で、図や表から察してくださいと投げ出されるため、注意深い読解力が必要になります。逆に理解が難解な題材では説明が丁寧で、長々と説明が書かれていたり実際に動かした例が提示されるため、長丁場に耐えられる集中力が必要になります。

したがって問題によって力の掛け方が違うので、うまくコントロールしていきたいところ。音ゲーでクリア狙うかフルコンボ狙うかの感覚の違いに近いです。

 

繰り返し解くと、問題と解答を覚えてしまうでしょう。そこで「あーこの問題はエやったわ」という感じで脳死解答してしまうと全く練習にならないので、その選択肢を選んだ根拠を丁寧に説明できるようにします。選択肢を見ずに答えを考えてから解答するのも良さそうです。

午前問題は丸暗記してしまうくらい繰り返してもいいのですが、午後問題は丸暗記してしまうと練習になりにくくなるので、1問1問を大切に解いていきます。ただし、大切にしすぎて解かなくなるのは本末転倒なので注意!(自分は応用情報のときそれをやらかして、演習不足になってしまいました…。)



3. 試験時間が足りない

午後問題は150分丸々使います。

午前問題は、手を抜いて解いたとしても30~60分くらい余ります。しかし、午後問題は全力で集中して解かないと間に合わず、見直しの時間もあまりとれません。残り時間との戦いになります。

 

対策

基本情報ドットコムでは、問題のページを開いた瞬間からタイマーがセットされるので、それを参考にしていました。考えることが少ないセキュリティとネットワークは15分、難しいアルゴリズムプログラミング言語は30分、それ以外は20分という風な配分を自分はしていました。

問題文の流れとしては、序盤は状況説明、中盤は実際に運用する、終盤は問題対応や仕様変更…のパターンが多いです。問題文序盤で今から何やるかを把握したところで設問をチェックして、問題文中盤以降はどこに気をつけて読めばいいか意識しておくと、そこまで重要でない文章の読解にリソースを食われずに済みます。

 

また、プログラミングの問題では「どういう仕組みでこう動いているんだろう?」「何でこういう書き方しているんだろう?」「自分のあのプログラムに応用できるのでは?」などと気になることがありますが、プログラムが想定通り動くことが確認できているなら実装ロジックへの興味は捨てましょう!もちろん設問と関係あるのならちゃんと考えるべきですが、設問と関係ないのであればそういうのはあとにします。時間がなくなります。

この教訓は応用情報の午後問題演習で使った参考書に書いてあったので紹介。

 

4. 1問のロスが大きい

午後問題は1問あたりの点数が大きいです。

午前問題は、80問もあるので1問落としたところで1.25%のロスにしかなりません。しかし、午後問題は大問5問、小問5~7問程度ですから合計で約30問しかなく、1問落とすと約3.33%のロスになります(部分点が不明なので具体的に何点ロスするのかはわかりませんが)。

しかも、ひとつの問題を落とすと次の問題も落としてしまうタイプの問題もあるので、ケアレスミスが命取りになりかねません。

 

対策

誤答がなぜ間違っているのかまでしっかり説明できるようにしました。「△△だから答えはイだな!」と飛びついたときに、誤答も確認すれば「あれ?エも△△では?…あっ、◇◇だからエなのか」という風に間違いに気づけるかもしれません。

また、ケアレスミスした→次から集中する」という反省は絶対しないようにしました。なぜ間違えたのかを根掘り葉掘り追求して、より具体的な反省をします。例えば…

・演算の過程をひとつ抜かしていた→簡単な演算でも頭の中で終わらせずに紙に書いて計算する

・エ:⑤ と オ:⑥ を選び間違えた→数値が連続してる系の選択肢は指差し確認を何度も行う

といった具合です。

 

5. アルゴリズムプログラミング言語は午前試験で問われない内容

必須回答である問8の「データ構造とアルゴリズム」、選択必須回答である問9~13の「C」「Java」「python」は、そもそも午前問題では出ない内容です(関連するのはフローチャートくらい)。なので、この2問に関しては「午前試験が解ければ午後試験も解ける」が通用しません。

そして、プログラミング未経験者が過去問題を解くだけで対策できるかというと、無理です。初心者向けの書籍や講座で習得できる基礎的な知識は大前提です。その上である程度のコーディングのスキルが必要になります。

僕の場合、基本情報と平行してプログラミングの勉強をしていたのも良かったかもしれないです。たまたま以下の書籍が無料公開されていたので読んだのですが、勉強していると詰まりやすい箇所を初学者目線で丁寧に解説されていて良かったです!最後のパズルRPGを作る課題をヒント一切見ずに頭抱えながら作ったのはいい思い出。

 

 

対策

何度か解いた問題のコードを写経します。プログラミング言語の問題は丸写しで大丈夫ですが、アルゴリズム問題は疑似言語なのでちょっと工夫は必要ですね。解説を読むだけではしっくりこなかったプログラムの動きが一目瞭然です。

問題の難易度調整のためにコメントがあったりなかったりしますが、コード自体は合理的に書かれている印象です。難しい問題にするためにわざとぐちゃぐちゃなコードにしよう(^u^)みたいな悪戯はほとんどありません。なので、コードは信頼してアルゴリズムの勉強の題材にしてしまいます。

 

コードを書き終わったらデバックをします。変数がどの行でどんな値になっているか確認すれば、プログラムがどう動いているのか手に取るようにわかります。このタイミングでループ抜けてるのか、配列の中身はこうなってるのか、木構造はこうやって処理しているのか…など。

自分としては、char型に整数値を代入するとか、returnでfor, whileのループを一気に抜けるとか、配列の添字に配列を入れるとか、今まで見たことのなかったテクニックを知ることができました。



過去問題を解いているだけでは、どれだけ対策しても100%通る自信がつけられないのが午後問題。過去問題を解く時点では、10割取るくらいの心持ちで勉強するのが大事だと思います。そうすれば、万が一とても難しい大問が出題されても、他の大問を全問正解で乗り切ることでカバーできますので。

 

試験対策のお話はここまでです!あとは雑談を少々お送りします。



参考書を使わなかった理由

 

ここは完全に個人的な話になりますが、ちょっと愚痴らせてください(笑)

僕は参考書を使わずに合格までこぎつけましたが、参考書をケチって買わなかったとか参考書無しでも合格できると思ってたからとか、そういう訳ではなく…。

実は大学4年生のときに、基本情報技術者試験対策の講義を受講していたんです。それで講師に指定された参考書も購入していました。

 

しかし、講師が何の脈絡もなく挟んでくる頭の悪いネガティブトークにあまりにもイライラしてですね…。

「某モンスターを狩る会社の内定もらってたけど残業多いって聞いたから辞退した、ゲーム業界はブラックで終わってる」「ピザは値段を高くして不当に儲けている、配達員を低給料でこき使ってるからバイクでコケて事故起こす」「宣伝に有名人を起用すると宣伝費高くなるから金が無駄になる、有名人に金をぶんどられて損」「ポケモンってわけわからんくらい増えましたね、いつまで続くんでしょうねあれ」などなど…。

 

基本情報と全く関係のない気分を害する雑談に耐えられなくなったので、3回くらい受講してリタイアしました。学習内容も各単元ごとに単語をなぞっていくだけで、今考えれば全然役立っていません。座学で闇雲に単語覚えるより、問題を解きながら覚える方がずっと効率良いですね。



さて、1年越しに会社の研修期間で基本情報の勉強をすることになりました。そこで、その講義で使っていた参考書も使えるかなと思っていたんですよ。

これです。

びっくりするくらいアテになりませんでした。講義だけでなく参考書も良くなかったのです。

 

この参考書の問題点は、「試験に出ない内容が大量に書かれている」ことです。

信じられないことですが本当です。試験対策本ではないのではないかと疑いましたが、タイトルは何度見ても「基本情報技術者試験対策テキスト」です。Amazonのレビューなんて☆1でいいと思いますが、☆4くらいあって怖いです。

 

実際に中身を紹介すると…

f:id:ogurizyon:20220109170456j:plain

デイジーチェーン接続が何台とか、どの転送方式がシリアルかパラレルかとか、そんな知識いります?RS-232C、IEEE1284、IrDAって何?

試験に不要な知識が盛りだくさんです。こういうものが各単元に存在します。

 

 

f:id:ogurizyon:20210810152603j:plain

(゜_゜)

「光ディスク」と「ディスクの保存期間」の説明以外、全部いらないと思います。

 

 

f:id:ogurizyon:20210810152427j:plain

この本の何がたち悪いって、単語が全部並列的に書かれていて強調されていないので、何が重要で何が重要でないのかわからないところですね。

↑の画像だと…

・多分出たことない→IGWAN、住民基本台帳ネットワーク、EDINET、公共情報システム、e-Gov、マイナンバー

・出たことある→EMS、XBRLスマートグリッド

・頻出→デジタルディバイドGPS

…といった感じです。この書き方でそんなことがわかるはずがないので、独学者には極めて不親切な構成だと思います。



もしこの試験が、過去問題で出たことのない内容が頻繁に出る、9割とらないと合格できないというような厳しい試験ならば、過去問題に出たことのない内容まで網羅するのは理解できます。

しかし、この試験は多くが過去問題からの流用や類似問題で、しかも6割取れれば合格です。仮に全く知らない知識が問われる問題が出て間違えたとして、他の問題をカバーできていれば大丈夫な訳です。なのでこんな無駄に詳しい解説は蛇足です。

 

さらに言うと、このような知識の羅列だけで問題を解くテクニック的な話は一切書いてありません。そして午前試験の過去問題は少しだけ載せてありますが、入念な対策が必要である午後問題は一切載っていません。

もはやただの情報系の知識の辞書ですね。応用情報に合格した今の自分でも知らないワードが次から次に出てくるのはもはやギャグです。

 

ちなみに、「講義を受けていたら重要な部分だけ教えてくれていたのではないか?」と疑ってノートを見返しましたが、「SRI」「ゴーイングコンサーン」「TQM」「SOHO」「OR」など重要度の低いワードが強調されていました。

あいつは何を教えてるんだ、怖いんですけど…。CEOとCOOに下線引いてCIOに下線引いてないのもヤバいですね。

 

未勉強の状態でこの参考書が役立たないことに気づけるはずはなく、気づいたのは午前問題が6割以上取れるようになってからでした。そこまで理解しているともう新たに参考書を購入する必要はありません。



正直、まともな参考書は持っておいた方が良かったなぁと思っています。特に僕は情報系について知識も書籍もほとんどない状態だったので尚更。

さきほどノートでぐちゃぐちゃになってるページをお見せしましたが、最初は何が重要で何が重要でないかわからなかったので、覚える内容の取捨選択ができていませんでした。もし参考書が手元にあれば、これは参考書で強調されているから重要な内容だな、これは参考書に書いてないから重要な内容じゃないな、と判断できました。そうすれば効率よく午前試験を攻略できたでしょう。



いざ受験

 

最後に、実際に試験を受けたときの話をします。

pf.prometric-jp.com

CBT方式に移行して初めての基本情報技術者試験だったわけですが、IPAではなくプロメトリックのサイトから申し込みします。

まずは会員登録。メールアドレスを登録するとき、メールアドレスを書いたあとメールを経由せずにそのまま登録されたのですが、ちょっと不安になりました(笑)

www.fe-siken.com

 

そのまま申し込み。途中で気づいたのですが、申し込みはwindowsのみしか対応していませんでした…。

windowsで行ってください」の注意書きに気づかずにmacで進めていたのですが、一番最後のクレジットカード支払いのあたりで原因不明のエラーが出て進めなくなりました。なのでwindowsでやり直しました。

スマホでも駄目と書いてあるので、windowsのPCを所持していない人はどうすればよいのだろう)

 

試験会場と時間を予約。各会場で30分ごと?に空席状況が見れるのですが、試験時間の150分以上連続して空いているところで申込みます。連続して空きがなくても申込みできそうな感じですが、もし申し込んだら150分満たずで打ち切りとかなるのだろうか?それともシステムで弾かれる?

12月末から予約は始まっており、中止された分の人が流れているわけなので、近い日付の土日は既に全て満席。なので、行きやすい試験会場で空いている時間を探して、平日に予約しました。

午前試験は1月29日(金)の13時から、午後試験は2月2日(火)の13時から。両方を同日に受けられるほど空いている時間はなかったので、有給を2日とって受験することに。

 

当日必要なものは、1つ目は申込み書。印刷した方が良いと思いますが、自分はスマホに送ったhtmlファイルを直に見せても通りました。

2つ目は顔写真付きの証明書当日、保険証見せたら顔写真がなくてトラブってた人がいたけど受験できたのだろうか…。



試験当日、午前中からひたすら過去問題を解く。結局平成28年までの問題までしか解いていなかったので、それ以前の問題もやってみる。

家ではやめに昼食をとったあと、電車では過去問道場を使う。だいぶ早めに着いたので駅でノート見返して復習。

 

試験会場のビルには、入口あたりに「試験会場はこちら」みたいな張り紙があったので安心。エレベーターで上がって受験会場へ行き、受付で手続き。

待合室では2~40代くらいの人たちがみんな必死に勉強をしていました。ここでは情報処理技術者以外の試験も開催されているので、何の勉強かはわからないけれど。僕も集合時間ギリギリまで問題解いたりノート見返したり。

 

試験開始15分前までに集合。ロッカーに試験に不要な物をしまうのですが、カバンやスマホはもちろんのこと、ポケットの中身や腕時計などあらゆる物をしまう厳重さ。ハンカチや目薬などは申告すれば持ち込めるらしい。

全員に注意事項の説明があったあと、順番に名前が呼ばれて試験室に案内される。サーバー室のようなほんのり暗くて緊張感のある部屋で、カメラの映像が映し出された多数のディスプレイにより担当者から監視されている。カンニングはおろか変な動きすら躊躇われる空間。

着席すると、隣席が座ってるのかすらわからない大きいパーテーション。目の前には、自分が受験する試験がセッティングされたPCと、メモ用紙に消しゴム付きのシャーペン。試験時間は、PCを操作して試験の画面に到達した段階からカウントされました。

 

午前試験は時間が余ったので30分くらい前に退席、午後試験は余った時間でギリギリまで見直していました。終わったら鉛筆とメモ用紙を部屋の入り口で返して、試験終了。

結果はプロメトリックのサイトで見れるのですが、驚くことに試験室を退室した瞬間にメールでURLが送信されています(笑)2回とも駅でドキドキしながら確認しましたが、午前試験は余裕、午後試験も点数は出てなかったものの割合から合格確定、優勝。




終わりに

こうやって振り返ってみると、右も左もわからないところからよくここまで来たなぁって。時間をかけて勉強することの大切さを身にしみました。

僕は研修(という名の自習)の時間が湯水のようにあったので非常に助かりましたが、仕事以外で自分の時間を割いて…となると気力も体力ももたなかったと思います。この期間中に合格できて良かったです。

 

以上、ここまでお読みいただきありがとうございました!