飽き性の頭の中

【オススメ参考書あり】基本情報技術者試験に合格するための勉強法を自分なりにまとめてみた

【オススメ参考書あり】基本情報技術者試験に合格するための勉強法を自分なりにまとめてみた

tawachan
tawachan

assets/20200309185651.jpg

こんにちは、今回は IoT と4月からの仕事の話を前回したので、それに関連して基本情報技術者試験の話をします。

2015 年の 8 月頃から勉強を始め、10 月の試験で合格できました(僕の場合かなり運要素があったのも事実だと思いますが…)。。机に座ってやるいわゆる”勉強”はほとんどしておらず、基本的にはとりあえずテキストや過去問を眺めることばかりしていました。あまり気合は入れずに、気が向いた時に少しやることを繰り返していたので、あまり精神的に辛いと感じることなく合格できました。要点を正しく押さえることで、比較的気軽に合格できると思うので、そのときのことを振り返っておきたいと思います。

そもそもなぜ基本情報技術者試験を受けたのか

この理由については簡単です。4月入社する会社に入社前に取得するようにいわれたからです。

残りの学生生活を、自分の好きな勉強/読書や写真撮影に費やしたいにもかかわらず、資格を取るようにいわれてモチベーションは皆無でした。ですが、資格の勉強を残しておくとそれはそれでめんどくさいので、手軽に資格をとってしまう方法を考えて実践したところ合格できたので、それをこれから書いていきます。

ちなみに、これは内容をきちんと身につけるものではなく、とりあえず合格することに重点を置いた内容になりますので、あらかじめご了承下さい。

学習の大まかな流れ

効率的に勉強していくにあたって、必要な内容を身につけるための全体像を見ておく必要があります

基本情報技術者試験は大きく分けて【午前】と【午後】の2種類にわかれています。それは文字とおり、午前と午後の2回に分けて行われるからです。そして、この両方の試験それぞれから 60 点以上を取れば合格となります。

内容としては、ざっくりいうと**【午前】が (1) 知識を問う問題であり、【午後】は (2) その知識の応用+ (3) プログラミング力を問う問題**となっています。

このように、基本情報技術者試験では大きく3つの問題が問われます。これを順に意識的に押さえていくことで、効率的に学習ができると思いますので、このロードマップを頭に入れておきましょう。

(1) 知識を問う問題

これは、さきほども言ったように、【午前】の試験に該当します。この知識も【A。テクノロジ系】、【B。マネジメント系】、【C。ストラテジ系】と分野ごとに3つに分かれています。

午前の問題は、独立した単問が 80 問あり、それらはすべて4択の選択式問題です。ですので、知っている/覚えていればそのまま簡単に答えられます。ですので、基本情報技術者試験の勉強をするにあたって基礎となる部分であると思ってください。これらをある程度頭に入れれば、この界隈の言葉と考え方に少し慣れることができると思います。

(2) 知識の応用力を問う問題

【午後】の問題は、複数の小問からなる大問 13 個で構成されていて、その中から7問を選ぶ形となっています。ただし、【情報セキュリティ】【データ構造とアルゴリズム】【ソフトウェア開発】という分野は解答必須です。

これらの 13 問を大きく2つに分けることができます。その1つ目が、この【知識の応用力を問う問題】です。知識の応用力を問うということは、午前の内容が頭に入っていれば、大抵答えることができます。ただし、午前中ではそれぞれが独立した単問であったのに対して、複数の小問からなる大問なので少し複雑となります。ですので、その分慣れが必要ですが、新たに覚える必要のある知識は基本的にないので恐れるに足りません。

さらに、この部分のいくつかは、苦手で理解が難しくとも選択しなければ点数に響かないので比較的遊びのある部分となります。

(3) プログラミング力を問う問題

プログラミング力を問う問題といっても、一からコーディングをさせられるわけではありません。しかし、書かれているプログラムがどのような意味なのかを理解できる必要はあります。ここが、一番難しく、さらに合格を左右するポイントであることを覚えておきましょう。

ここに該当する部分は【アルゴリズム】と【プログラミング】に分かれます。【アルゴリズム】とは、どの言語にも共通で使える、既述の流れに関する決まりだと思ってください。そして、【プログラミング】は、共通の流れを特定の言語での書き表し方を学ぶことだといえるでしょう。アルゴリズムは一般的な考え方ですが、実際に活用すると場合には、何かしらのプログラミング言語で記述する必要があります。それを実際に行う基礎を学ぶのが【プログラミング】になります。

【プログラミング】は、【C、COBOL、Java、アセンブラ言語、表計算ソフト】の中から選ぶことができますので、自分が使うものや勉強しやすいものを選んで勉強するとよいと思います。プログラミングをまったく勉強したことがない場合は、【表計算ソフト】を選ぶのがセオリーともいわれていますが、仕事で実際一番使う可能性のある【Java】を僕は選択しました。

勉強方法

勉強方法は、先ほどの (1) をひととおりやってから (2)、(3) を並行してやっていくという形が一番よいと思います。また、【(3) プログラミング力を問う問題】に関しては、理解することに時間がかかるので、余裕を見ておくとよいと思います。

assets/20200309180019.png

(1) 知識を問う問題

方法

早速、知識を問う問題の勉強方法ですが、とりあえずさらっとテキストを2周ほど読むことです。その上で、過去問を2回分くらいやれば、午前の問題は合格点が取れると思います。

ここでのポイントは腰を据えてやらないことです! 勉強と言って気構えると、勉強をしたくないという気持ちが強くなるので、横になりながら読み流すくらいの気持ちで読むと、気軽にテキストをじっくり時間をかけて読む必要はありません。とりあえず、2回ほどざっくり読んで、すぐに午前試験の過去問に移ることをお勧めします。

なぜかといいますと、さきほども言いましたが、午前の問題は単問です。過去問を勉強することがそのまま内容の暗記の作業になります。また、例年過去問と似た問題が出題される傾向があるので、過去問で出ている問題を押さえておいたほうが効率的です。

また、選択肢があるので、一度テキストで何となく見たことある、というくらいで意外と答えにたどり着くことができます。あとは過去問をやる中で少しずつ確実な記憶にしていきましょう。

過去問をやってできなかった問題の該当部分をテキストに線を引くという作業をしました。そうすると、自分の未だ理解できていない分野が浮き彫りになる上に、テキストに見返した時に、すぐ復習をできます。

テキスト

この部分の勉強で、僕が使用したテキストはこれになります。

いくつかのテキストを書店で見比べてみましたが、正直どのテキストでもよくまとまっていて、網羅されている内容もほぼ同じなので大丈夫だと思います。ですが、個人的にはイラストがついていて、抵抗が少ないように感じたのでこれにしました。

ちなみに内容に関しては例年大きく変わらないので、最新版ではなく少し古い年度のものを中古で購入したほうが費用を低くできるので、経済的だと思います。

そして、過去問はこれを使いました。

この過去問は大変お勧めです。過去問自体はインターネット上に公開されているのですが、重要なのはその解説です。さらに、この過去問でよかったところは、この本の内容の【PDF】をダウンロードできることです! ! この本は大きいので日ごろ持ち歩くにはかなり不便です。そこで PDF をタブレットに入れることで、気軽に見ることができるので、かなり助かりました。電子機器で書籍や書類を管理する方にはかなりいいポイントだと思います。

(2) 知識の応用力を問う問題

これは、過去問をやるに尽きます。知る限り練習問題等はないと思うので、午前の内容とある程度親しくなった段階で、午前の過去問と並行して、午後のこの部分の過去問は進めてもいいと思います。これをやることで、自分が理解していなかった分野が分かるので、またテキストに戻って理解し直すことにもつながるので、早めに過去問を始めることをお勧めします。

(3) プログラミング力を問う問題

この部分が一番難しく時間がかかります。ある程度 (1) の部分を網羅したら、早くこちらに移ることをお勧めします。

アルゴリズム

これは、プログラミングに親しみのない方にはかなり始めづらい内容だと思います。僕自身もかなり苦労しました。

このテキストを使用したのですが、難しくて半分理解したところで諦めました(笑)ですが、このおかげで、アルゴリズムにおける考え方をなんとなく理解できました。そうすれば、過去問も解きやすくなりました。アルゴリズムで書かれている内容は違ってもその仕組みは似ているので、基礎を知っているとだいぶ違ってくるので、それでも本を読んでおくことは重要だと思います。ですが、すべてを理解しなければ合格できないわけでもないようです。

ちなみに、このテキストはもう最新版が出ておらず、単純に価格面で選んだので、他にも良さそうなのがありましたら、そちらでもよいと思います。

※ 追記:最新版が出ていたようです!

  プログラミング

これは、選んだ言語によるとしかいえないので、ここでは僕が選んだ Java についてのみ言及します。

プログラミングをやったことない人にとっては、表計算がセオリーなのですが仕事で一番使う重要な部分だと思い、敢えて Java を選びました。さらに、試験に合格するためではなく、せっかくならある程度理解しようと思い、ここでは少し回り道をしました(これまでは比較的ラクをするための方法でしたが、この Java に関してだけ少し違います。効率よくサクッと終わらせるには、別のテキストをお勧めします)。

まず最初に、使用したテキストがこれです。

これは実際に PC 上でソフトウェアを動かしながらやるものなので、楽しみながら作業をできます。内容は本当に何もわからない段階から書かれているので、根気強く取り組めば3日ほどですべておらわせることができるので、Java と仲良くなるにはかなりお勧めです。

しかし! 、これを終えた上で過去問を見ると、まったくわかりません(笑)これ以外の分野であれば、ある程度分かるので、過去問をやり込むことで徐々に勉強できるのですが、Java に関しては何がわからないのかもよくわかりませんでした。

それは、オブジェクト指向の言語特有の概念が入門編には書かれていないからでした(笑)ですので、この次のテキストも購入しました。

しかし、僕の場合は時間がなかったのでネットで検索して理解してなんとか過去問を理解する形となってしまいました。ですので、Java をきちんと理解して、問題も解けるようにするには、上の2冊をきちんと終わらせることがよいと思います。

まとめ

このように勉強していけば、合格に近づいていくと思います。僕も試験だけでなく、実際に活用して IoT 社会への流れに関わっていけるように勉強を続けていきたいと思います。仕事柄もあって嫌でも使うことになるので(涙)、みなさん一緒に頑張っていきましょう!