
初心者だけど、ひと月も有ればC言語の勉強を終わらせられるだろう

学校の授業でC言語をやっているし、基本情報技術者試験もC言語を選ぼう
あなたはこんな理由で、基本情報技術者試験のプログラミング言語をC言語で選ぼうと思っていませんか?
しかし上記のような理由で、C言語を選ぶ人は非常に危険。
何故ならばC言語は、初心者向きのアセンブラや表計算より言語を習得するまでの時間が長く、試験で出題される問題も難しいからです。
目次
基本情報技術者試験のC言語は、正直言って初心者向きのプログラミング言語ではありません。
だからこそ勉強時間をしっかりと確保できない限り、C言語は選ばない方が無難と言えるでしょう。

C言語の問題ってそんなに難しいのか?

個人的な感覚で言うと、表計算のマクロ問題を複雑にしたような内容が出題されるという感じかな

それは中々難易度が高い問題だな

加えてアルゴリズムの要素を含んでいる問題が出題されやすいから、アルゴリズムに苦手意識がある人は、選ばない方が良いね

なるほど。安易に選んではいけないという理由が分かる気がするな
・C言語を選ぶ際の前提条件

まずはC言語を選ぶ際の前提条件を挙げます。
それは以下の通りです。
- プログラミングの基礎知識が備わっているか?
- プログラミング初心者ならば2ヶ月程度、勉強時間を確保しているか?
また注意事項についても1つ挙げておきます。
- C言語を勉強しているからといって、安易に選んではいけない
では1つずつ条件を見ていきましょう。
・プログラミングの基礎知識が備わっているか?

基本情報技術者試験においてC言語を選ぶ場合、
前提条件としてプログラミングの基礎知識が備わっているという点を考えなくてはいけません。
というのもC言語というプログラミング言語は、勉強のゴール地点と呼べる場所が、他の言語と比べて遠いからです。
具体的にはC言語を習得するまでに、アセンブラの習得を2~3回程度できてしまう程、難易度に差があります。
そのためある程度の基礎知識が無いと、C言語を習得するまでに時間が掛かり過ぎて、勉強時間が足りなくなるといった事態が発生するでしょう。

C言語を1回習得するまでにアセンブラを3回習得できるって、かなりの差があるな

C言語の場合、覚えるのが難しいポインタという難関があるからね。それを考えればアセンブラには、そんな苦戦する要素は無いし・・・

そこまで習得するまでに差があるならば、選ぶ言語を考えた方が良いな
・プログラミング初心者ならば2ヶ月程度時間を確保しているか?


じゃあプログラミングの初心者は、絶対にC言語を選んじゃダメなのかな?
ここまでの内容を読んだ人の中には、上記のような考えを持った初心者の人もいるかと思います。
もちろん初心者がC言語を絶対に選んではいけないという訳ではありません。
そして初心者がC言語を選ぶ場合は、勉強時間を十分に確保するという前提条件を守れば、十分に合格圏内まで点数を持って行けるでしょう。
ちなみに初心者がC言語の勉強を終わらせるまでに、必要な勉強時間の目安を挙げると、
大体2ヶ月。
内訳は以下の通りとなっています。
- C言語の習得に3~4週間
- 過去問題の復習に3~4週間
上記の点を踏まえると、C言語の勉強に掛かりきりだとしても、2ヶ月程度は勉強時間が必要になるため注意が必要です。
またC言語の勉強を始めた、もしくはC言語の勉強を進めているという人でも、2ヶ月程度の勉強時間を確保しておいた方が無難と言えるでしょう。

C言語って習得だけでなく、過去問題の復習にも時間が必要になるんだな

C言語の問題って難しいからね。特に配列の操作が複雑になりやすいから、プログラムを読み慣れるまでかなりの時間が必要だと言えるよ
・C言語を勉強しているからと言って安易に選んではいけない

冒頭でも挙げましたが、

学校の授業でC言語をやっているし、基本情報技術者試験もC言語を選ぼう
なんて考えを持っている人は、もう一度C言語の勉強の進行具合を見つめ直しておください。
何故ならばC言語というプログラミング言語は、ポインタを習い始めてからが本番。
ポインタと構造体の勉強に入るまでは、すべてが前座以下と言っても過言ではありません。
だからこそ安易にC言語を選ぶと、ポインタや構造体で痛い目を見て挫折するようになります。
また基本情報技術者試験では、ポインタと構造体の2つの要素が絡んだ問題が出題されます。
例えば平成30年秋期に出題された以下の問題。


出典:平成30年 秋期 午後試験 問9より
この構造体は、構造体にポインタが含まれており、構造体とポインタの内容をキッチリ把握していないと解くのが難しい問題となっていました。
そのためC言語は、学校の授業でポインタと構造体についての勉強が終わっており、ポインタと構造体に自信がある人のみが選んだ方が良い言語と言えるでしょう。
ちなみにC言語の試験勉強は、C言語の経験がある人でも、1ヶ月程度の勉強時間を確保しておいた方が無難です。
基本情報技術者試験の3~5日程度になると、試験の準備によってバタバタするため、勉強時間が少なくなると思って勉強のスケジュールを立てておきましょう。

なんでこんなにポインタの話をするかというと、基本情報技術者試験におけるC言語の問題は、ポインタの問題がほぼ間違いなく含まれるからだよ。

だからC言語の問題に挑む際には、ポインタを理解しているという点が、最低限のラインになるから頭に入れておこう
・C言語の問題に答えるために必要な知識とは?

最後にC言語の問題を答える上で、必要な知識や勉強内容をザックリと書き出してみました。
- 変数の扱い方
- データの型や型変換
- 配列(2次元配列を含む)
- 各種条件分岐文
- 演算子
- for文やwhile文といったループ系の処理について
- 入力処理と出力処理
- ポインタ
- 関数の戻り値とvoid関数について
- 構造体
- ヘッダファイルとinclude文の基礎知識
- 定数とdefine文について
- ファイルの処理について
以上が基本情報技術者試験におけるC言語の問題を答える上で、必要な知識や勉強内容となっています。
人によっては上記の内容を見ると、

C言語って習得するのに、そんなに知識が必要なの?
と思うかも知れませんが、残念ながらこれでもまだ試験対策の内容に触れていません。
だからこそC言語の習得は難しい、という事を頭に入れておいてください。

プログラミング言語の習得の何が難しいって、上記で挙げた内容を単純に丸暗記するだけでなく、使えなきゃいけないという点についてだよね

特にC言語は、ポインタの習得に時間が掛かる。だからこそ長めに勉強時間を確保して、試験に挑む必要があるぞ
まとめ
今回は基本情報技術者試験において、C言語を選ぶ際の注意事項や前提条件について解説しました。
- C言語を選ぶ際の前提条件
- プログラミングの基礎知識が備わっているか?
- プログラミング初心者ならば2ヶ月程度時間を確保しているか?
- C言語を勉強しているからと言って安易に選んではいけない
- C言語の問題に答えるためには、C言語知識をちゃんと把握しておく必要アリ
基本情報技術者試験のC言語という分野は、正直言って初心者が安易に手を出すべきではない分野です。
だからこそ試験においてC言語を選ぼうとしている人は、勉強期間を長めに確保してください。
また勉強の前半で、

あれ? C言語って意外に簡単じゃないか?
と思っても油断しないように。
何故ならばC言語の本番はポインタからであり、ポインタで勉強時間の大多数を取られる、もしくは挫折を経験するといった事態も考えられるため注意してください。
ちなみに以下の参考書は、初心者にこそおススメしたいC言語の参考書です。
試験対策本ではありませんが、難解なC言語というプログラミング言語をこれ以上なく、分かりやすく解説している参考書であるため、是非とも勉強に取り入れてみてください。
コメント