関数すら苦手だった私が基本情報に合格した勉強法〜後編〜

前回は、比較的スムーズに午前対策を進め、試験当日、無事に合格基準点を超えたところまでご説明しました。後編では、午後問題の壁にぶち当たってからどう克服していったのか書いていきたいと思います。

アルゴリズムの壁、登場

前回立てたスケジュール通り進めていた(午前テキスト復習→表計算テキスト1周→過去問)ところ、表計算テキストを終えようとしたタイミングで思わぬ壁にぶち当たります。関数は理解出来るようになったものの、テキストの終盤に解説されていたマクロがさっぱりわからないのです。他にも出来ないものがあるなら対策しようと思い、一度午後問題の過去問を解いて現状を把握することにしました。

【結果】
43/100点(合格基準点は60点)
→内訳はこんな感じ…
・セキュリティ、ネットワーク、ソフトウェア設計、プロジェクトマネジメント、経営戦略:43/60点
・アルゴリズム、表計算:0/40点

えっ👀 0点…0点…0点…
表計算だけでなくアルゴリズムも全然わかってない…それに解説を読んでもわからない…😥 これは基本を理解することが必要と判断し、追加でアルゴリズムのテキストを購入しました。

基本情報技術者試験のアルゴリズム問題がちゃんと解ける本 第2版
→午前の計算問題対策に使っていたWebサイトがとてもわかりやすく、そのサイト主の著書だったので間違いないと思い購入しました。そしてスケジュールを引き直します。

・アルゴリズムテキスト2周(10日間)
・アルゴリズムと表計算のみ過去問を解く(7日間)
・過去問の全体を通して解く(試験直前まで)
・試験日を1週間後ろ倒しにする

アルゴリズムとお友達になるまでの道のり

アルゴリズムのテキストを進めていくと、様々な壁にぶち当たりました。トレースが出来ない、変数に何の値が入っているのかわからない、文章で書かれた条件は理解できるのにループの繰り返し条件の表記になった途端わからなくなる、問題全体を理解しようと思うと1問解くのに1時間以上かかる(試験本番は30分程度で解く必要あり)、などなど。

テキストの著者である矢沢久雄氏は、午後問題は時間との戦いになるので勉強する際も時間を意識する習慣を持とうと仰せですが、あまりに多くの壁にぶち当たっていた私は、まずは時間を気にせず理解することに集中することとしました。

そうしてテキスト2周目に入った頃から、解説を見なくても自分でトレース出来るようになり、間違えてもなぜ間違えたのか理解出来るようになり、変数に何の値が入っているかメモを取りながら読み進める習慣がつき、やっとアルゴリズムがわかるようになってきました…!!

テキスト2周目を終えてアルゴリズムと表計算の過去問を久しぶりに解くと、なんと問題の意味や選択肢の絞り方がわかるようになっているではないですか…!!むしろマクロはプログラムが短い分、簡単に思えるようになっていました!!時間も30分程度あれば解けるようになりました!!矢沢氏、素晴らしいテキストを作成いただきありがとうございます😭

📅 壁を乗り越えている間に3ヶ月目突入

アルゴリズムがわかれば、もう問題に慣れるのみです。試験当日は、初見の選択問題から回答する問題を選ぶ必要があります。当日迷っていては制限時間内に全問解くことは出来ないので、選択する問題、しない問題をあらかじめ決めておくことが必要です。私は2進数に苦手意識があるのでハードウェア系の問題はパス、SQLも試験までに覚えるのは厳しいと考えパスすることにしました。過去問を解くときもこの2つの問題は解かずに放置していました。

午後試験当日

時間が許す限り過去問を解いて、いよいよ午後試験当日!試験に受かるコツは最後まで足掻くこと、と尊敬する矢沢氏がおっしゃっていたので電車の中でテキストを見返し、会場に着いてからもギリギリまで関数の復習などしていました。ここまで166時間も勉強したんだから大丈夫!受かる!と自分に言い聞かせて受験し、無事に7割正解することが出来ました。(合格基準点は60点)

ホッとすると同時に、素晴らしいテキストや試験対策サイトを作成いただいた矢沢氏、過去問を丁寧に解説されている基本情報技術者試験ドットコム、受験のきっかけとなった師匠などさまざまな方へ感謝の気持ちが溢れました。少し大げさかもしれませんが、試験に受かってこんなに人に感謝した経験はありませんでした。

合格後、変化したこと

いろいろな期待を抱いて(前編参照)試験を受けましたが、合格してみて実際どうだったかを振り返りたいと思います。

 1, 関数を組めるようになった

もともとはSUM/AVEが自力で書けるレベルだったので、ちょっと入り組んだことをしたい場合はググりにググってなんとか出来ることもあるけど、だいたい出来ないという状況でした。今は、やりたいことに対して少しググれば関数を組むことが出来ます。先日、実際の業務でこんな改善をしました。

スプレッドシートで作られた資産管理台帳と入退社マスタという2つのシートがあります。資産管理台帳には貸与PCを誰が使っているかを表す「使用者」の欄があり、一方、入退社マスタには、入社者に割り当てられた「PC番号」欄があり、それらは一致している必要があります。しかし、手入力をしているため更新忘れなどで不整合が起きてしまい、どちらの情報が正しいのか突合しなければならないという手間が発生していました。

そこで、資産管理台帳に使用者名を入力すれば、自動的に入退社マスタの「PC番号」欄に貸与されたPC番号が入るように以下の関数を組みました。

=iferror(vlookup(trim("氏名が入っているセル"),IMPORTRANGE("資産管理台帳のURL","資産管理台帳のシート!セル範囲を指定"),x,false),"未割り当て")

4つの関数を使っていますが、それぞれの役割は以下です。
・iferror関数→trueならPC番号、falseなら「未割り当て」と表示させる
・vlookup関数→資産管理台帳から該当入社者のPC番号を取ってくる
・trim関数→氏名の前後にスペースがある場合、削除する
・IMPORTRANGE関数→別シートの値を取り込む

これは、「スプレッドシート 別シート 取り込む」などとググって10分程度で書くことが出来ました。以前の私なら到底出来なかったことです。自分で書いてみて、想定通りの動きをした時はとても嬉しく達成感がありました。今後も、手作業で頑張っているものがあれば自動化を進めたいと思っています。

 2, 言語を習得したくなった

一度は挫折したプログラミング言語の習得ですが、アルゴリズムがわかってきたので今ならもっと理解出来るようになっているはずと思っています。初心者向けと言われているJavaScriptを習得したいと考えていて、progateで勉強を始めました。JavaScriptが書けるようになれば、GASなどのサービスを使って自動化することが出来ます。また、一つの言語を習得出来れば他の言語への応用がきくので、まずは一つ習得することが重要と考えています。

 3,  ステップアップするためのベースの知識がついた

なんとなくステップアップ出来そうと思って勉強を始めましたが、実際はステップアップするための第一歩が踏み出せたと思います。言語の習得にも繋がるし、例えばネットワークを極めたいと思った場合も基本情報で得た知識をもとに、更に深く学ぶことが可能です。結局、師匠が言っていた「ベースの知識がつく」ということは真実だったんだなと思い、尊敬の念が深まりました。

💡Tips

試験の運営はプロメトリック株式会社が委託されています。その影響で、注意した方がいい点が2つあるので書いておきます。

 1, 試験申込み初日はサーバーが落ちる

申込み開始日に申込もうとするとなかなか繋がりません。私は10時の申込開始と同時にチャレンジし始めて、実際に予約出来たのは16時でした。プロメトリックのアカウントを持っていない場合は、事前に作成してクレジットカードも登録しておくと良いと思います。途中の画面まで進んだもののその先に進めないという状況に陥ったので、初日にアカウント登録から始めるのはかなり大変だと思います。

 2, 試験当日に遅刻は許されない

受験票には試験開始時間と集合時間が記載されています。集合時間に1分でも遅れると試験を受けることが出来ません。私は基本情報を受ける前に情報セキュリティマネジメント試験を受けていて、同じプロメトリック社が運営していました。そしてその試験日、開始時間までに行けばいいと思って集合時間に遅れた私は受験することが出来ませんでした。たまたまその後の時間に空きがあったので予約変更していただけましたが、埋まっていれば別日に出直すことになります。基本情報の受験枠は結構埋まっているので、要注意です。

本当に時間にシビアなので、絶対に遅刻しないようお気をつけ下さい。対策をバッチリしていても試験を受けられないのでは残念すぎます。

以上、私の試験勉強記録でした。
基本情報ってどんな試験なのかな、興味あるなと思っている方の参考になると嬉しいです😊

この記事が気に入ったらサポートをしてみませんか?