2013年11月30日土曜日

基本情報技術者試験 合格への道 6

当日の持参物ですが、必須なのは、受験票、鉛筆、シャーペンと替え芯、消しゴム、腕時計、午前の参考書です。

試験はマークシートであり、塗りつぶしは鉛筆を使うのが楽で確実です。
一方、計算したりトレースのメモを取ったり等の作業は鉛筆ではなくシャーペンの方が楽です。
というわけで、鉛筆とシャーペンの持ち替えがおすすめです。

当然、持ち替えには時間のロスが発生します。
しかし、実際はそれほど頻繁に持ち替えは発生しません。
午前はわざわざシャーペンに持ち替えねばならないような問題は少ないですし、午後は2~3問をまとめて解く状況が多いためです。

ただし、持ち替えの際のファンブルというリスクは伴います。
動揺しないよう、鉛筆、シャーペン、消しゴムの予備は必ず準備しましょう。

その他、洗顔シート、弁当、折り畳み傘等、必要に応じて準備しますが、試験会場は十分なスペースが無い場合もあるので、荷物は極力控えめにしましょう。

試験会場には、集合時間30分前くらいに到着するようにしましょう。
トイレを済ませたら、最後まで残った弱点を中心に午前本を簡単に読み返し、練習問題をいくつか解いてウォーミングアップしておきます。
私の場合、共通鍵/公開鍵の仕組みが不安要素でした。
この段階で丸暗記し直すのは効率が悪いので、検証できる安全性の内容と確認主体 (誰が秘密鍵を持っているのか) をひたすら読み返しました。
これらを抑えていれば、他はその場で考えてもなんとかなるだろうな、と。

さて、いよいよ試験開始です。

2013年11月29日金曜日

基本情報技術者試験 合格への道 5

具体的な対策を決めたところで、あとはひたすら学習です。
スケジュールの目途として、試験1週間前の時点で「午前過去問8割安定」に達しているのが目標です。

私の場合は3週間前から参考書の通読を始め、2週間前から午前過去問のやり込みに移行しました。
いずれも毎日1~2時間程度です。
1週間前の段階で、8割~9割は安定して正解できるようになりました。

さて、肝心なのは直近1週間の過ごし方です。
試験は丸1日がかりの長丁場であり、体調万全で迎えることが何より重要です。
特に、睡眠時間の調整がポイントになります。

試験当日に睡眠不足なのは論外として、ずっと睡眠不足だった人が前日だけたっぷり寝るのも、それはそれで頭が回転しなくなります。
従って、試験直前1週間は、毎日6~7時間程度の睡眠をとる規則正しい生活を送るようにしましょう。
実際は仕事が立て込んでなかなか難しいわけですが、なんとか調整して、直前1週間だけでも真人間の生活を送りましよう。

睡眠ペースを保ちつつ、毎日1回分ずつ、午後問題を繰り返し解きます。
時間制限はかけず、自分が選択する全問を、理解できるまでじっくり考えて解きます。
3日目くらいには各問題の形式に慣れてくるでしょうから、徐々にスピードを意識していきます。
こうして、試験前日までには2時間で全問を回答し、8割程度を正解できるようになりました。

IT関連の仕事をしている人なら、上記の約1か月ペースで問題ないと思います。
そうでない場合、プログラミング絡みで向き・不向きがはっきり出ます。
プログラミング系がある程度身についてから1か月、くらいのスケジュール感が必要でしょう。

試験前日には午前と午後の過去問を1~2回分解き、制限時間内に8割程度を正解できることを確認します。
この状態になれば、もう怖いのは当日の急病とマークミスくらいです。

2013年11月28日木曜日

基本情報技術者試験 合格への道 4

午後は選択問題の他に、疑似言語によるアルゴリズムとプログラム言語の問題があります。
私は本職のPGではありませんが、自分用ツール作成程度なら経験があるので、ここも強化して得点源にしたいところです。

まず疑似言語の過去問を解いたところ、これらも文章理解の問題であるとわかりました。
一見、ソートや浮動小数点計算等の実装をいきなり求められているように見えます。
しかしよく読むと、アルゴリズムそのものは問題文に記載されており、文章を素直にロジックへ落とし込めば解けるつくりになっています。

ポイントは「繰り返される処理とその条件」「例外的な処理とその条件」を読み取ることです。
これは選択問題と同様、過去問で訓練するのがいちばんの早道でしょう。

最後にプログラム言語です。私のスキル/経験は以下の通りです。
---
・C
 昔ちょっとかじったけど10年くらい触ってない
 10年前の段階でもポインタとか配列とか試行錯誤しまくりで、理解してたかあやしい
・COBOL
 全く未経験、仕事で汎用機使ってるけどPL/Iばっかり
・Java
 ちょっとかじったけど小規模なツールくらいしか作ってない
 クラス継承とか、Javaの特長は全く利用しなかった
・アセンブラ
 30年くらい前にZ80やってたなあ (遠い目)
・表計算
 Excelは仕事でそれなりに使ってる
 でも関数覚えるのが面倒なのでほとんどVBAマクロに頼ってる
---
得点源にしたい領域なので、ここの選択を誤ると致命傷になりかねません。
慎重に検討を重ねた結果…COBOLにしました。

なぜ唯一未経験の、最もリスクの高そうなCOBOLを選んだのか。
理由はこんな感じで。
---
・C
 かつて経験ありとは言え試行錯誤でやっていただけ
 実機の無いペーパーテストでロジックのトレースを正確に行うのは、私には不可能
・COBOL
 言語独自の構文がほとんど無く、英文を読む感覚で簡単にソースを読むことができる
 設問が毎回ほぼ同じ形式であり、過去問やり込みにて練度を上げやすい
 独自構文よりはアルゴリズムを問う問題が出題されるため、疑似言語対策と兼ねられる
・Java
 出題ポイントは似通っているが、覚えるべき独自構文が多く、暗記すべき事項は最も多い
・アセンブラ
 難易度の低さはCOBOLと同レベルだが、コーディングの経験値が物を言う側面もあり、付け焼刃ではリスクが高い
・表計算
 文章量が非常に多い
 他の設問で長文を多量に読むため、疲労と時間のリスクが高い
---

念のためCOBOLの入門書を2冊購入しました。


結果的には、ほとんど参照せず過去問のみで全問正解できましたが。

2013年11月27日水曜日

基本情報技術者試験 合格への道 3

午前はやっつけられる目途が立ったので、次は午後です。
最初は午前と同様に、参考書通読→問題集で練習、のループを回すつもりでしたが、困ったことに良書が見当たりません。

まずはテクノロジ問題。
これまたネットで情報収集したところ、定番の必勝法は存在しないものの、以下のような傾向は見て取れました。
---
・前提となる技術的な知識の広さ/深さは、午前対策レベルで十分である
・過去問そのまま流用は無いが、文章の形式や量については過去を踏襲している
---
このため、午前対策を万全にして前提知識を固めた上で、過去問をこなして問題文を素早く、正確に読み解く訓練を積むことが必要と考えました。

方針はこれで良いとして、午後は分野の選択が可能なので、あらかじめ何を選ぶか決めておく必要があります。
強化すべき分野を絞れば得点源にしやすいですし、そもそもその場で問題を読んでから取捨選択するような余裕は無いでしょう。

私は本職がPMなので、プロジェクトマネージメントやストラテジは得意分野となります。
8~9割の正解を見込みたいところです。

一方、苦手はDB関連です。
DBMSの仕組みやSQLはそこそこ理解しているつもりですが、DB設計まわり、特に正規化がどうしても身に付きません。
DB設計は必ず出題されるとわかっているものの、ここで頑張るくらいなら、その時間や労力で他の分野を完全にする方が合格に近づけると思われます。
というわけで、DB関連は最初から切り捨てることにします。

ネットワークやハードウェアは専門外です。しかし過去問を見る限り、各分野の専門知識を問われることは無く、文章をしっかり読み込むと前者は計算問題、後者はビット演算や論理演算の問題に化けるケースがほとんどです。
これらの分野で、いかに素早く文章を理解し、単純作業に落とし込めるかが、合格を左右しそうです。

2013年11月26日火曜日

基本情報技術者試験 合格への道 2

おおよその傾向を把握したところで、早速、午前の勉強に取り掛かりました。
基本的には私のいつものパターン通りです。
---
1. 参考書を通読する
2. 過去問・問題集を解く
3. 2.の結果から弱点を分析し、参考書で重点的に学習する
4. 2.に戻る
---
今回は確実な合格を期するため、時間の許す限り2.~4.をループします。
「そのうち受かればいいや」な方なら、1.~3.を一通りこなすだけでも、いい線いくと思います。

キモとなる参考書ですが、定番らしき「栢木先生の基本情報技術者教室」を購入しました。


実際使った感触として、下記の点について良書と感じました。
---
・シラバスの範囲を一通り抑えつつ、頻出か否かで記載粒度を変えている
・出題頻度の分析が的確
・特に頻出の問題は、ロジックが丁寧に解説されている
・最新技術についてもエッセンスが取り込まれている
---
正直、かなり「軽い」本です。
大半の事項については、日経に毛が生えた程度の記載レベルです。
ただし、「軽い」というのは、気軽に何度も読み返せることも意味します。
これは、試験対策の書籍には重要なファクターだと考えます。
また、「軽い」といっても、浮動小数点計算のような必須項目についてはしっかりページを割いています。

この本だけで午前で100点を取ることはまず不可能でしょう。
一方、この本を読み込めば、システム素人でも午前80点はいけると思います。

問題集はいまいち良書が無かったので、公式サイトの過去問をひたすら解きました。
実戦のスピードを意識するのが重要で、60分で80問を一通り解くペースが目標です。
残りの1時間半で、計算問題の検算やよくわからなかった問題の再検討をじっくりと。
本番ではさらに、マーク塗りミスの確認を入念にやる必要があります。

5年分の過去問で上記のループを回した結果、安定して8割~9割を正解できるようになりました。
逆に言うと練習ではとうとう9割以上取れませんでしたが、やはりおっさんになって頭が固くなったということなのでしょうか。
まあ8割安定なら試験に通る分には問題ないので、この辺で満足しておきます。

2013年11月25日月曜日

基本情報技術者試験 合格への道 1

 先日、IPAの基本情報技術者試験を受験し、無事に合格しました。
 せっかくなので、自分の勉強法など。

 簿記の時は、最低限の努力で合格ラインに滑り込むのが目標であり、最悪落ちてもいいや、というスタンスでした。
 しかし今回は、会社から「今回絶対に合格せよ」と厳命されており、PMPの時と似た状況になっています。
 つまり、確実な合格のため労力を惜しまない、ただし無駄な努力はしない、が今回のポリシーです。
 結果として、約1か月の学習で合格しました。

・状況分析
 まずは各種サイトで情報収集です。
---
1. 午前は択一式80問、午後は択一式40~50問、各々で6割取れば合格
2. 試験時間は各々2時間半
3. 午前はIT知識を広く問われ、過去問からの流用が多い
4. 午後はロジック理解の問題が中心で、選択問題がある
---

 1.より、午前は32問、午後は16~20問程度まで間違えてもOK、ということがわかります。
 分量が多い (午前は問題数、午後は文章量) こともあり、スピード勝負であると言えます。
 もし80問中70問まで解いたところで時間切れになったとして、残り10問が「見た瞬間わかる」ような問題だったら大損だからです。

 3.より、午前は過去問のやりこみが重要とわかります。
 過去の傾向より、全80問の6割近くは流用とのこと。
 つまり、過去問が完璧ならそれだけでほぼ合格ラインに達するわけです。
 幸い、過去問は公式サイトで大量に公開されていますので、これに時間をかけるのが良さそうです。

 4.の選択肢は以下の通り。
---
テクノロジ
 http://thinkit.co.jp/story/2013/07/23/4174から5つ
言語
 C/COBOL/Java/CASL/表計算から2つ
疑似言語によるアルゴリズム
 必須
---
 自分の得意分野を強化し、確実に得点を取ることが重要になります。
 ただし、テクノロジの得意分野がきっちり5つだと、たまたま難問が出た時に損することになります。
 保険のため、6分野を抑えられれば、より確実な合格に近づけるでしょう。