受験するなら誰しも一発で合格したいですよね。
ただし、相手は半端な志で片付けられるほど甘くはない若者向けのハードな国家資格試験です。
前もって相手を知り、そして己を知り、最終的に合格ラインをクリア出来るレベルに仕上げなくてはなりません。
もちろん、人それぞれ経歴も年齢も得手不得手も違いますから一概には言えませんが、それでも大半の人が難しいと思うものは大体決まっているもので、克服するには知識を付け、反復練習で体で覚え、最後はもっとも厳しい時間制限との戦いになります。
以降は、私の2回の受験そして合格経験をベースに、合格戦術を述べさせていただきます。
私は大学で建築を専攻してましたので(平成の始め頃)、一応理工系ですが情報系でない異業界出身になります。スキルは多少BASICやFortranでプログラミング経験がある程度です。
ただし、IT業界の目覚しい発展とは裏腹に、異業界ではその対応に苦慮しているようで社会人になれば学生時代からITスキルがレベルダウンしてしまう方も多いようですね。
学生の皆さんは実感が湧かないと思いますが、ほとんどの方が人生で最も知的レベルが高まるのは学生時代です。このような受験資格条件のない資格試験は、余裕のある学生の時に取るのがベストです。
話を戻して、学生時代が遠く過ぎた私がなぜ受験する気になれたか、それはまず多少なりともプログラミング経験があること、そして平成21年からの試験制度改正の事を知り、ユーザー側の人間でも言語選択次第(つまり”表計算”)で合格者が続出していることを知ったからでした。
初回受験では、受験勉強は3ヶ月を見込みました。午前1ヶ月・午後2ヶ月位。そして当然、選択言語は、最短学習時間に適した”表計算”の一択で。
一度でも受験された方はもうお分かりだと思いますが、午前の学習はほぼ計画通りに進められました(笑)。1~1.5ヶ月、通称猫本と呼ばれる、
右サイドバーにある栢木 厚さんの本を丁寧に読み、忘れそうになったら繰返し読むように心がけました。これだけで午前は合格ラインです。
午後の問題をしっかり学習してさらに理解を深めると8割を超えるでしょう。
午後も長文問題ですがなんとか進めていきます。そして、ネット掲示板でも厄介であるとよく話題にされているアルゴリズムは、結局専用の本を買ってスケジュール通りに進めることにしました。最初のほうは難なく付いていけました。ところがその本とは相性悪く、徐々に解説の理解に苦しむようになり、再帰関数のトレースあたりでイライラが頂点となり、やむを得ずこの本を見切ることにしました。
これで予定が大きく狂い始めました。元々3ヶ月というスケジュールはバッチリ進んでちょうどいい位の日数です。終盤に来て必須問題のアルゴリズムが仕上がらないのでは、たまりません。
ネットで解説を探し漁りますが、難しい所ほどどれも解説が曖昧になる傾向がありました。
試験が近づいた頃、過去何回分かすべての問題に対して時間を計り、合計所要時間と合計点を出してみると、時間はオーバー気味、点数も50~60点台と、頭を抱えてしまう状態でした。
何とか自信をつけるため反復練習をし、最後に実戦用に全く手をつけていない問題を通しでやってみると・・・結果、後で調べて難易度の高い回と知りましたが、6割に遠く及ばない、やった中で一番低い合計点となりました。
これで悟りました。試験直前で、難易度が低めでギリギリ、高ければアウトの実力と。
試験当日も、アルゴリズムで頭が混乱気味の状態です。見切った本まで持参してきました。
そのためか、午前は結構解けたものの最後まで試験場に残ったこともあって体力消耗で既にバテ気味、午後はまさに修羅場となりました。
この24年春は、午後の5問選択の難易度が高く、受験者全体の平均点が大きく下がり、最終的に点数のかさ上げが行われたようだとされている回です。
問題を読んでは結局途中で投げ出すことの繰返しでした。表計算も初めて見るようなマクロの難問が出され、ここでも点を伸ばせず、最後のアルゴリズムに手をつけた時点で残り時間は15分を切るといったありさまでした・・・。
試験場を途中で抜ける人が多かったです。自分も絶望感漂う中、そんな気になりましたが、再挑戦の可能性も考えて、経験と割り切って最後までやってみました。
結果は言うまでもないですね。これが一度目の実態です。
合格者は、後で問題を確認して納得しましたが、比較的易しかったアルゴリズムで点を伸ばした方が多かったようです。この回に関しては早めにアルゴリズム問題に手をつけるのが正解だったようです。
3ヶ月間懸命にやってのこの結果で、しばらくは悔しさより虚しさで脱力していましたが、取りあえず再挑戦の準備だけは早めにしておいた方がいいと良書探しはすぐに始めていました。
まずアルゴリズム問題への強化策で、擬似言語のベース仕様になっていると言われているC言語を一から始めてみることにしました。
これで選んだのが本屋で見つけた、
倉 薫さんの本2冊です。
この本は今振り返っても最初に読んでよかったと思います。C言語をすべて知っている人が、初心者の目線を考えて、間違えやすいところを混同しないように前もって解説してくださっています。プログラマ達の実経験が生かされた話が聞けるのはありがたいことです。
また付属のCD-ROMに、
gccというコンパイラとサンプルプログラムが入っていますので。初めてのC言語プログラムも気軽に動かせます(xp/vista用)。
この2冊を嫌にならない程度にゆっくり少しずつ読んでいきました。
次に探したのが、C言語の簡単な問題集です。
文法を覚えても実際に使ってみなければ、すぐに忘れてしまうものです。かといっていきなり基本情報レベルのC言語の長文問題を解くのは無謀というもの。
そんな思いの中、ちょうどいい本を見つけました。
柴田望洋さんの『解きながら学ぶC言語』という本です。本来は、
右サイドバーの学習書の一番上の本を読みながら、利用するのがベストだと思われます。ただ、私は既に倉 薫さんの本で、基本的な文法は理解していたので、特に問題なく問題を解いていけました。 ちょっとわかりづらいプログラムは自分で打ち込んでみて、gccでコンパイルして確認したりしてみましたね。ここまでで3ヶ月ぐらい費やしたでしょうか。
{ここで重要なのは、C言語などプログラミング言語の学習は、複数人の著者の本を読んでみるということではないでしょうか。高度な学問になるほど、他人の違った視線による意見を聞くことが、勘違いの思い込みを減らし、著者の違いによる構文の書き方の違いや特徴、一方の本では記されていない決まり事のそうなった経緯・深い理由等、まさに目から鱗の知識を得る機会が多くなります。}
次に考えたのが、C言語を学習するきっかけであるアルゴリズムの解説の良書探しです。
初回受験ではこの失敗ですべてがパーとなってしまいましたので重要なところです。
ここでまた、
柴田望洋先生の『新・明解C言語によるアルゴリズムとデータ構造』という良書をみつけました。柴田先生の解説本はムラがなく教科書的でストレスなく読んでいけます。
またこの本には、本書で使用されたサンプルプログラムの他、ソートなどのプログラムの動きを目で追えるアルゴリズム体験学習ソフトウェアが収録されていますので、本書のわかりやすいソートアルゴリズムの解説と併用してプログラムを動かすと、前回での混乱が嘘のようにスムーズに理解できるようになりました。
ここまでやってようやく、基本情報のC言語の過去問に手をつける気になりました。
最初にやった問題はさすがに1時間ぐらいはかかりましたが、文法的に困るようなことはほとんどありませんでした。これはよかったなと実感できたところです。
こうなると後はどんどん過去問演習を進めていくのみです。続けて解いていくことで、出題される問題も回は違っても、やはりそれなりに出題形式に一定の規則みたいなものを感じることが出来ますので、やればやるほど理解力は増していきます。結局は”慣れ”ですね。
C言語の問題が解けるようになると、アルゴリズムの問題演習も同時進行で進めるようになりました。やはりなるほど、擬似言語のベース仕様はC言語だなと感じることができます。
この頃、ソートアルゴリズムの問題はすんなり解けるようになっていました。
そして、約10年分のアルゴリズムとC言語の過去問題を
JITECからのダウンロードやブックオフで見つけた表紙の赤い
合格本に付属している10年分の過去問CD-ROMなどで手に入れ、それぞれ一冊にファイリングしました。ちょうど本としていい位の厚みになります。
パーフェクトラーニングのように、一冊にまとめることでいつでも手軽に読め、書き込めるようになりますのでこれはお奨めです。
以上の流れで、アルゴリズムとC言語の問題演習にある程度の自信がつくようになりました。
そうしますと、他分野の学習も落ち着いて進められるようになりました。
これも合格するためには非常に重要なことだと思います。
また、解くのに時間がかからず、かつ正解率の高い分野は平均以上のレベルになるよう仕上げましょう。
これに該当するのは、
SQLの問題ですね。これもいざ勉強しようとしてもなかなかいい本が見つかりませんでした。それでもあきらめずに教科書的なものであることを第一条件に探してなんとか見つけました。
小野 哲さんの『ぐんぐん実力がつく! 逆算式SQL教科書』です。
試験問題によく出るSQL構文と、実際の現場でよく使われる構文は若干違う場合もあるようですが、それはそれでまた印象に残りやすいです。MySQL5.0のインストールとテストデータの利用で実際に動かして学習できます。
また、初回受験勉強のときもエクセルに試験回毎に解いた問題のチェック事項(問題タイトル・演習日付・難易度・所要時間・解けなかった問題のチェックポイント等)は記録していましたが、2度目の時には、
各分野ごとに問題のチェック事項を
まとめ、そして演習もなるべく同分野の過去問を続けて数問解くように変えました。これによってその分野の理解度が増す効果があると感じました。
結局この流れを試験までひたすら続けてました。C言語とアルゴリズムは各問平均合計3回、5問選択問題は各問平均合計2回ぐらい繰り返しました(表計算も一応改めて準備しておきましたが、結局試験ではC言語を選択しました)。
受験2回目の学習は、比較的簡単な問題についてはしばらくやってなくてもすぐに解けました。
午前の問題も同様で初回受験時1度しっかりやったものはちょっとやればすぐ思い出します。
試験2週間前ぐらいから毎日午前・午後両方を一定量こなすことで、バランスよく記憶されます。
個人差があると思いますので、私の場合ですが、詰め込みすぎると前にやったことを忘れてしまいますが、大体2週間以内にやったことは嫌でもほぼ記憶されています。
この直前2週間はスケジュールをしっかり立て着々とこなすといい感じに仕上がります。
記 2013年2月 杉山 徹