🦔

エンジニア3年目にして基本情報技術者試験を受けてみた

2023/11/19に公開

エンジニアになってから丸3年の節目を目前として、今さらながら基本情報技術者資格を取得したので、所感や学習法をまとめておきます。
私と同じように受けようか迷っている方の参考になれば幸いです。

なぜ今(人によっては今更)受けたのか

私は文系・知識ゼロから最低限の学習でエンジニアに転職し、業務で使うスキルのキャッチアップに学習時間の殆どを費やしてきました。
そのためCSの基礎と呼べるような知識が欠落しており、そのことに追い目を感じていました。
周りがネットワークとかハードウェアの話をしていても良く分からない。
でも最低限の教養は身につけておきたいし、知らないことによる損失は避けたい。
であれば、明確な達成基準があり広く浅く学べる基本情報技術者の勉強をするのが良いと考えました。

一度目は不合格だった話

恥ずかしながら1度不合格となり、2回目で合格しました。

科目A 科目B
1度目 775点 535点
2度目 790点 935点

1度目は科目Bをノー勉で挑戦したところ撃沈。
2度目は反省して対策をしました。科目Bは満点を取れたと思っていたのに悔しい。

勉強は1度目も2度目もそれぞれ40時間ほどしました。
合計80時間かけたわけですが、上手く学習の配分が出来れば50時間ほどで足りる気がします。

ちなみに受験時の私のレベルはこんな感じでした。

  • 普通の開発エンジニア(プログラマー)
  • 業務に関わる部分は理解している(データベース、基本的なセキュリティ知識等)
  • Paizaのようなコーディング問題は好きだが、アルゴリズムの知識は無い(ソートの種類とか)
  • 踏み込んだハードウェア知識は無い(CPUやメモリの概念は分かるけど、レジスタとかパイプライン方式とかは初耳)
  • ストラテジーやマネジメントの知識はほぼ無い

受けて良かったか

良かったです。
狙い通り広く浅く理解が進んだだけでなく、自分の理解の足りない箇所も認識できました。

  • アルゴリズムの知識が圧倒的に不足していたが、2度目の受験までにがっつり理解を深められた
  • セキュリティやデータベースの理解も足りていないので、今後強化する

以上、ざっと感想でした。
ここからは私が学習した手順を紹介します。

科目A

  1. 【基本情報技術者試験YouTuber】すーさんでインプット
  2. 基本情報技術者過去問道場でアウトプット

【基本情報技術者試験YouTuber】すーさん

https://www.youtube.com/@kihonzyouhou

インプットはこのチャンネル一択と言い切れる素晴らしい教材です。
出題範囲を一通り網羅しており、観ているだけで驚くほど理解が進みます。
動画は全体で20時間ほどでしたが、2倍速でも苦労しないと思います。

書籍での学習で苦しんでいる方は試してみてください。

基本情報技術者過去問道場

https://www.fe-siken.com/fekakomon.php

無料で過去問を解ける最高のアウトプット用サイトです。
ある程度インプット後は、ここでひたすらアプトプットしました。

科目Aは一気に進めず復習しながらやるのがお勧め

試験は範囲が広いので、一気に学習を進めても消化不良を起こしそうです。
私は以下のように学習しました。

  1. すーさんのYouTubeで1つのジャンルを通して観る(例:ネットワーク)
  2. 過去問道場でそのジャンルだけ選択して繰り返し解く
  3. 次のジャンルに進み、1と2を繰り返す
  4. すーさんのYouTubeではジャンルごとにまとめ動画が作成されているので、適宜まとめ動画だけ復習する(翌日、翌々日、1週間後とか)

他に助言できるとすれば、以下2つでしょうか。

  • ストラテジ・マネジメント系の問題は業務と関連性は低いかもしれませんが、科目Aの3割を占めるので無視できないです。ただの暗記なのでやっちゃいましょう。
  • 計算問題(n進数の変換とか)は正直捨てて問題ないです。出題数が少ないので他で充分賄えます。

科目B

  1. アルゴリズム図鑑でインプット
  2. 基本情報技術者【科目B】アルゴリズム×擬似言語 トレーニングブックでアウトプット
  3. 令和05年【下期】基本情報技術者 パーフェクトラーニング過去問題集で問題演習

科目Bの全20問中16問を占めるアルゴリズム問題は、有名なアルゴリズムを使って解く問題が殆どでした。
そのため基本的なアルゴリズムを覚えてしまうと難易度が劇的に下がります。

アルゴリズム図鑑

https://www.amazon.co.jp/アルゴリズム図鑑-増補改訂版-絵で見てわかる33のアルゴリズム-石田-保輝/dp/479817243X/ref=sr_1_1?__mk_ja_JP=カタカナ&keywords=アルゴリズム図鑑&qid=1700390753&sr=8-1

データ構造、ソートの種類、探索手法、暗号化方式など基本的なアルゴリズムを網羅しています。
インプットはこの1冊で充分です。
iPhone・Androidともに同名アプリ「アルゴリズム図鑑」があるのですが、そちらの方が安価かつアニメーションがあって分かりやすいのでお勧めです。

基本情報技術者【科目B】アルゴリズム×擬似言語 トレーニングブック

https://www.amazon.co.jp/基本情報技術者【科目B】アルゴリズム×擬似言語-トレーニングブック-大滝-みや子/dp/4297135191/ref=sr_1_2?__mk_ja_JP=カタカナ&crid=15ZFOQL4UXY82&keywords=アルゴリズム+擬似&qid=1700391526&sprefix=アルゴリズム+擬似%2Caps%2C195&sr=8-2

様々なアルゴリズムを元に問題を解く教材ですが、上述のアルゴリズム図鑑で学んだことを元にアウトプットする教材としてぴったりでした。
正直ここまでで科目Bは合格点を出せると思います。
ただ試験レベルの問題の数は多く無いので、不安な方は次の教材をやると良いです。

令和05年【下期】基本情報技術者 パーフェクトラーニング過去問題集

https://www.amazon.co.jp/令和05年【下期】基本情報技術者-パーフェクトラーニング過去問題集-山本三雄/dp/429713523X/ref=sr_1_1?crid=1VARQYON3DY62&keywords=基本情報+パーフェクトラーニング&qid=1700391713&sprefix=基本情報 パーフェ%2Caps%2C202&sr=8-1

この本はオリジナル問題による3回分の模試が載っており、試験前の問題演習として素晴らしかったです。科目Aは解いていないので分かりません。
ここまでやれば対策の量としては充分です。

トレースは必要か

科目Bのアルゴリズム問題の解き方として、トレースは必須という意見がよくあります。
この試験におけるトレースとは、適当な値でプログラムを実行したと想定し、処理の流れを追っていく手法です。
変数に代入されている値などは都度メモ等しつつ、ループや条件分岐を辿って最終的な正解を導き出します。

ですが私はトレースは不要だと感じました。
殆どの問題は既存の有名なアルゴリズムに基づいてプログラムを記述しているため、そのアルゴリズムを知ってさえいれば、プログラムを読めばそれが何をしたいのかが分かり、自然と正解が分かります。
1度目はぶっつけ本番のトレースで盛大に失敗しましたが、2度目の受験で合格した際、トレースしたのは1問だけでした。

GitHubで編集を提案

Discussion