株式会社わくわくスタディワールド

情報処理技術者試験でプログラミング問題が解けるようになる方法

先日、「『スッキリわかるJava入門 第2版』『スッキリわかるJava入門 実践編 第2版』出版記念セミナー」に参加してきました。

スッキリわかるJava入門

いろいろ面白い話も聞けて、とても有意義な時間を過ごせました。

セミナーを聴いて改めて感じたのは,「Javaでつまづきやすいポイント」と「基本情報技術者試験の午後Java問題で出てくるポイント」は,ほとんど同じだということです。
具体的に言うと,抽象クラスやthis,super,多態性などは,Javaをマスターする上で理解する必要がある大事な点ですが,これはまさしく,Java問題の定番です。

試験は,言語をマスターする上で乗り越える必要がある壁を知った上で,問題が作られています。
そのため,基本情報技術者試験のプログラミング言語の問題は,経験があって使いこなせている言語だと,勉強しなくても楽に解けます。
難しいと感じるのは,必要な考え方をマスターしていないからです。

たまに,「仕事で使っているのに解けない」という方はいらっしゃいますが,そういう場合は,仕事での経験の方に,偏りがあることが多いです。
よくある話だと,次のような経験の場合は,試験と結びつかないことがあります。

・オブジェクト指向を使わないでJavaを使う
・アルゴリズムを意識しないでC言語を使う

これは,現場の風習として,古いものが残っているときによくあります。
こういった場合には,今後の仕事の幅を広げる意味でも,オブジェクト指向やアルゴリズムを改めて学ぶのがおすすめです。

スッキリわかるJava入門 第2版』では,「第II部 すっきり納得オブジェクト指向」で,テキストの約3分の1を使って,オブジェクト指向について学びます。
試験の頻出ポイントの抽象クラスも,その中の第12章「高度な継承」で取り上げていますし,具体的なプログラミングを例に,概念をじっくり理解できるような構成になっています。

オブジェクト指向は,考え方の学習だけだと,理解はできても腑に落ちづらいところがあるので,Javaを学習するのが目的ではなくても,Javaを使って学習してみるのはおすすめです。

C言語は,アルゴリズムが出題のポイントになることが多いので,定番アルゴリズムの理解が大切です。
ちょっと古いですが,定番本としては『定本 Cプログラマのためのアルゴリズムとデータ構造 』がおすすめです。

ちなみに,ちょっと基本情報技術者試験からはそれますが,前回(平成26年秋)の情報セキュリティスペシャリスト試験の午後1で,C++でのスタック領域やヒープ領域などのメモリ配置について出題されました。
この問題を解くのに,昔,『C言語ポインタ完全制覇』で学んだ内容が,とても役に立ちました。
この本は,具体的なメモリの配置やOSの内容などに触れながら,地に足をつけてC言語が学べるのでおすすめです。
基本情報技術者試験では,ここまで必要はありませんが,情報セキュリティスペシャリスト受験者で,セキュアプログラミングを選択する場合には,知っておいた方がいい内容です。

試験に出てくるプログラミング言語は,試験のためだけに勉強しようとして,参考書や問題集だけでマスターしようとすると,行き詰まりがちです。
面倒でも,一度はしっかり,言語の基礎から学習して,ひととおり使いこなせるようになることが大切です。

また逆に,「そのプログラミング言語が,自分でマスターできているかどうか」を試すのに,試験問題はとても有効です。
初心者レベルを脱して中級者ぐらいになっている,というのが,基本情報技術者試験のプログラミング言語問題での難易度の設定ですので,初心者脱出の判定テストとしては最適になります。

プログラミング言語は,一朝一夕に学ぶことはできません。
一歩一歩積み重ねて,確実にレベルアップしていきましょう。