基本情報技術者に合格した件と勉強方法について
こんばんは、webshiftです。
タイトルにもある通り、先日受験した「基本情報技術者試験」に無事合格することができました。(レベル2とはいえ、正直むっちゃうれしい)
そこで今回は、勉強法や試験当日といったあれこれについて書いていきたいと思います。
1. 勉強を始めたきっかけ
・春からエンジニアとして働くことになり、基礎知識を勉強したかったから
・個人的に尊敬する人が在学中に基本情報を取っており、なんだかそれにあこがれて(←ここ重要)
・ITパスポートの勉強はしてた
そこ重要かよ!と思うかもしれませんが、「なぜ受けるのか」は結構重要だと個人的には思ってます。私の場合、在学中に受けられるのは今回が最後のチャンスだったので、やる気十分に取り組むことができたと感じています。
2. ざっくりとした 基本情報の試験内容
・試験は、午前と午後があり、それぞれで60%以上を得点できれば合格
・午前は、四択問題が80問
・午後は、長文を読んで答える四択問題
分野ごとに大問があり、必須分野と選択分野に分かれている
※詳しい説明は、別で調べてみてください。
特に次回の令和2年春から午後がかなり変わるので注意が必要です。
午前はとにかく60%以上とればOK!分野ごとの問題数が実質決まっており、広くまんべんなく問われます。午後は長文だらけで時間が足りなくなると思います(実際私は試験時間最後までねばってました)。
そして午後の必須分野は、「情報セキュリティ」「アルゴリズム」「プログラミング」の3つです。しかもこの3つの必須分野の配点は全体の半分を超える(今回までは52%。次回以降は70%)ので、どれかでしくじると合格は遠いです……。逆に捉えるならば、そこをピンポイントでクリアすればいいということでもあり、広くまんべんなくの午前とは違うところです。
3. 勉強法
私はこの方の方法を非常に参考にさせていただきました。ありがとうございました。
【未経験】基本情報技術者試験に合格できる勉強法【合格体験記】 - Qiita
その上で、やったことを書くと、こんな感じ。
1. キタミ式を1周する
2. 午前の過去問をやる
3. キタミ式2周目
4. 過去問道場を解く
5. 午後対策をする
1つずつ見ていきましょう。
1. キタミ式を1周する
まずは知識を取り込むために、「キタミ式イラストIT塾 基本情報技術者」を一通り読みます。キタミ式では、基本情報で必要な知識を解説している本です。イラストがいっぱいで、仕組みの説明に重きをおいているので、理解を深めることができました。最初はぱっと見ゴチャゴチャしていることとか、本の分厚さに圧倒されますが、気にせず読みすすめるのが吉です。読み終えたらちゃんと分かるようになってます。
とにかく読んで、「こんなことを勉強するのか~~」と知ることができればOKです。できるだけ途中にある過去問をやってみましょう。分かんなかったら飛ばしてOKです。
とはいえ、いざ進めてみると、最初のn進数や2の補数で「うっ……頭が……」となっていたのは私です。数学は苦手です。そこで止まっている時間がもったいないので、つらいなら飛ばして進めましょう。ただし、その後に出てくる計算問題が「?」となるので、頃合いをみて戻ってくださいね。
※「2の補数による引き算」については、自分なりにまとめるとこんな感じになりましたので、良ければ参考に。
ここから --------------------------
2の補数は、足し算だけで引き算を行うのに必要な数の表し方。1の補数+1した数です。
ではなぜ2の補数を足せば引き算ができるのか?
試験では過程を問われないので、仕組みの理解は必須ではありません。ですがこのモヤモヤが私はとれず、スッキリしませんでした。というわけで、10進数でも似たようなことができるので計算してみました。例えばこんな感じ。
54 - 21
= 54 + (-21)
= 54 + (100 - 21) - 100
= 54 + 79 - 100
= 133 - 100
= 33
「21」を「79」と読みかえるのがいわゆる2の補数表現です。読みかえるときに100増やしたので、あとで100を引きます。こうすることで、引き算したときと同じ結果になります。ちなみに、1の補数表現だとこの場合、合わせて2ケタで表せる数「99」になる数なので、「21」→「78」ですね。+1すると「79」になるので、1の補数+1=2の補数も正しいようです。
でも、上の式では、足し算しかできないのと言っているのに引き算をしてますよね。
これは、実質同じことをしてますよ~というだけで、実際は違います(多分)。
実際は、2進数で行うので1の補数を作るのは、スイッチのON/OFFを反転するだけで可能(なのでしょう)。1の補数+1して2の補数にするのも、足し算ができるから可能。そして、最後の「-100」は、3ケタ目はなかったことにするという方法で行える(のでしょう)。
いろんなテクニックをつかって実現しているのが、2の補数を使った引き算!というわけなんですね!
(ここまで書いた私の気持ち:わかるんだろうか、分かってもらえただろうか!?)
ここまで --------------------------
2. 午前の過去問をやる
自分の場合は、まず「基本情報技術者 パーフェクトラーニング過去問題集」を解きました。この参考書は、左に問題、右に解説というレイアウトになっているので、勉強しやすかったです。
とにかく午前を3回分ぐらい解きます。この時、見開きごとに答え合わせして、解説を読んで理解を深めます。解説でも分かりにくいところは、キタミ式を読んで理解を深め直したりもします。このときに、小さなノートに用語を表にまとめたメモを書いたりして、自分の覚えたい内容を整理します。キタミ式は解説書であって暗記本ではないので、暗記するには向きません。なので自分なりに覚えたいことを集めた暗記本を作ることが大切です。手間はかかりますが、効果はあると思います。ここで作ったノートは、移動中などに何度も見ます。私は「OSI基本参照モデル」や「ポート番号リスト」、「真理値表」などなどを書いて、スキマ時間にぺらぺら見ていました。見やすいように小さいノート(作り方は付録参照)にするのがおすすめです。
▲ 字がとても汚いですが、
こんなノートを作っては見るようにしていました
3回ぐらいで正答率が60%超えてきたら、結構いい感じだと思います。ですが、当日60%だとひやひやするので、80%を目指して勉強していました。
3. キタミ式2周目
過去問を解いてみて、苦手だったりあやふやなところを重点的に読み込みます。ついでに、各章についている過去問も全部解いてみて、理解度を確認しましょう。(私はキタミ式に載ってる過去問が本試験に出たりして、やっててよかったと思いました)
読み込むときに、これは整理してたほうがいいなと思うことは、そう思ったときに小さいノートにまとめます。
4. 過去問道場を解く
ここからは「基本情報技術者過去問道場|基本情報技術者試験.com」を解きます。自分はテクノロジ分野の得点が低かったので、テクノロジだけに絞って解いていました。移動時間などスキマ時間にスマホで2問とか、そんな感じでやっていました。
アカウント登録すれば学習履歴↑も残るので、おすすめです。
基本情報は過去問が似たような形で出題されることが結構多いので、その対策にもなります。
5. 午後対策をする
実はここまでは午前対策!基本情報には午後があります。
普通は過去問を解くところからスタートだとは思いますが、過去問で午後の問題を見たときに長文の嵐(特にアルゴリズムは意味不明)で私は解く気になれませんでした。データベース(SQL)も表計算も意味不明です。
そうです、午前の手軽な四択問題に慣れると、午後は苦痛なのです。
そこで、「出るとこだけ!基本情報技術者[午後]」を買って取り組みました。この参考書は、よく出る順に分野が並んでおり、必要な知識説明、抜粋された演習問題、問題解説という流れで進むので、無理なく過去問を解くことができました。SSHはこの本の解説で初めて知りましたし、共通鍵・公開鍵の説明、SQLの文法説明などは非常に役立ちました。
この本で午後問題への恐怖を取り去ったあと、過去問を解きました。使ったのは午前でも紹介したパーフェクトラーニングです。解説がしっかりしているので助かりました。
プログラミング対策ですが、私は「表計算」を選択したので、基本情報で用いられる擬似言語の文法理解に時間を使いました。「表引き」と「相対」は似ているのに違うので注意が必要……などですね。こういうことも小さなノートにメモして、叩き込みました。
※表計算については、問題冊子に文法ルールが書かれているので、理解さえしていれば、なんとか解くことはできます。(なお時間は厳しい模様)
ちなみに、午後対策のポイントは、「初見殺しされるな!これは解ける!!と思い込むこと」です。
ここにきて根性論かよ!と思われるかもしれませんが、設問の幅が広すぎることと、午前よりも具体的なシチュエーションを設定した問題になるので、知らない用語とかがいっぱい出てきます。それを読んでいると、ああわかんねえー!!ってなるのですが、実は「ここで言うAとはBのことを指す」みたいな補足がちゃんとついてます。なので解けるようになっています。
なので解けない原因の1つは、ああ解けねえと思って諦めてしまうことです。逆に補足説明がないけど解くのに必要な知識は、覚えるべき知識なので午前対策と合わせて勉強しましょう。特にアルゴリズムは、文字や図を使ってありったけの説明をしてくれます。知らない手法の処理方法を、馴染みのない言葉で必死に説明してくれているので、最初は頭がパンクします。なので心が折れそうになりますが、粘り強く追っかければ解けるようになっています。でもあまりの意味不明さに動揺していると、落ち着いて文章が読めなくなるので、気持ちで負けないことが地味に重要なのです。
4. 試験当日
・前日は夜にいっぱい寝てください
・試験時間は、午前2.5h、午後2.5hで合わせて5h
・途中退室も可能(退室時間に制限あり)
・午前、時間に余裕あり、休むために途中退室
・午後、時間いっぱい解く(頭がふらふらになる)
基本情報は、試験開始時間が結構早いので、前日はちゃんと寝ましょう。
なぜなら寝坊しないのはもちろんですが、とにかく試験時間が長い!!からです。全力で問題を解く時間が最大5時間あります。私は、イスに座って5時間集中力MAXで勉強することはあまりなかったので、超疲れました。
特に午後は、お昼ごはん食べて眠い、寝不足で文章を読んでも内容が入ってこない、そして時間がなくて焦る、ということで悪条件が揃いやすいので、とにかく寝るのが大切です。
※ちなみに私は、緊張のあまり眠れず3時間睡眠で挑みました。当然のように朝起きてからリポDを飲み、その分試験会場にはかなり早くに到着して、会場では寝て体力(脳の思考能力?)を回復させていました。こんなことにはならないようにしましょう。
実際解いてみると午前は比較的時間が余りました。なので途中退室して早めのお昼からのやっぱり昼寝で体力回復。午後は、詰まった問題があり、時間ギリギリまでねばって終わりました。
5. 結果
というわけで合格することができました。次回から、午後の問題構成が変わるので、問題選択などについて詳しく書きませんでしたが、選択した問題は画像の通りです。
午前の問題は、今回から数学の問題を増やすことになっていたので、数学苦手な私にとって、初見殺しの問題が多かったです。が、午後対策でも述べたように、「いや自分には解けるはずだ!!」という思い込みで、難しそうな見た目の数学問題を解き進めることで、どうにかなりました。とはいえ試験直前に、数学の新傾向ついて過去問をベースに出題予想しているサイトを見ていたので、それに結構救われたところもありました。地道な対策と、解ける!という思い込み。この2つが大切です。
6. おわりに
長々と書いてしまいましたが、数学が苦手な私でも基本情報に合格することはができました。今は、応用情報技術者試験の勉強をしています。応用情報技術者試験でも、基本情報で学んだことはベースになっているので、基本情報でしっかり勉強すればするほど、次に繋がる内容となっています。この記事が誰かのお役に立てていれば幸いです。お読みいただきありがとうございました。
(付録)小さなノートの作りかた
【買うもの】
・マルマン「ルーズリーフミニ 6mm横罫」(L1431)
・カール事務器「ルーズリング 10mm」(LR-3010)
・無印良品「インデックス A5」
【用意するもの】
・ハサミ
・鉛筆など
【作りかた】
・インデックスの穴の位置に合わせて、上からルーズリーフミニを重ねる
・ルーズリーフミニよりも、1mm~2mmぐらい外側にインデックスに鉛筆などで線を引く
・線に合わせて、インデックスをハサミやカッターで切る
・これを2回行い、表紙と裏表紙にする
・ルーズリングを9穴分のところでカットする
・カットしたルーズリングを手で開く
・表紙のインデックス、ルーズリーフミニ70枚程度、裏表紙のインデックスの順になるように、ルーズリングに差し込む
・ノートの完成!