こんにちは、今回はIoTと4月からの仕事の話を前回したので、それに関連して基本情報技術者試験の話をします。
2015年の8月頃から勉強を始め、10月の試験で合格することができました(僕の場合かなり運要素があったのも事実だと思いますが...。)。机に座ってやるいわゆる”勉強”はほとんどしておらず、基本的にはとりあえずテキストや過去問を眺めることばかりしていました。あまり気合は入れずに、気が向いた時に少しやることを繰り返していたので、あまり精神的に辛いと感じることなく合格することができました。要点を正しく押さえることで、比較的気軽に合格することができると思うので、そのときのことを振り返っておきたいと思います。
そもそもなぜ基本情報技術者試験を受けたのか
この理由については簡単です。4月入社する会社に入社前に取得するように言われたからです。
残りの学生生活を、自分の好きな勉強/読書や写真撮影に費やしたいにも関わらず、資格を取るように言われてモチベーションは皆無でした。ですが、資格の勉強を残しておくとそれはそれでめんどくさいので、手軽に資格をとってしまう方法を考えて実践したところ合格できたので、それをこれから書いていきます。
ちなみに、これは内容をきちんと身につけるものではなく、とりあえず合格することに重点を置いた内容になりますので、予めご了承下さい。
学習の大まかな流れ
効率的に勉強していくにあたって、必要な内容を身につけるための全体像を見ておく必要があります。
基本情報技術者試験は大きく分けて【午前】と【午後】の2種類にわかれています。それは文字通り、午前と午後の2回に分けて行われるからです。そして、この両方の試験それぞれから60点以上を取れば合格となります。
内容としては、ざっくり言うと【午前】が①知識を問う問題であり、【午後】は②その知識の応用+③プログラミング力を問う問題となっています。
このように、基本情報技術者試験では大きく3つの問題が問われます。これを順に意識的に押さえていくことで、効率的に学習ができると思いますので、このロードマップを頭に入れておきましょう。
①知識を問う問題
これは、先程も言ったように、【午前】の試験に該当します。この知識も【A.テクノロジ系】、【B.マネジメント系】、【C.ストラテジ系】と分野ごとに3つに分かれています。
午前の問題は、独立した単問が80問あり、それらは全て4択の選択式問題です。ですので、知っている/覚えていればそのまま簡単に答えられます。ですので、基本情報技術者試験の勉強をするにあたって基礎となる部分であると思ってください。これらをある程度頭に入れれば、この界隈の言葉と考え方に少し慣れることができると思います。
②知識の応用力を問う問題
【午後】の問題は、複数の小問からなる大問13個で構成されていて、その中から7問を選ぶ形となっています。ただし、【情報セキュリティ】【データ構造とアルゴリズム】【ソフトウェア開発】という分野は解答必須です。
これらの13問を大きく2つに分けることができます。その1つ目が、この【知識の応用力を問う問題】です。知識の応用力を問うということは、午前の内容が頭に入っていれば、大抵答えることができます。ただし、午前中ではそれぞれが独立した単問であったのに対して、複数の小問からなる大問なので少し複雑となります。ですので、その分慣れが必要ですが、新たに覚える必要のある知識は基本的にないので恐れるに足りません。
さらに、この部分の幾つかは、苦手で理解が難しくとも選択しなければ点数に響かないので比較的遊びのある部分となります。
③プログラミング力を問う問題
プログラミング力を問う問題といっても、一からコーディングをさせられるわけではありません。しかし、書かれているプログラムがどのような意味なのかを理解できる必要はあります。ここが、一番難しく、さらに合格を左右するポイントであることを覚えておきましょう。
ここに該当する部分は【アルゴリズム】と【プログラミング】に分かれます。【アルゴリズム】とは、どの言語にも共通で使える、既述の流れに関する決まりだと思ってください。そして、【プログラミング】は、共通の流れを特定の言語での書き表し方を学ぶことだと言えるでしょう。アルゴリズムは一般的な考え方ですが、実際に活用すると場合には、何かしらのプログラミング言語で記述する必要があります。それを実際に行う基礎を学ぶのが【プログラミング】になります。
【プログラミング】は、【C、COBOL、Java、アセンブラ言語、表計算ソフト】の中から選ぶことができますので、自分が使うものや勉強しやすいものを選んで勉強すると良いと思います。プログラミングを全く勉強したことがない場合は、【表計算ソフト】を選ぶのがセオリーとも言われていますが、仕事で実際一番使う可能性のある【Java】を僕は選択しました。
勉強方法
勉強方法は、先ほどの①をひと通りやってから②、③を並行してやっていくという形が一番良いと思います。また、【③プログラミング力を問う問題】に関しては、理解することに時間がかかるので、余裕を見ておくと良いと思います。
①知識を問う問題
方法
早速、知識を問う問題の勉強方法ですが、とりあえずさらっとテキストを2周ほど読むことです。その上で、過去問を2回分くらいやれば、午前の問題は合格点が取れると思います。
ここでのポイントは腰を据えてやらないことです!勉強と言って気構えると、勉強をしたくないという気持ちが強くなるので、横になりながら読み流すくらいの気持ちで読むと、気軽にテキストをじっくり時間をかけて読む必要はありません。とりあえず、2回ほどざっくり読んで、すぐに午前試験の過去問に移ることをおすすめします。
なぜかといいますと、先程も言いましたが、午前の問題は単問です。過去問を勉強することがそのまま内容の暗記の作業になります。また、例年過去問と似た問題が出題される傾向があるので、過去問で出ている問題を押さえておいたほうが効率的です。
また、選択肢があるので、一度テキストで何となく見たことある、というくらいで意外と答えにたどり着くことができます。あとは過去問をやる中で少しずつ確実な記憶にしていきましょう。
過去問をやってできなかった問題の該当部分をテキストに線を引くという作業をしました。そうすると、自分の未だ理解できていない分野が浮き彫りになる上に、テキストに見返した時に、すぐ復習をすることができます。
テキスト
この部分の勉強で、僕が使用したテキストはこれになります。

平成29年度 イメージ&クレバー方式でよくわかる栢木先生の基本情報技術者教室 (情報処理技術者試験)
- 作者: 栢木厚
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/14
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
幾つかのテキストを書店で見比べてみましたが、正直どのテキストでもよくまとまっていて、網羅されている内容もほぼ同じなので大丈夫だと思います。ですが、個人的にはイラストがついていて、抵抗が少ないように感じたのでこれにしました。
ちなみに内容に関しては例年大きく変わらないので、最新版ではなく少し古い年度のものを中古で購入したほうが費用を低くすることができるので、経済的だと思います。
そして、過去問はこれを使いました。

(全文PDF・単語帳アプリ付) かんたん合格 基本情報技術者教科書 平成29年度 (2017年度)
- 作者: 五十嵐順子,ラーニング編集部
- 出版社/メーカー: インプレス
- 発売日: 2016/11/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
この過去問は大変おすすめです。過去問自体はインターネット上に公開されているのですが、重要なのはその解説です。さらに、この過去問でよかったところは、この本の内容の【PDF】をダウンロードすることができることです!!この本は大きいので日ごろ持ち歩くにはかなり不便です。そこでPDFをタブレットに入れることで、気軽に見ることができるので、かなり助かりました。電子機器で書籍や書類を管理する方にはかなりいいポイントだと思います。
②知識の応用力を問う問題
これは、過去問をやるに尽きます。知る限り練習問題等はないと思うので、午前の内容とある程度親しくなった段階で、午前の過去問と並行して、午後のこの部分の過去問は進めてもいいと思います。これをやることで、自分が理解していなかった分野が分かるので、またテキストに戻って理解し直すことにもつながるので、早めに過去問を始めることをおすすめします。
③プログラミング力を問う問題
この部分が一番難しく時間がかかります。ある程度①の部分を網羅したら、早くこちらに移ることをおすすめします。
アルゴリズム
これは、プログラミングに親しみのない方にはかなり始めづらい内容だと思います。僕自身もかなり苦労しました。

福嶋先生の基本情報技術者 集中ゼミ 午後・アルゴリズム編 2013年版
- 作者: 福嶋宏訓
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2012/11/23
- メディア: 単行本(ソフトカバー)
- クリック: 1回
- この商品を含むブログを見る
このテキストを使用したのですが、難しくて半分理解したところで諦めました(笑)ですが、このおかげで、アルゴリズムにおける考え方をなんとなく理解することができました。そうすれば、過去問も解きやすくなりました。アルゴリズムで書かれている内容は違ってもその仕組みは似ているので、基礎を知っているとだいぶ違ってくるので、それでも本を読んでおくことは重要だと思います。ですが、すべてを理解しなければ合格できないわけでもないようです。
ちなみに、このテキストはもう最新版が出ておらず、単純に価格面で選んだので、他にも良さそうなのがありましたら、そちらでも良いと思います。
※ 追記:最新版が出ていたようです!
![うかる! 基本情報技術者 [午後・アルゴリズム編] 2017年版 福嶋先生の集中ゼミ うかる! 基本情報技術者 [午後・アルゴリズム編] 2017年版 福嶋先生の集中ゼミ](https://images-fe.ssl-images-amazon.com/images/I/61M79w-DcvL._SL160_.jpg)
うかる! 基本情報技術者 [午後・アルゴリズム編] 2017年版 福嶋先生の集中ゼミ
- 作者: 福嶋宏訓
- 出版社/メーカー: 日本経済新聞出版社
- 発売日: 2016/11/17
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
プログラミング
これは、選んだ言語によるとしか言えないので、ここでは僕が選んだJavaについてのみ言及します。
プログラミングをやったことない人にとっては、表計算がセオリーなのですが仕事で一番使う重要な部分だと思い、敢えてJavaを選びました。さらに、試験に合格するためではなく、せっかくならある程度理解しようと思い、ここでは少し回り道をしました。(これまでは比較的ラクをするための方法でしたが、このJavaに関してだけ少し違います。効率よくサクッと終わらせるには、別のテキストをおすすめします。)
まず最初に、使用したテキストがこれです。
これは実際にPC上でソフトウェアを動かしながらやるものなので、楽しみながら作業をすることができます。内容は本当に何も知らない段階から書かれているので、根気強く取り組めば3日ほどですべておらわせることができるので、Javaと仲良くなるにはかなりおすすめです。
しかし!、これを終えた上で過去問を見ると、全くわかりません(笑)これ以外の分野であれば、ある程度分かるので、過去問をやり込むことで徐々に勉強できるのですが、Javaに関しては何がわからないのかもよくわかりませんでした。
それは、オブジェクト指向の言語特有の概念が入門編には書かれていないからでした(笑)ですので、この次のテキストも購入しました。
しかし、僕の場合は時間がなかったのでネットで検索して理解してなんとか過去問を理解する形となってしまいました。ですので、Javaをきちんと理解して、問題も解けるようにするには、上の2冊をきちんと終わらせることが良いと思います。
まとめ
このように勉強していけば、合格に近づいていくと思います。僕も試験だけでなく、実際に活用してIoT社会への流れに関わっていけるように勉強を続けていきたいと思います。仕事柄もあって嫌でも使うことになるので(涙)、みなさん一緒に頑張っていきましょう!