基本情報技術者試験でプログラミングへの第一歩
ITパスポートの上位資格で、IT企業では就職や昇格にあたり最低限必要とされることが多い資格です。試験では擬似的なプログラミング言語による問題が出題されます。
税理士業務や経理の仕事は毎月繰り返しの作業が多く、プログラミングで自動化できればメリットは大きいのですが、私自身、エクセルマクロが理解できず何度も挫折していました。
この試験を通じてプログラミングの考え方を一から学習することが正攻法であると考え、試験勉強を始めました。

1.プログラミングの最初の一歩
試験勉強の例題を使って次の3つに慣れていくことが、プログラミングの第一歩であると感じています。独学でのプログラミングの挫折率は90%と言われており、私自身も何度も挫折してきました。
変数の使い方、選択や繰り返しの処理がしっかり理解できていないため、仕事での実用的なレベルに到達できず、結局あきらめてしまっていました。
(1)アルゴリズムを理解する
問題を解決するための処理手順のことを「アルゴリズム」といいます。例えば横断歩道を渡るためのアルゴリズムであれば、「信号の色を確認して、青なら横断歩道を渡り、赤なら青になるまで待つ」という手順となります。
人間の頭では自然にできることですが、コンピューターに仕事をさせる場合は、ひとつひとつの手順を指示します。「どのような判断をして、どのような順番で進めているのか」場合分けをしながら丁寧に分析する必要があります。
(2)変数の使い方を理解する
数字や文字を入れておく「箱」の役割をするのが「変数」です。箱に名前をつけて、中身を自由に出し入れすることができます。例えば「100円のりんごを7個買った場合の金額」であれば計算式は100円X7個=700円ですが、りんごの値段や買った個数が変わると計算式が成り立たず使えなくなります。
そこで、変数を使って「値段を入れる箱」と「購入数量を入れる箱」を用意すれば計算式を「値段X数量」とすることができ、値段や数量を変えながら計算できます。

変数を使うことで、何度も繰り返し利用できたり、修正が簡単にできたり、プログラムが読みやすくなるメリットがあります。変数を使わないプログラムはほぼ無いので、変数の使い方を理解する必要があります。
(3)選択と繰返し処理を理解する
次の3つを使うことで、条件に応じた繰り返しの処理ができます。
〇 選択「if文」
「もし〇〇の場合は処理Aを実行する。そうで無い場合は処理Bを実行する」というように、条件によって処理を分岐させる際に使用します。
〇 決まった回数の処理を繰り返す「for文」
「バースデーケーキには年齢の数だけローソクを1本ずつ立てる」というように、決められた回数だけ処理を繰り返す際に使用します。
〇 条件を満たしている間のみ処理を繰り返す「while文」
「仕訳帳の最後の行になるまで、総勘定元帳に転記する」というように、条件を満たしている間のみ処理を繰り返す際に使用します。
2.試験の概要
- 高度IT人材となるための基本的な能力が問われる国家試験
- 対象者は主にIT業界で働く方や技術職の方でITエンジニアの登竜門資格
- 情報処理技術者試験のレベル2で、ITパスポートより一つ上の試験
- 試験方式はITパスポートと同じCBT方式で、試験日は自分で決めます
- 試験範囲は、A試験(IT技術、管理、経営全般)とB試験(プログラミング)
- 1000点満点中の各600点以上で合格となり、直近の合格率は50%程度
3.出題される問題
次のような問題が出題されます。このプログラムは、変数numという箱に何か数字を入れると、「3で割り切れる」、「5で割り切れる」、「3と5で割り切れる」、「3でも5でも割り切れない」のいずれかが変数resultの箱に入るというものです。空欄の穴埋めでは、「どの順番で条件の判断させればよいか」が問われています。

出典:基本情報技術者試験 科目Bサンプル問題(2022年12月26日分)
解答:ウ
正しい処理結果を導き出すためには、場合分けをして順序立てて考えることが必要となります。このような考え方は、税理士試験などの暗記中心の試験では問われないのですが、考える習慣をつけることで税務の取扱いや手順を整理するのにも役立ちます。
4.おわりに
2023年11月から約2ヶ月勉強して受験し、科目Aが765点(〇)、科目Bは530点(X)で不合格でした。文系の私は数学的なプログラミング問題が苦手で、合格点に届きませんでした。
あきらめずに1ヶ月後に再度受験し、科目Aが810点(〇)、科目Bが625点(〇)で合格できました。科目Bのプログラミング問題を何度も解くことで読解力が上がり、簡単なプログラムの内容であれば理解できるようになります。
書籍やインターネット上には、エクセルマクロなどの多くのプログラムが記載されています。それらを部品として加工し組み合わせることで、業務効率化に必要なプログラムを作ることができます。
自分自身の業務に加え、お客様の業務効率化にも貢献できるように、今後も日々試行錯誤していきます。

