私の情報処理技術者試験の勉強法

今までのエントリでは詳しく触れていなかった、私の情報処理技術者試験の勉強法について述べたいと思います。

試験勉強は約1ヶ月間(4週間)で、だいたい試験日の約1ヶ月前から始めるようにしています。
月曜日から金曜日だけ約2時間勉強し、週末(土・日)は試験前日を除いて勉強していません。
試験前日の土曜日だけは、約2時間刻みで4回、合計約8時間勉強しました。
約2時間と言っても、実際はそのうちの90分ぐらいしか勉強していません。
2時間以上は、集中力が続かないので……。

また、私が応用情報技術者試験のテキストとして使用していたのは、平成20年度ソフトウェア開発技術者 合格教本(最新版は平成22年度[春期][秋期] 応用情報技術者 合格教本)というテキストです。
テキストの選択基準は、私的に読みやすかったことと、DEKIDASという問題演習ソフトが付属していたことです。
他の情報処理技術者試験を受験したときも、同シリーズのテキストを使用しました。

さて、4週間の勉強の流れは、以下の通りです。

最初の1週間目でテキストを読みます。
全ての章の始めのページに付箋紙(25mm*75mmのやつ)を貼っておき、章末問題を解き終わったらその章の付箋を剥がしていきます。
次の章の付箋を目標に読み進めることで、この分厚いテキストを少しずつ攻略していきます。
ちなみに、テキストの午後問題の部分は読みませんでした。

読んでいる最中は、ペンやマーカーなどを使っての書き込みや傍線・マーキングは一切行ないません。

章末問題も、テキストに大きめの付箋紙(50mm*75mmのやつ)を貼ってそこに答えを書いて解いていきます。
答え合わせをし、もし答えを間違えたら、章の該当部分を読み返します。
章末問題の答え合わせが終わったら、付箋紙を剥がします。

2週間目は、テキストに付属しているDEKIDASという問題演習ソフトを「過去問題モード」でひたすら解いていきます。
全問解答の制限時間をデフォルトの150分から90分に変更して解いていきます。

「過去問題モード」を一通り解いたら、よく出題される問題や傾向が把握できるので、その中からなかなか覚えられない部分(用語や計算式など)を、テキストやネットなどを参考にメモやノートに手で書き出します。
一部スキャニングしてプリントアウトして貼り付けたりもしましたが、基本的に手で書き出していました。
「手で書き出す」というアナログな方法は、記憶に残りやすいと思います。

書き出したメモは、移動時間や待ち時間の合間に繰り返し読みます。

3週間目は、IPAのサイトの情報処理技術者試験から「基本情報技術者試験」や「応用情報技術者試験」の午後の過去問題とその解答を全てダウンロードして、それをひたすら解いていきます。
試験時間より60分短い時間でタイマーを設定します。
時間を60分短い時間で解けるように勉強することで、試験当日に精神的な余裕を作ることが狙いです。
もう一つの理由は、最初に書いた通り、2時間以上は集中力が続かないから……。

4週間目(試験前の最後の週)は、再びDEKIDASという問題演習ソフトに戻ります。
今度は「結果分析」を参照して自分の苦手分野を把握し、「ジャンル別モード」で苦手分野を選択して、ひたすら解いていきます。
2日間(月、火)くらい。

次の2日間は「過去問題モード」を使いますが、ここでも全問解答の制限時間をデフォルトの150分から90分に変更して解きます。
慣れてきたら、もっと短い時間(80分とか)に変更して解いていきます。
これも2日間(水、木)くらいで、ゲーム感覚で繰り返し解いていきます。

残りの1日間(金)と試験前日の土曜日は、再び午後問題をひたすら解いていきます。
この時も、試験時間より60分短く設定します。

試験当日は、テキストは持って行かないで書き出したメモを持って行き、移動時間や休憩時間に少しだけ勉強します。

私も最初の頃はテキストを持って行っていたのだけれど、重くてかさばるし、要点をチェックしている時間なんてたかが知れているので、データベーススペシャリスト試験を最後に持って行かなくなりました。なので、メモだけ。

以上が、私の情報処理技術者試験の試験勉強法になります。

2回目以降(つまり不合格でw、再度受験する時)は、テキストは読み終えていてかつメモは作っているので、試験勉強期間はだいたい2週間程度です。
3週目以降の勉強だけ、特に午後問題を重点的にしていました。

最後に、私が参考にしたテキストの最新版を紹介。

4774140872.09.MZZZZZZZ.jpgAmazon.co.jp: 平成22年度[春期][秋期] 基本情報技術者 合格教本 (情報処理技術者試験)

4774140848.09.MZZZZZZZ.jpgAmazon.co.jp: 平成22年度[春期][秋期] 応用情報技術者 合格教本

4774141917.09.MZZZZZZZ.jpgAmazon.co.jp: 平成22年度 ネットワークスペシャリスト合格教本

ネットワークスペシャリスト試験はまだ受験したことないけれど、受験する予定のない人にも是非一読しておくことをお勧めしておきます。理由は、以前のエントリに書いた通り。

4774140465.09.MZZZZZZZ.jpgAmazon.co.jp: 平成22年度 データベーススペシャリスト合格教本

2010年06月27日(日) 22時08分  

大量のJPGファイルをPDFファイルに変換して結合

スキャニングしてできた大量のJPGファイルを1個のPDFファイルに結合する場合、ImageMagickのconvertを使って

convert *.jpg output.pdf

とすれば簡単に作成できる。
しかしこの方法では、作成時に大量のメモリを消費してしまうのが難点。

私のPC環境で、約180個のJPGファイルを1個のPDFファイルに処理するのに約6分かかった。

処理中、物理メモリを約1GB消費、PF使用量が約1.5GB増加、CPU使用率は20%前後増加といった具合。

処理中、ハードディスクのアクセスランプが点灯しっぱなしになっていたから、使用可能な物理メモリが少なくなれば、もっと時間がかかるかもしれない。

で、あれこれ調べてみたところ、pdftkを使用すれば改善できそうなことがわかった。

pdftkのWindows版は、以下のサイトから入手できる。

pdftk – the pdf toolkit

pdftkを使って大量のJPGファイルをPDFファイルへ変換して、1個のPDFファイルへ結合する手順は、以下の通り。

  1. ImageMagicのconvertを使用して、JPGファイルを1個ずついくつかまとめてPDFファイルへ変換する。
  2. 手順1で作成したPDFファイルを結合する。
  3. 手順1で作成したPDFファイルを削除する。
  4. JPGファイルを削除する。

上記の処理するにあたっては、Perlを使用。ソースコードは、以下の通り。

#!/usr/local/bin/perl
use strict;
use warnings;

my @list = &getFileList;
my @pdf;
my @jpg = @list;
my $tmpPdf = "tmp000";

while (scalar(@jpg) > 0) {
    my $arg = join(" ", splice(@jpg, 0, 20));	#一度に結合するJPGファイルの個数
    &execute("convert $arg $tmpPdf.pdf");
    push(@pdf, "$tmpPdf.pdf");
    $tmpPdf++;
}

my $oldPdf = "";
my $newPdf = "new000";

while (scalar(@pdf) > 0) {
    my $arg = join(" ", splice(@pdf, 0, 20));	#一度に結合するPDFファイルの個数
    &execute("pdftk $oldPdf $arg cat output $newPdf.pdf");	#前回結合したPDFファイル($oldPdf)がある場合は、先頭に追加

    if (length($oldPdf) > 0) {
        unlink($oldPdf);
    }

    $oldPdf = $newPdf . ".pdf";
    $newPdf++;
    unlink split(/\s+/, $arg);
}

&execute("rename $oldPdf output.pdf");
unlink @list;
exit;

sub getFileList {
    open(DIR, "dir *.jpg |");
    my $list = join(" ", sort <DIR>);
    my @list = split(/\s+/, $list);
    close(DIR);

    open(DIR, "dir *.JPG |");
    $list = join(" ", sort <DIR>);
    push(@list, split(/\s+/, $list));
    close(DIR);

    sort @list;
}

sub execute {
    print $_[0], "\n";
    system($_[0]);
}

上記のスクリプトをコマンドプロンプトから実行してみた結果、CPU使用率は増えたものの、物理メモリ消費量とPF使用量についてはほとんど変化は見られず、かなりの改善が見られた。

時間的には、240個のJPGファイルをImageMagickのconvertだけで処理した場合、約3分15秒かかったのが、pdftkを併用した上記のスクリプトで処理した場合だと、約1分15秒となった。

ImageMagickのconvertを使って大量の画像ファイルを1個のPDFファイルにする際に時間がかかっている方は、上記のようにpdftkを併用する方法を一度試してみると良いかもしれない。

2010年06月26日(土) 21時38分  

コマンドプロンプトのコマンドライン文字列の制限

メモ書き。

コマンド プロンプト (Cmd.exe) のコマンド ライン文字列の制限より。

Microsoft Windows XP 以降を実行しているコンピュータでは、コマンド プロンプトで使用できる文字列の最大長は 8191 文字です。Microsoft Windows 2000 または Windows NT 4.0 を実行しているコンピュータでは、コマンド プロンプトで使用できる文字列の最大長は 2047 文字です。

文字数=バイト数。

2010年06月26日(土) 21時08分  

応用情報技術者試験結果

午前70.00点、午後66.00点で合格!

試験後に午後問題を自己採点(配点は勝手に予想)した結果、微妙な点数だったので、期待していなかったのだけれど、やっと応用情報に合格&資格取得できました。

前回(平成21年度 秋期)の結果が午前71.25点、 午後58.00点で不合格だったので、余計に嬉しい。やた~!

ちなみに、午後問題の選択分野は以下の通り。

  • 問2.プログラミング
  • 問4.システムアーキテクチャ
  • 問5.ネットワーク
  • 問6.データベース
  • 問8.情報システム開発
  • 問9.情報セキュリティ

次はネットワークスペシャリストを勉強しようか、LPIC(Linux技術者認定資格試験)を勉強しようか……。

2010年06月25日(金) 21時38分  

Adobe AIR 2正式版リリース

表題の通り、Adobe AIR 2正式版がリリースされた模様。

http://cuaoar.jp/2010/06/flash-player-1015364-1.html

AIR 2の機能については、以下のサイトが詳しい。

http://www.adobe.com/jp/products/air/features/

できるようになったことがいろいろ増えたみたいで、楽しみですな。

2010年06月11日(金) 23時53分