基本情報技術者試験の攻略法
基本情報技術者試験に合格するためのコツを私なりに記載する。私自身恥ずかしながらこの資格を取得したのはごく最近のことである。そもそも三十代も後半になるまで資格をとる気すら起きなかった。そこから心機一転勉強して9割近い点数で一発合格したのであるが、「どうやったらとれるのか」とか「困っている」のような相談を結構されるので、記事に書いておく。
モチベーションの話、考え方の話は無償で提供する。試験の点数を上げるための具体的な手法についてだけは私の本業に関わっており、タダで配るのは筋が通らなくなるため有料とする。そこまでの記事を読んで必要なら購入してほしい。目次を読んで書いてあることが想像できるレベルであれば買う必要もないだろう。他、記事内で紹介する書籍にはAmazonアフィリエイトを張ってある。
なお筆者は基本情報技術者取得後に応用情報技術者試験の令和二年春の試験中止を経て秋に受験済である。こんな記事を書いておいて落ちてしまったら指をさして笑ってほしい。取れたら次は高度をとるし、他にもクラウド系のベンダー資格など今更ながら勉強中である。
なぜとるのか
勉強法や内容以前の問題として、ここがクリアになってないと勉強は進まないし高確率で落ちる。最近の社会の流れとして意識が高い人を揶揄するようになってきているが、最低限の意識というのは勉強する上で結構大事な要素である。
「取ったところで給料が上がらない」
「こんな技術仕事では使わない」
「簡単すぎて受ける必然性がない」
「仕事が忙しすぎて時間がない」
やらないで済ます理由はいくらでもある。
私自身、この年齢になるまで受けないでいたのも似たような理由だ。自分にも責があったとはいえ搾取され続けており、勉強する時間もなく、とったところで先が見えなかった。
基本情報技術者に限らずIPAの試験が「午前0:起床試験」などと揶揄されることがあり、さらに「本試験で担保されるのは朝起きれることだけである」という冗談もあったりするが、これも要するに受けるモチベーションが低いために起きる事象である。本気で受かる気があるのであれば、寝坊する人間はそうそういない。国立大学志望者が大学入試センター試験を寝坊するのか、みたいな話である。
もう一つ、取得していない人間がこういう軽口をたたくのはやめた方がいい。できる人間と混ざってそういうことを言ってると自分もできる人間になったかのような錯覚に陥るのでついつい乗りがちである。しかし、それは取ってから言うべき話である。とってもいない人間がそういうことを言うのは持っている人間に失礼な上に正直ダサい。
話を戻して「なぜとるのか」はしょせん内面の問題であり、読者の内発的動機づけを私がこの記事だけで強化するのは不可能ではある。ただ私がなぜとろうと思ったのか、を書くと「他人からどう見えるか」を変えるためである。
この業界はとにかく口だけ野郎が多い。どういう会社でも必ず「人当たりをよくして技術について知ったように語り、持ち前のコミュ力で立ち回って現場で生き延びるが技術はない」といった層が跋扈している。実績で判断しようと思えばアレオレするし、経歴書は偽装する。そんな中で自分が最低限技術があること、勉強をし続けていることを担保してくれるのは資格を取るのが一番の方法だ。
確かに資格を取ったところで技術は担保されない。しかし、資格すら取れない人間は信用もできない。といったところである。私自身この辺りの感覚を軽く見ていたが、採用する側の立場に自分がなったときにかなり気になるようになったので、基本情報に限らず資格は取っておくべきであると考えるようになった。私が資格を取ったのも「他人からの評価を担保するため」もあるが、もう一つ「若手に資格取得をさせるため」というのがあった。自分がちゃんととらないと人には言えないからだ。
その中でも特に基本情報技術者試験をなぜとるべきかについて私の意見を言うと、「範囲が広範囲だから」となる。システムエンジニアが知っておくべき情報がある程度網羅されているため、これが取れていればある程度必要なことを知っている担保となる。
基本情報技術者試験は「簡単」ではない
客観的に語っている人があまりにもいないので先にクギをさす。範囲が広すぎるため、決して簡単ではない。他にも「応用情報技術者試験のほうが簡単だよ」という言い回しもあるが、これも嘘とまではいわないが主観だ。
基本情報技術者試験が簡単に取れるのは、専門知識を既に持っている人間か仕事でみっちりやっている人間である。ゼロベースからとるのは恥を恐れずに言うと正直かなり難しかった。
「簡単」に取れるという向きの未取得者はこんなクソ記事を読んでいないでさっさととってきた方が社内評価の足しになると思われるので以下は読まなくていい。
私の話の具体的な根拠を挙げる。以下がIPAから発表されている出題範囲である。
https://www.jitec.ipa.go.jp/1_04hanni_sukiru/_index_hanni_skill.html
ページ内にリンクが張ってあるPDFを見てほしいのだが、基本情報技術者試験の午前の出題範囲だけで記事の執筆日現在で8ページに及んでいる。午後問と合わせるともっと範囲が広い。これをすべて網羅するのは時間もかかるし、参考書を一冊読むだけでは絶対に足りない。
https://amzn.to/2IhZQEB
これが私が実際に使った参考書で、システムエンジニアとしての実務経験があるのであればこれで午前の範囲はある程度感覚がつかめる。図解もあり非常に親切である。しかし、知識がない人間がこれを読んだところでとれるのは3割がいいところである。なぜなら試験範囲が全く網羅されていないからだ。具体的な点数のあたりのつけ方については有料部分でもう少し解説はするが、とにかく足りない。
例えばの話、この参考書だけではアルゴリズム問題が解けるようにならない。自力で何らかの言語で(コピペだけではなく)ロジックまで組めるのであれば、数問解いているうちにピンとくるのだが、知識がない状態から点を取るのは至難の業である。疑似言語ゆえにちょっと癖があったり読みづらかったりする上に午後問でも必須問題に出てくるので、きちんと勉強をする必要がある。
私はギリギリ試験当日になって急に読めるようになったが、なぜ読めるようになったのか正直よくわかってない。そういう奇跡が起こる人間はそうそういないと思われるので、腰を据えて勉強をした方がいい。
https://amzn.to/38KrCEz
試験の前に見つけられなかったのが痛恨ではあるが、試験後に本屋でいい本を探していて見つけたので紹介はしておく。何度見てもピンとこないのであれば買った方がいい。
もう一つ未経験が割とつまづきやすいポイントはデータベースである。「SQL書けない」というのもそうなのだが、それ以前の問題としてデータベースの基本的なところも知らないと全くどこから手を付けたらいいのかわからなくなるのはよくある話である。
特にデータベースについて言うと
「データベースを理解していないとデータベースの仕事がもらえない」
「データベースを仕事で触らないと理解できない」
の循環参照が発生しやすい。ネットに落ちているような例を読んだところでなんというかピンとこないのである。こういう時に「公式ドキュメント読んで自分で考えろよ」という話をすぐにする人がおり、おおむね正論だとは思うが経験がないのにPostgreSQLの公式読んでちょっと試して理解できる人間は、それこそ基本情報技術者試験なんてとる必要すらないと私は考える。
https://amzn.to/3pfz9AS
私はデータベースから開発に入ったのであまり引っかからないところではあるが、苦しいのはわかるので、困っている人にはこの本をお勧めしている。手を動かしながら出てくるような範囲の話は抑えられるし、今後システムエンジニアの仕事を続けるのであればデータベースは必修の知識である。
最後に「応用情報技術者のほうが簡単」という説についてだが、これは要件定義側やマネジメントの仕事をしている方が抱きがちな感想である。私の意見としては「おおむねそれはない」の一言で終わる。おとなしく基本情報技術者からとった方がいい。確かにプログラミングなどの泥臭い話からは逃れられるのだが、基本情報技術者よりも実務に根差した問題が多く、こちらの方が簡単な人間は一握りだと思われる。そういう一握りにはこの記事もそもそも必要ないだろう。
未経験者のいきなり受験はお勧めしない
「未経験プログラミングスクール卒」みたいなどうしようもない層は血の滲むような努力をして基本情報技術者でも取らないと今どき仕事なんてないし私もチームに入れることはないのだが、それでも基本情報技術者試験にいきなり行くのはお勧めしない。
上述の通り、実務をしているか専門教育を受けていない人間にとっての壁がかなり高い。IPAの試験自体のクセもあるので、慣れないと受からないし、落ちるとモチベーションにも悪影響を及ぼす。
私も正直自分の職務経歴的に範囲の知識が足りなかったので、いきなり受けるのは避けた。結論を言うと情報セキュリティマネジメント試験を先に取るのをお勧めする。問題の範囲が狭い上に基本情報技術者試験とある程度被るし、試験慣れもできる。基本的なセキュリティの知識は現場に入るときに必須レベルで必要なので持っていて絶対に損はしない。いわゆる午後問慣れの側面からも有用である。
午後問については点数の取り方のところでもう少し具体的な手法は書くが、未経験が基本情報技術者の午後問をとるのは非常に難しい。いったん低難易度の試験で慣れたほうが無難である。もっというとITパスポートを取ってからでもいいと思うが、ITパスポートは最高でも2週間でとろう。それ以上かかるようであればそれ以上の試験は一生取れないであろう。
とはいえ、いつ受けるかは「直近」の一択である。後ろに倒すと必ずさらに後ろに倒れるので、そこは甘えるべきではない。これをやらないと「まあ合格点には到達しているはずなのだけど」など言い訳をしながら一生受けないダサい人になりかねないので、何とか一発で受かる気で直近を狙うべきである。いいからやれ。
生活リズムの改善
これは非機能要件(これも基本情報技術者の用語なのでわからないなら調べよう!)にあたるのだが、受かる確率を上げる行動のうちできることはやるべきである。
「起きれないのは取る気がないから」という話もしたが、それとはちょっと別の視点として、人間は普段起きていない時間に起きると頭が働かない。おおよそ1ヵ月くらいかけて早起きする方向で生活を改善するとよい。
他、試験当日も目を覚ましてから会場入りした方がよく、具体的には30分ほど歩いた方がいい。体を少し動かした方が頭も働く。とはいえいきなりそんなに歩くと疲れるので、これも1ヵ月くらいかけて慣らしておくべきである。
試験に合わせて栄養状態もよくして、当日も消化に良いものを食べて、というコントロールをすることで勝率も上がる。学生時代は母親にやってもらった人が多いと思うが、社会人になった以上自分で考えてやるべきである。筆者はすべて奥さんにやってもらっているのであまり偉そうに言えないのだが。
満点を狙え
心構えの話に移る。具体的な点数計算は有料記事内に記載するつもりだが、「満点を狙え」が私の考えである。この資格を持っている以上、範囲内のことは仕事として考え方を理解しているとみなされる。仕事においては「90点取れました」では済まないことが多いため、試験でくらい満点を取る心構えで行くべきである。そうはいっても取れないものではあるが、まず落ちることはなくなる。これは実は仕事と同じ話である。満点取れなくても怒りはしないが、満点取りにいかないやつとは働きたくない。「鉛筆転がして6割ギリギリで受かった人間に果たして知識がちゃんとあるのか、やる気があるのか」という話である。
この心構えで行くと、苦手分野の克服に頭が行く。基本的に「解けない問題がない」という状態に近づけていくのが試験の攻略への道ともなる。
ここから先はもう少し具体的な話をするため、有料とする。
ここから先は
¥ 300
少ないお金はコーヒー代、まとまっていたら書籍購入代に充てさせていただきます。