基本情報、今ならやっぱPythonっしょ!「徹底攻略 基本情報技術者の午後対策 Python編 第2版」がよかった話

プログラミングの基本、Pythonの基本、アルゴリズムの基本が手を動かして学べる良書です!
2021.07.07

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ちゃだいん(@chazuke4649)です。

基本情報、初めての人が勉強するなら、やっぱ人気のPythonやないすか?

先日、ひょんなことから基本情報の試験を受けてきました。その際、いわゆる2020年からの見直しで、Pythonが追加になったので、改めて勉強しようと本屋に向かったところ、ぴったりの本を見つけました。

それが 「徹底攻略 基本情報技術者の午後対策 Python編 第2版」です。

とても良い教材だと思ったのでご紹介します。

概要

  • タイトル: 徹底攻略 基本情報技術者の午後対策 Python編 第2版
  • 著者: 瀬戸 美月(せと みづき)氏 株式会社わくわくスタディワールド代表取締役
  • 発売日: 2021/5/20
  • 発行所: 株式会社インプレス

本書は、基本情報技術者試験の選択プログラミング言語「Python」の対策書『徹底攻略 基本情報技術者の午後対策 Python編』の改訂第2版です。Python自体を学習するだけでなく、Pythonを通じて基礎理論やアルゴリズムも合わせて学習できる前版の内容が、さらに充実。予想問題も増量し、5パターンを収録。

1. Python入門に◎

本書は最終的な目標として、基本情報の午後試験対策になるよう構成されていますが、基本的にはPythonの入門書としてもバッチリ使用できます。前半は基礎を学び、後半から徐々に試験対策を意識した構成になっています。以下が本書の目次です。

  • はじめに
  • Python問題の要点チェック
  • 基本情報技術者試験とPython
  • Pythonの概要
  • 第1章 Pythonの基本
    • 1-1 Pythonとは
    • 1-2 データ型
    • 1-3 プログラムの構造
  • 第2章 Pythonの機能
    • 2-1 入出力
    • 2-2 エラーと例外
    • 2-3 ライブラリ
  • 第3章 関数の定義
    • 3-1 関数
    • 3-2 関数の応用
    • 3-3 関数問題
  • 第4章 クラスとオブジェクト指向
    • 4-1 オブジェクト指向
    • 4-2 クラス
    • 4-3 オブジェクト指向問題
  • 第5章 データ構造とアルゴリズム
    • 5-1 データ構造
    • 5-2 アルゴリズム
    • 5-3 アルゴリズム問題
  • 第6章 データサイエンスとAI
    • 6-1 データサイエンス
    • 6-2 AI関連技術
    • 6-3 データサイエンス問題
  • 第7章 Python午後問題演習
    • 7-1 予想問題の演習
    • 7-2 サンプル問題の演習
  • 付録 Python環境の準備

2. 手を動かすこと、アウトプットに重点を置いている

1つ1つの概念を紹介する中で、必ずサンプルコードが掲載されているので、物理的に一定量のコードを写経する経験を積めます。

また、各小見出し(例:2-1 入出力)ごとに演習問題も用意されているので、学んだことをアウトプットする頻度が多い印象です。

アウトプットは学習効率を高めるために非常に重要な工程なので、テキストとしてアウトプットする回数が多いものは個人的にとても嬉しいです。

【まとめ】認知科学に裏づけされた学習効率を高める3つのメソッド | DevelopersIO

また、最後の方には著者オリジナルの予想問題がなんと5つもあるので、たっぷりアウトプットして知識を定着させやすい構成になっています。

3. 難関、アルゴリズムをコードで書ける

これが正直一番嬉しいポイントでした。午後試験、難関とされるのがアルゴリズムとプログラミングですが、文系マインドの自分にとっては非常にとっつきにくいものでした。

そんなところ、本書では理論や数式ベースでなかなか腑に落ちない基礎的なアルゴリズムをPythonのコードで説明しています。

これによって、前半部分で学んできたPythonの知識を生かし、手を動かしながらアルゴリズムの動きを理解することができます。

例えば、線形探索を行うアルゴリズムとして以下のようなコードが紹介されています。

# 線形検索を行う関数search()
# 頭から順番にtargetと照合する方法
def search(data, target):
  for i in range(len(data)):
    if data[i] == target:
      return i
  return -1

data = [1,2,3,4,5,6,7,8,9,10]
target = 7
print("要素番号{}にデータ{}を見つけました。".format(search(data,target),target))

実行すると以下のような結果が返ってきます。

要素番号6にデータ7を見つけました。

午後試験のプログラミングでPythonを選択をせず、アルゴリズムの学習のためだけでも理解度が上がると思うので、やる価値はあると感じました。

終わりに

ITエンジニアの登竜門と呼ばれる「基本情報」、単なる資格としてのメリット以上に学習領域や内容が本質的に役に立つと評判を聞いてました。実際勉強してみてその理由を理解できました。

これから勉強始める人は、人気のPythonが選べるようになったので嬉しい限りですね。まだ、対策本としてのPythonは少ない様子ですが、本書はその中でもプログラミングの面白さ、Pythonの基礎、アルゴリズムや試験対策など読者の知的好奇心をくすぐる素晴らしい編成になっていると感じました。興味ある人は一度書店で見てみてください。

あと、個人的にインプレス社「徹底攻略」シリーズのファンです。以前AWSのSAA本でもお世話になりました。

それではこの辺で。ちゃだいん(@chazuke4649)でした。