MENU

これから試験勉強を始める初学者におすすめしたい、基本情報技術者試験の学習方法


はじめに

こんにちは、くまごろーです。

今回は、基本情報技術者試験の勉強方法についてまとめたいと思います。
この記事が対象にしている人は、主にこんな感じの方です。

  • 今年の秋以降に基本情報を受ける予定の方(受験まである程度時間のある方
  • プログラミング学習を始めたばかり(これから始める)で、これから少しずつ基本情報の勉強もしたいなーという方
  • プログラミング自体は勉強しているけど、周辺知識の方はあまり・・・という方



私の学習状況・成績

  • プログラミング学習は2020年7月に開始。仕事をしながら勉強してました。
  • 基本情報の勉強は学習開始当初に1週間程度と、2021年1月に1か月弱、ポートフォリオアプリ作成と同時並行で実施。正直あまり勉強はしていません。
  • 基本情報は午前試験を今年1月下旬、午後試験を2月初めに受けて、結果はこんな感じでした。
午前試験
午後試験

「あんまり勉強してないのに95点?」て感じですよね。(私もびっくりでした)
試験勉強をあまりやってなくてもこれだけ点数とれたのは、学習・ポートフォリオアプリ作成を通して、必要な知識を積極的に学んだからです。
「資格のために」勉強するのではなく、その時やりたいこと(アプリ作成、デプロイ等)を叶えるために「必要な知識」として学習していたので、あんまり根詰めなくてもこの結果になったのかなあ?🤔
 
今春受検予定だとちょっと難しいかもですが、「これから数か月かけてこつこつ勉強していこうかな...」と考えている方は、数か月も参考書とにらめっこするのではなく、日々のプログラミング学習で「アプリ作成に必要な知識・技術」として知識を学んでいった方が絶対に楽しいし、物になります!
 
今回は私が参考にした書籍と「どのタイミングでどういう勉強をしたのか」について紹介します。
あくまで一個人の経験にすぎませんので、参考程度に捉えていただければ幸いです。
 

今回使用した基本情報参考書

基本情報と言えばコレ!といった感じですが、私もこの本を購入しました。
『キタミ式イラストIT塾 基本情報技術者

購入した基本情報関係の参考書はこれ1冊のみです。キタミ式を信じる者は救われる


学習の流れ

1 プログラミング学習開始(1か月目~)
まず、プログラミング学習と同時並行で、キタミ式を読み物感覚で1周しました。(ちゃんと頭に入ったのは2,3割くらい...)
ここで基礎知識の足りなさを実感し、下記の書籍を買いました。

『コンピュータはなぜ動くのか』

この書籍は、下記の内容を本当にわかりやすく説明しています。

  • 基礎の基礎
  • ハードウェアとソフトウェア
  • プログラミング
  • データベース
  • ネットワーク

普通にプログラミング学習してるだけじゃ学べない基礎知識もしっかり網羅していて、キタミ式だけを読むよりも断然呑み込みが早くなります。本当におすすめ。
 
 
2 Webアプリ(ツイートアプリ&家計簿アプリ)作成、デプロイ(3か月目~)
アプリをローカルで作成している段階では、プログラミング以外の知識はそこまで必要ありませんでした。が、それをデプロイするとなると一挙に様々な知識を要求されます。この段階で色んなことを学習しました。

(1)サーバー
まず、サーバーに関する知識が全くなかったので、下記の本で学習。
 
『イラスト図解式 この一冊で全部わかるサーバーの基本』

その後VPSをレンタルして、下記の書籍を参考に、実際にサーバー環境構築を行いました。
 
『ゼロからはじめるLinuxサーバー構築・運用ガイド 動かしながら学ぶWebサーバーの作り方』

その際Linuxが全く分からなかったので、下記の書籍で学習。
 
『新しいLinuxの教科書』

 
(2)ネットワーク・セキュリティ
サブネットとか、SSL通信とかDNSとか全然わかってなかったので、下記の書籍で学習。

『イラスト図解式 この一冊で全部わかるネットワークの基本』

実際にデプロイしたアプリをhttps化したり、AWSでサブネット設定したり、色々実践しました。
 
 
(3)データベース(設計、SQL
こちらの書籍でSQLの基礎を学習しつつ、アプリ作成で実際にDB設計・SQLの実装を体験しました。
 
『スッキリわかるSQL入門 第2版』

参考ページ(一部):4ステップで作成する、DB論理設計の手順とチェックポイントまとめ - Qiita

 
(4)アルゴリズム
実際にアプリを作成すると、実装したい処理のコードを思うように書けなくて、アルゴリズムに対する知識不足を痛感しました。
ネットで調べて、初学者にもわかりやすいと言われていた下記の書籍で学習しました。

アルゴリズムを、はじめよう』

これは主に、午後試験に活きてきます。
 
 
3 基本情報受検
試験前はキタミ式にフォーカスします。これまでの学習で既に下地が出来ているので、知識ゼロで学ぶのとは吸収力が全然違います。
この時期の学習のコツは次項にまとめます。

※ キタミ式でしっかり学習すべき分野
ここまでの説明でお分かりいただけたかと思うのですが、ネットワーク・サーバー・データベースあたりはWebアプリ作成・デプロイに挑戦する際に否応なく触れることになります。なので、その時に書籍等参照してしっかり学習するのが効率がいいです。
逆に、プログラミング・Webアプリ作成では中々触れることの無い分野もあります。それについてはキタミ式でしっかり勉強しましょう。
<例>

  • 基礎理論
  • CPU, メモリ
  • ハードウェア&ソフトウェア
  • 関係法規
  • 経営戦略

 
 

試験別(午前・午後)の学習方法

あんまり大したことはやってませんが、午前試験と午後試験で注意するところが微妙に違うので、ここでまとめておきます。
 

午前試験

学習序盤は上記で紹介したように、プログラミング学習・アプリ作成の中で必要な知識を学んでいきます。
で、試験前1か月くらいでキタミ式をしっかりとやっていきます。既に学習の下地が出来ているので、知識ゼロで学ぶのとは吸収力が全然違います。
 
ここで注意してほしいのは、「問題集・過去問を手広くやるべきではない」ということです。
  
理由は基本情報技術者試験の特徴にあります。
基本情報はとにかく「広く浅く」な試験なので、その全てを網羅しようとすると膨大な時間がかかってしまいます。過去に出題された問題1つ1つに囚われると、時間がいくつあっても足りません。

その点、キタミ式は「最低限抑えるべき内容」をしっかりまとめているので、キタミ式をしっかりやれば合格ラインは問題なく上回ることができます。
とにかくキタミ式に掲載されている問題を完璧(正答率8~9割くらい)にすることを優先しましょう。
ちなみに、私は雰囲気をつかむためだけに、過去問1回分だけやりました。
 
 

午後試験

午後試験は、基本的にキタミ式で得た知識で解けます。
ただし、問題の傾向が午前試験とは全く違うので、最低でも1年分は過去問をやっておきましょう。
午前で7~8割得点できるレベルなら、アルゴリズム・データ構造以外はそれで十分です。

〇 アルゴリズム・データ構造について

もしかしたら私だけかもしれませんが、この分野だけは最初かなり苦戦しました。
個人的に、この分野の問題を解くのに必要なのは、以下のスキルだと考えています。

  • 疑似言語の仕組みを理解できる
  • 問題文から、実際のコードの流れを想い起こすことができる
  • メジャーなアルゴリズムをある程度知っている


疑似言語・アルゴリズムについて何も知らない状態だと基本情報の過去問は難しいので、上記で紹介したアルゴリズムを、はじめよう』をやってみるといいと思います。

この本は疑似言語の仕組みをわかりやすく説明していますし、メジャーなアルゴリズムを、図と文章を交えて紹介しているので、「アルゴリズム・データ構造」の勉強には適していると思います。
この本でいくつかのアルゴリズムについて学習(全部やる必要は無い)した後、過去問を2,3年分やるとコツがつかめてくるのではと思います。

※ プログラミング言語について
私は元々学習言語がJavaだったので、これに関しては特に対策しませんでした。なので、アドバイスできることが全くありません...(すみません)
 

 

おわりに

長々と書き綴ってしまい、わかりづらい記事になってしまったかもしれませんが、私が言いたいことを1つにまとめると「長期間参考書と戦うより、アプリ作りながら学んでいった方が楽しいよ!」ということです。
この記事が少しでも参考になれば幸いです。
 
なお、私の今までのプログラミング学習方法は下記の記事にまとめてあります。
kumagoro-95.hatenablog.com