プログラミング未経験でも市販の教材で合格!(独学) 基本情報技術者試験|合格体験記

まえがき

IT業界・プログラミング未経験者が、「独学で基本情報技術者試験に合格できるのか?」を実践した際の体験記です。

出題形式が「科目A」「科目B」に変わった2023年4月に受験し合格しています。

2023.5.17に正式な結果が出ており点数は次のとおりです。

科目A855点
科目B725点

合格までに要した期間は2~3カ月(200時間)くらいです。

規約により「〇〇と似たような問題が出題されたよ」など、試験問題を示唆する表現はできません。

そのため、実際に使用した教材の紹介、学習方法の紹介が中心です。

私のように、経験もないが「独学でもしてみよっかな」と考えている人へ、試験のイメージを少しでも共有できればうれしいです。

(参考)この記事を書いている人が独学で取得した資格などはこちらです。

使用した教材

受験すると決めたので、試験について調べていると次の情報を目にしました。

  • 試験時間・出題数が変わる
  • アルゴリズム・プログラミングの学習が必須になる

「!? 試験変わるの」となりつつ、試験そのものを調べるところから私の試験は はじまります。

2023年にITパスポート試験を受けていたため、「科目A」の学習方法はイメージできています。

しかしながら「科目B」は結局のところ、試験が変わり「難しくなるのか」「難しくならないのか」などハッキリと分かりません…

とにかく、プログラミングが未経験の私には「科目B」の対策が必須なことは判明したため、「最新の試験に対応している教材を探そう!」このような思考で選んだ教材です。

それでは、使用した教材を紹介します。

  • テキスト|令和05年 イメージ&クレバー方式 栢木先生の基本情報技術者試験教室
  • 問題集 |令和05年【上期】 基本情報技術者 パーフェクトラーニング予想問題集

この2冊のみです。

テキストから解説します。

令和05年 イメージ&クレバー方式 栢木先生の基本情報技術者試験教室

テキストは「科目Aの学習」と「用語を調べるための辞書」として使用しています。

500ページ以上の書籍ですが図解も多く文章表現は「ですます調」でやわらかいです。

(IT業界・プログラミング未経験者が独学でも)科目Aは「この1冊」と「過去問道場(後述)」で合格レベルに到達できます。

換言すると「科目B」は厳しいです。

本書でもプログラミング未経験者や経験の浅い人には「アルゴリズム関連の参考書」で別に学習することを勧めています。

私見になりますが、まったくの未経験者がテキストのみで学習をしても「公表されているサンプル20問」を独力で解くのもキツイと思います。

「テキストの解説がどうのこうの」ではなく、テキストだけでは、問題を解く回数が不足します。

そのため、いざ科目Bの問題を前にすると手が動きません。

私は、「プログラミング未経験者や経験の浅い人」に入るので「科目B」の対策として、問題集を購入しました。

令和05年【上期】 基本情報技術者 パーフェクトラーニング予想問題集

本書はプログラミングとアルゴリズムの対策が中心の問題集です。その他にも「科目A」や情報セキュリティ対策の問題も収録されています。

パーフェクトラーニングを購入した一番の理由は、「科目B」の試験形式の疑似言語に修正したうえで(for文などで)問題を収録しているからです。

予想問題集とありますが、ひととおり学習した後に実力を計るための模擬試験としてではなく、日ごろからプログラムをトレースする練習用の教材として使用しました。

(実務経験者やプログラミング経験者は別として)科目Bの問題は、科目Aの過去問を暗記する学習だけでは解けません。

数学の問題で例えると

科目A⇒公式を覚えていれば解ける問題
科目B⇒問題文から解答までの道筋を推定することを要する応用問題

といったところでしょう。

経験則になりますが、合格するためには本書の難易度「標準」の問題を「解説を見ないでトレースできるレベル」には最低でも持って行きたいところです。

(私は、このレベルでサンプルの20問を解いた際に6割程度の正解でした)

参考|「ITパスポート」で基礎理論とアルゴリズムの学習を回避した場合

ITパスポートは、「基礎理論とアルゴリズム」の分野を捨てたとしても、他の分野で挽回できれば合格に届きます。

基本情報技術者試験の「科目B」は、20問のうち16問が「アルゴリズムとプログラミング」分野です。

そのため、合格基準を満たすためには「基礎理論とアルゴリズム」の学習を回避できません。

暗記だけでは対応できない分野なので、「合格する!」と決めたら学習するしかありません。

以上2つが使用した学習教材です。

次に、それぞれの教材を科目に対応させて、学習方法を紹介します。

基本情報技術者試験の科目Aの学習のすすめ方

先ず、テキストを読み始める前に、(午前試験の)過去問に目を通しています。

というより、テキストを購入する前に最新の1年の過去問を確認しました。

理由は、自分がこれから学習し「合格するために解ける必要があるレベル」を把握するためです。

基本情報技術者試験の科目Aの勉強は次の2つを使用しています。

  • テキスト(令和05年 イメージ&クレバー方式 栢木先生の基本情報技術者試験教室)
  • 過去問道場

ITパスポート試験でお世話になった人も多いはず!の過去問道場は、基本情報技術者試験ドットコムで提供しているサービスです。

後ほど紹介しますが、無料で過去問を演習できるサイトです。

特に抵抗がなければ、無料なので、過去問は過去問道場をお薦めします。

利用しない場合は、ご自身で用意した過去問題集、過去問アプリなどに変えて下さい。

ステップ1|テキストを一読もしくはステップ2へ直接進む

テキストは、単純に読みたかったので過去問演習の前に通読しました。

その後は、辞書のように使ったり、過去問の頻出論点と重複しない範囲を読んだりしています。

そして、テキストを読む際は、用語を暗記するようにではなく、「なるほど!書いてある内容は分かる」程度でガンガン進めています。

例をあげて理由を説明します。

「基数変換」の学習だけみると「何でこんな面倒なことするの」となるかもしれません。しかしながら「IPアドレスの問題」を解くために必要です。

また、テクノロジ系の「エンキュー・デキュー」が分かれば、簿記を未経験でもストラテジ系の「先入先出法」による在庫評価の考え方も分かります。逆もしかりです。

このように、学習する論点が絡み合う分野もあるため、「学習を進めること」そのものが試験を効率的に攻略する手段となります。

ステップ2|過去問を8割以上正解できるまで周回する

過去問道場を利用したので、おすすめ機能で表示される範囲を周回しました。

合格基準が6割以上なので余裕をみて8割と設定しています。

過去の試験がどうだったかは分かりませんが、ITパスポート試験を受けた際に、「過去問演習は確かに効果的だが、初見の問題もそれなりに出題されるんだな」と感じました。

試験区分は異なるにせよ「ITパスポート試験」と「科目A」の学習方法は「過去問をひたすら解く」が中心です。

根拠は自分の経験と勘なので「理由としては説得力に欠けるな」と思いながらも モヤモヤしたため、過去問演習だけでなくテキストも読んでいます。

ちなみに、過去問の解説や選択肢に登場する用語でテキストにないものは、自分で調べました。


以下、私のような試験に初めて臨む方へのアドバイスになります。

過去問は正解の記号を暗記するよりも、用語の意味や計算過程を理解するように学習して下さい。

仮に、数値や文章表現を変えられても対応できます。

テキストにある「基礎理論」「アルゴリズムとプログラミング」は理解するように勉強してください。

基礎理論、アルゴリズムとプログラミングは「科目B」の問題を解く上で避けられません。そのため、テキストに書いてある範囲は理解する必要があります。

STEP2での「理解」は「書いてある内容は分かる」から一歩進んで「自分の言葉で説明できる」のイメージです。

マネジメント・ストラテジの分野は、テキストだけでなく問題を解いて用語を覚えて下さい。

マネジメント系、ストラテジ系は知識問題の要素が強いのでテキストだけでも対策できます。

しかしながら、試験問題の文章表現に慣れる必要があるため、問題を解いて理解度を確認します。

科目Bの学習のすすめ方

ここからは「科目B」の学習方法を紹介します。

「科目A」同様、使用した教材と実践した学習内容に沿って説明します。

使用した教材は次の2つのみです。

  • 「科目B」の問題集|令和05年【上期】 基本情報技術者 パーフェクトラーニング予想問題集
  • 過去問道場

科目B(アルゴリズムなど)に特化したテキストは使用していません。

試験問題のイメージとしては、公開されている「サンプル問題」が「科目B」についての一つの基準です。

まず、試験対策として「どこまで学習するのか」の客観的な判断材料となるため、問題集を解き始める前に「サンプル問題」には目を通しています。

(参考|IPA(外部サイトへのリンク)|公開問題とサンプル問題へのリンク

実施に問題を解けなくとも、次の①と②は把握できます。
①現時点で自分は問題を解けるか否か
②問題文のボリュームから解答に必要なスピード感

①②を把握できれば、自分の現状と合格とのギャップを計ることができ、必要とされる勉強の精度や要する時間が掴めるでしょう。

つづいて、具体的な勉強方法の紹介に移ります。

「情報セキュリティ」⇒「アルゴリズムとプログラミング」の順で説明します。

「科目B」情報セキュリティの勉強方法

「情報セキュリティ」の分野は知識問題の要素が強いです。

そのため、テキストと「科目A」の過去問を往復して専門用語を暗記する作業が中心です。

テキストと過去問で暗記作業⇒科目Bの文章問題と解くという流れです。

サンプル問題を確認すると、科目Bは専門用語の意味を直接問う(ひらたくいうとクイズのような問題)よりも、専門用語を「どのように運用(対策)していくか」の視点が問われています。

科目Aは解けるが科目Bになると混乱する場合は、次の手順で情報を段階を追って整理してみて下さい。

問題文にある「A社」「B社」など、人、会社、端末などの図を下書き用紙に書く
STEP1で書いた図の下に、役割、権限などの情報を箇条書きで追記していく
STEP1・2で整理した図(モノ)を「矢印でつなぐ」「丸で囲いグループ化する」などで関係性を視覚化する

答え合わせの際は、自分で作成した図と解説を比較し、

  • 「解答までの道筋は文章のどこから読みとれるのか」
  • 「自分は文章のどこを見落としたのか」

など、「なぜ間違えたのか」を特定してみて下さい。

問題を解くことに慣れてきたら、手順を省いたり簡略化して、試験の制限時間内で解ける手順へ改良して下さい。

時間はかかりますが、理解(解説をみて納得)できると、文章の表現や資料の与え方で迷いにくくなります。

それでは、「アルゴリズムとプログラミング」の学習方法を実際にこなした流れに沿って紹介します。

「科目B」アルゴリズムとプログラミングの勉強方法

勉強の全体像を整理すると次の流れです。

「科目A」の基礎理論、アルゴリズムとプログラミングの過去問を理解する

科目Bの問題を解く前に最低限の知識を身に付けます

「パーフェクトラーニング予想問題集」の難易度「基本」をトレースしながら解く

STEP1を終えていれば、「全く解けない…」とはなりにくいと思います。

「パーフェクトラーニング予想問題集」の難易度「標準」をトレースしながら解く

STEP3が終わるころには、IPAのサンプルも解ける問題がチラホラでできます。

「パーフェクトラーニング予想問題集」の難易度「難問」をトレースしながら解く

解説を確認した後でも良いので、独力で解けるようにしておきたいレベルです。

「旧・午後試験」の問題を時間を気にせずに解く

STEP4までと難易度のレベルが違うので深入りはしなくともOKです。

以降、それぞれのステップを解説します。

ステップ1|「科目A」の基礎理論、アルゴリズムとプログラミングの過去問を独力で理解する

ここでの「独力で理解」とは、暗記で正解するのではなく、正解までのプロセスを理解したうえで解ける状態です。

私は、少なくとも解説文が示す正解までの過程が腑に落ちるまで学習しました。

「過去問を何年分こなすのか」は人によりけりかと思いますが、私は過去問道場の「基礎理論」「アルゴリズムとプログラミング」の分野(のみ)は全て(266問)解いています。

この分野は、「最新の技術がどうのこうの」は少ないと思うので、遡る年数はあまり気にしていません。

ステップ2| 「パーフェクトラーニング予想問題集」の難易度「基本」をトレースしながら解く

難易度が一番低い「基本」から順に進めます。

疑似言語の仕様が分かればトレースできる問題も多いため、未経験者でも、解説を読んで繰り返し解くと「プログラムのトレース」はできる(ようになる)でしょう。

しかしながら、試験当日は(おそらく初見の)日本語の問題文から「何をしたいのか」「問題文で示される用語は何を意味しているのか」などを読み解く必要があります。

問題文を読んだ後に、プログラムのトレースなどで正解を導きます。

私は、問題文が実務でいう「仕様書」なのかなと思い、問題文も理解するように勉強しています。

問題集の解説を、問題文の「どの部分の文章(字句)からその解説が導けるのか」を探すように読むと、

  • 問題文を理解する学習
  • プログラムをトレースする学習

がバラバラになりにくいです。

解説を見なくとも独力でトレースできたらステップ3へ進みます。

ステップ3| 「パーフェクトラーニング予想問題集」の難易度「標準」をトレースしながら解く

「基本」問題を解くだけでは「科目B」の合格は厳しいです。

繰り返しになりますが、試験問題の内容を示唆できないので、IPAが公開しているサンプル問題と比較して下さい。

ステップ2と同様に、プログラムをトレースするだけでなく、問題文の「どの部分の文章(字句)からその解説が導けるのか」を理解できるまで学習しました。

また、トレースの手順を暗記するよりも、プログラムを1行ずつ和訳し、「何をするプログラムなのか」「何をするための前提となるコードなのか」を考え問題を繰り返しています。

解説を見なくとも独力でトレースできたらステップ3は終了です。

参考記事
説明する人 丸暗記に頼りたくない方は必見!独学にも応用できる理解を深める勉強法「ファインマンテクニック」

プログラミングの学習は暗記に不向きです。そのため、問題集を繰り返したために正解を暗記してしまった場合には、自分の言葉で理解度を確認する勉強方法が役に立つかもしれません。


ステップ3までの学習を終え、IPAが公開している「サンプル問題20問」を制限時間内で解けるか試したところ、6割程度は自身で導いた結果と正解が一致しました。

「なんとかなるかな」と思いつつも 試験日まで日があったため、追加でステップ4・5をこなして試験に臨んでいます。

ステップ4・5は、より合格に近づくためのステップです。

ステップ4| 「パーフェクトラーニング予想問題集」の難易度「難問」をトレースしながら解く

ステップ2、ステップ3と同様に、プログラムをトレースするだけでなく、問題文の「どの部分の文章(字句)からその解説が導けるのか」を理解できるまで学習しました。

1問に対する文章量は多いですが、収録されている問題数は少ないです。

また、「難問」は文章量と資料の増加に伴い説明も詳細になるため、指示や意図が「標準」よりも読みとりやすいと感じました。

解説を見ながらでも良いので、問題文からプログラムをトレースできればステップ4は終了です。

ステップ5|「旧・午後試験」の問題を時間を気にせずに解く

2023年4月から「午後試験」が「科目B」へ変わることは分かりました。

では「午後試験とは?」と気になっていたので過去問道場へ潜入し5年分(R1〜H27春)の問題を2周しています。

もし「基本情報技術者試験の学習で一番苦労したのは?」と聞かれたら、「午後試験に手を出したこと」と答えます…特に、H29(春)のダイクストラ法の問題。

ただし、学習が進んた状態で解いたため「まったく分からない」とはならず、自信を持って試験日を迎えています。

※旧・午後試験における疑似言語の仕様は「科目B」と異なるため、試験直前の対策とする場合は注意してください。

参考|旧・午後試験H29(春)の解説動画(YouTube動画へのリンク)|C言語学習ナビゲーション

過去問道場の解説を読んでも分からないので、「YouTubeに解説動画はあるかな…」と さまよい、C言語学習ナビゲーションというチャンネルにある解説動画を参考にトレースし解決しました。

面識はありませんが、一方的に感謝しております。


ステップ5までを終えた状態での、当日の試験は「あっ!合格できるかな」と少し余裕をもってこなしています。

少なくとも「午後試験」の問題をすべて理解していない状態での合格です。

ただし、問題集は限定しないので、合格のためにはステップ4に相当するレベルまでの学習をおすすめします。

ここまでが、「科目A」と「科目B」に分けての学習方法の紹介です。

試験学習に役立つサイトなど

最後に、実際に利用したサイトなどを紹介します。

基本情報技術者試験ドットコム(外部サイトへのリンク

(おそらく)みんな大好き!過去問道場です。

過去問だけでなく、試験の概要や試験範囲なども掲載されているため、情報収集もこなせます。

このクオリティを無料で学習できるとは素晴らしいの一言です。少し大げさですが、「管理人さん」には頭が上がりません。

また、「おすすめテキスト問題集」も紹介しているので興味がある方は参考にして下さい。

【基本情報技術者試験YouTuber】すーさん(YouTubeチャンネルへのリンク

基本情報技術者試験の内容を無料で学べるYouTubeチャンネルです。

用語、理論などをアニメーションを使って説明しています。

説明は明瞭かつ平易な表現なので、初心者にも親切な内容です。

「オブジェクト指向」を「架空のゲームキャラ」などを用いたゲームに例えて解説しているため、テキストよりもイメージし易かったです。

また、出題範囲の項目を整理して「再生リスト」を作成しています。

そのため、リストの順番に視聴することで、初心者でも「次に学習する範囲」が明確になり迷子になりにくいです。

私はテキストを読む前に動画を視聴し「本を読む時間」を節約しています。

試験の全体像を動画で学ぶ ⇒ テキスト・問題集などの教材で詳細に学ぶ の流れで学習する方におすすめしたい内容です。

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典(外部サイトへのリンク

「試験学習のための」ではありませんが、ITパスポート試験から愛用しているサイトです。

(正規の表現では)分かりにくい用語などを、「分かりそう」な平たい表現に変換して説明しています。

一見、(ピヨピヨが)ふざけているようにも見えますが、「分かりそう」に情報を簡略化した後に、詳しい説明に入るため見た目以上にガチな解説です。

今でも、IT用語を調べる際に「分かりそう にないかな…」と、最初に訪問しお世話になっているサイトです。

【短期間でIT資格取得】IT学校さいとうさん(YouTubeチャンネルへのリンク

アルゴリズムの解き方などを解説しているYouTubeチャンネルです。

「科目B」のサンプル問題も解説しています。トレースを具体的に解説しているため「過去問道場の解説だけでは理解が厳しい…」方は参考にしてみて下さい。


まとめ

ITパスポート試験から期間を開けずに学習したため、「科目A」の対策はスムーズに終えています。

そのため、私の基本情報技術者試験の学習は「科目B」の対策が中心です。

試験を終えて振り返ると、点数は高得点とは言えませんが「試験に受かるための学習」は短期間で実行でき満足しています。

プログラミング未経験者にとって「科目B」の学習は、いかに「プログラムをトレースする」かが悩みどころです。

しかしながら「プログラムをトレースする」は問題で示される仕様があってこそです。

少し強い言葉になりますが、空欄を埋めた正しいプログラムを解説で確認した後なら、時間さえかければトレースできます。

試験は制限時間の範囲内で、(おそらく)初見の問題文から「プログラムをトレースするための仕様」を読み解くことから始まります。

プログラムをトレースする学習で行き詰った際は、問題文の「どの文章(表現)や資料から」そのプログラムを作ることができたのか の視点からの学習も試してみて下さい。

独学する際は陰ながら応援しています。

最後までお読みいただき、ありがとうございました。