基本情報技術者試験のプログラミング言語
わく☆すた,美月です。
昨日,誰かがプログラミング言語Javaの話をしていて,「うわー,そんなに大変なら基本情報はJavaで受けたくない!」という声を聞いたので,情報処理技術者試験でのプログラミング言語のお話しをしたいと思います。
情報処理技術者試験で,プログラミング言語の問題が必須なのは基本情報技術者試験だけで,C,COBOL,Java,アセンブラ,表計算の5言語のうちから,1つ選択です。
といっても,応用情報技術者試験では言語がいらないか,というとそんなことはなく,何か一つの言語(C,C++,Javaあたりがベター)をマスターしていることが求められます。アルゴリズム問題では,単にアルゴリズムを知っているというだけでなく,プログラミング経験がないとわからないテクニックを結構聞かれます。文字列型を数値に変換する方法,配列の添字の付け方,ポインタの扱いなどは,プログラミングをやってないとわかりづらいところです。
情報セキュリティスペシャリスト試験も,セキュアプログラミングは,C++,Java,Perl(注:平成21年当時)のうちで出題されますので,プログラミング言語をちゃんと知っておいた方がベターです。(避けて通ることは可能ですが)
今回(平成21年春)の試験で,基本情報技術者試験のプログラミング言語の選択に,「表計算」が追加されました。
先ほど,直近の基本情報技術者試験の午後問題を解いてみましたが,この「表計算」の追加が,基本情報技術者試験の合格率アップの要因の一つだな,と感じました。解いていて頭を使うので,決して簡単というほどではないのですが,プログラミング言語を学習する労力を考えると,格段に楽だと思われます。
必要な勉強量と難易度をふまえて,基本情報技術者試験に受かりやすい言語,ということを考えると,
表計算 >> アセンブラ > COBOL >> C > Java
の順番だと,私は考えてます。
ただ受かるだけなら,前回の問題を見る限り,表計算が一番楽だと思います。Excelの本で表計算のやり方を勉強して,初級シスアドの過去問で問題演習をするぐらいで,合格レベルに到達すると思います。問題文がややこしいので,ある程度の読解力と論理的思考力は必要ですが,それをクリアしていれば,表計算自体の勉強というのはあまりありません。絶対参照と相対参照という考え方がわかっていればいい,くらいだと思います。
ただ,表計算で受かっても,技術者としては通用しないとは感じます。
基本情報技術者試験に限っては,就職の面接などではよく,「あ,基本情報持ってるんですね。言語は何をとりました?」と聞かれます。ここで,「Cです」「Javaです」というのと,「表計算です」というのは,かなり印象が違います。プログラミング能力が要求される応用情報技術者試験につながりにくい,という面でも,受かった後のレベルアップが難しくなります。なので,コンピュータ系の技術者になりたい人には,他の4言語の方がおすすめです。
他の4言語では,マスターするまでの時間が一番短いのは,アセンブラです。
これは,仮想機械COMET II用のアセンブラCASL IIで,実用的ではないですが,コンピュータの仕組みを知るには,最適な言語です。アドレスやポインタの考え方も理解しやすくなりますし,後につながるという意味では,とてもおすすめな言語です。CASL IIは,マスターするのに大体1ヶ月ぐらいで,他の言語に比べると短いので,会社の新人研修での試験対策講座ではよくCASL IIが選択されます。
手間はかかるけど,誰でも確実にマスターでき,資質に関係なく合格しやすいのがCOBOLです。
もともと,事務用に開発され,誰が書いても同じようなプログラムになるような言語ですので,ステップを踏んで順に覚えていけば,確実に組めるようにはなります。教えやすいので,専門学校で選択されることが多い言語です。
覚える文法は多いので,ひととおり学習するのに3ヶ月ぐらいはかかりますが,覚えてしまえば,確実な得点源となります。
ただ,COBOLは,古い言語で考え方が古く,マスターしても次につながっていかないのが難点です。実際の講義での,私の体感として,応用情報技術者試験のアルゴリズムで苦戦する人には,基本情報技術者試験でCOBOLを選択した人が多いように感じています。COBOLの考え方と,C,C++,Javaなどの最近多い言語との間には,隔たりが大きいので,他の言語になじみづらい,というところがあります。技術者として上を目指す人は,最初の言語にCOBOLを選択しない方がいいと思います。
Cは,とっつきづらいですし,ひととおりマスターするのに時間はかかりますが,いろいろ役立つ言語です。
基本情報技術者試験のC言語の問題は,Cの文法というよりアルゴリズムを聞いてくることが多いので,アルゴリズムも同時に学習できます。応用情報技術者試験に,一番直結している言語だと思います。ひととおりマスターするのには,3ヶ月から半年ぐらいはかかると思いますが,応用は効きます。個人的には,Cを学習した後にJavaをやると,言語をより深く知ることができていいと感じています。
Javaは,マスターするのに一番時間がかかる言語ですが,就職や転職には一番使えます。
基本情報技術者試験試験のJava問題は,基本的に,オブジェクト指向をベースにして,ポリモルフィズムや継承などの概念を聞いてきます。ですので,オブジェクト指向の理解が不可欠です。それだけではなく,文法的にも覚えることは多いので,実務で使えるようになるには,普通にやってたら半年以上かかります。
「基本情報技術者試験に受かる」という目的だけなら,一番回り道になる言語です。実際,Javaを選んだ人の合格率は低いですし,難易度も高いと思います。ただ,将来性を考えるなら,今頑張ってマスターしておく,というのはおすすめです。
ということで,言語の選択,どれがベストかは個人差が大きいです。
長所,短所を踏まえて,自分の目的に合った言語を,ぜひ選んでみてください。