「Python 3 エンジニア認定基礎試験」合格体験記

# 「Python 3 エンジニア認定基礎試験」合格体験記

https://www.pythonic-exam.com/exam/basic

## はじめに

はじめまして。現在、私は大学院生（修士課程）です。

この記事では、私が「Python 3 エンジニア認定基礎試験」に合格しましたので、参考書や学習方法などを紹介させていただきます。この試験の合格までにかかった費用は、受験費の五千円だけで済んだので、費用を抑えながら合格できた方法について書いていきます。（**五千円は学生だけです。残念ながら、社会人の方は一万円かかります。**）

この記事が「試験勉強がうまくいかない」や「どうやって始めればいいんだろう」という人の参考になれば幸いです。

## 前提

- [Python](https://www.python.org/) 歴：4 年目
    - 分野：機械学習・深層学習
- これまでに学習に使用したことがある参考書
    - [ゼロから作るDeep Learning](https://www.oreilly.co.jp/books/9784873117584/)
    - [ゼロからつくるPython機械学習プログラミング入門](https://www.kspub.co.jp/book/detail/5206126.html)
    - [動かしながら学ぶ PyTorchプログラミング入門](https://www.ohmsha.co.jp/book/9784274226403/)
    - [Transformerによる自然言語処理](https://www.asakura.co.jp/detail.php?book_code=12265)
    - [Vision Transformer入門](https://gihyo.jp/book/2022/978-4-297-13058-9)

## 無料で「主教材」・「公式問題集」の入手方法

https://www.pythonic-exam.com/archives/news/555camp

この記事を投稿した現在、無料で「Python 3 エンジニア認定基礎試験」の「主教材」または「公式問題集」を貰うことでできるキャンペーンが実施されていました。
私はこのキャンペーンを利用して「公式問題集」をいただきました。理由としては、「**習うより慣れろ**」精神で、問題文を実装してどうなるかを考えながら学習した方が効果が高いと感じたためです。特に、私は[前提](#前提)で記載した通り、ある程度は触れたことのある言語のため、この方が早いと思いました。
私自身は「主教材」を読んだことがありませんが、初心者の方は「主教材」を選択しても良いと考えます。

詳しい方法は、[公式サイト](https://www.pythonic-exam.com/archives/news/555camp)をご覧になって欲しいです。流れとしては、以下の通りです。

1. 受験申し込みをする。
2. SNS で受験宣言をする。
3. [公式サイト](https://www.pythonic-exam.com/archives/news/555camp)から応募する。

私は X で以下のようなツイートをしました。

https://x.com/NatuM_ja/status/1852928803414454554

## 出題範囲

出題範囲は主教材であるオライリー・ジャパン「[Pythonチュートリアル 第4版](https://www.amazon.co.jp/dp/4873119359/)」より以下の比率で出題します。

| 章立て | 出題率 (%) |
| :-- | :--: |
| 1章　食欲をそそってみようか | 2.5 |
| 2章　Pythonインタープリタの使い方 | 2.5 |
| 3章　気楽な入門編 | 15.0 |
| 4章　制御構造ツール | 22.5 |
| 5章　データ構造 | 17.5 |
| 6章　モジュール | 5.0 |
| 7章　入出力 | 2.5 |
| 8章　エラーと例外 | 10.0 |
| 9章　クラス | 5.0 |
| 10章　標準ライブラリめぐり | 10.0 |
| 11章　標準ライブラリめぐり─PartII | 2.5 |
| 12章　仮想環境とパッケージ | 2.5 |
| 13章　次はなに? | 0.0 |
| 14章　対話環境での入力行編集とヒストリ置換 | 2.5 |

## 学習に使用した参考書やサイト

私は購入していないですが、お金に余裕がある方は、「[Pythonチュートリアル 第4版](https://www.amazon.co.jp/dp/4873119359/)」を購入することを推奨いたします。

ただし、私は[先述した方法](#無料で主教材公式問題集の入手方法)を使って、公式問題集をもらいました。

### 徹底攻略Python 3 エンジニア認定［基礎試験］問題集

https://www.amazon.co.jp/dp/4295016055/

- [一般社団法人Pythonエンジニア育成推進協会](https://www.pythonic-exam.com/aboutus)が指定する公式問題集。
- 「主教材」に対応した問題が 98 問用意されている。
- 問題によっては、解説に図もあるので、イメージしやすい。

### Documentation

https://docs.python.org/3/

- 公式ドキュメントの[チュートリアル](https://docs.python.org/3/tutorial)にサンプルコードや説明が書いている。

### ディープロ | プログラミングとIT資格試験の勉強ができる ディープロ

https://diver.diveintocode.jp

- 「認定模擬問題」であるため、傾向を掴むことができた。
- 模擬試験が無料で何回でも受験することができた。

### 模擬試験アプリ - Python3エンジニア認定基礎／データ分析／実践試験 - ExamApp

https://python-basic.com

- レベル別で試験が用意されている。
- 一問一答で気軽に取り組むことができる。
- 無料で、解説を読むことができる。

### PRIME STUDY（プライム・スタディ） – Python試験とPHP試験の無料模擬試験サイト

https://study.prime-strategy.co.jp

- 3 回分の模擬試験が用意されている
- 「認定模擬問題」であるため、傾向を掴むことができた。
- 模擬試験が無料で何回でも受験することができた。

## Python の環境

### 使用したエディタ

https://code.visualstudio.com/

私は VSCode (Visual Studio Code) を使いましたが、他のエディタでも構いません。

### VSCode の拡張機能

https://marketplace.visualstudio.com/items?itemName=ms-python.python

私と同じように、VSCode  (Visual Studio Code) を使う方は最低限上記の拡張機能を入れる必要があります。

---

https://qiita.com/Natu_ja/items/f7e2fa2bb18fe6e1e1d2

人工知能の研究者向けの内容ではありますが、Python のコードを書く上であると便利な拡張機能はこの記事に記載しています。

## 学習方法

学習方法は、既に「Python 3 エンジニア認定基礎試験」に合格されている方の記事を参考にさせていただきました。詳細は、[参考記事等](#参考記事等)をご覧ください。

### 現状把握

私の試験勉強前の Python の知識・技術としては、人工知能 (AI) の研究をしているため、AI 関係でよく使われるライブラリはある程度は詳しくなってきたと思います。具体的には、研究でよく使う [PyTorch](https://pytorch.org/) や [Transformers](https://huggingface.co/docs/transformers) といったライブラリを使う時間が長いです。しかし、AI 分野以外で一般的に使われるライブラリに関する知識は浅いと感じています。例えば、Python の[標準ライブラリ](https://docs.python.org/3/library/index.html)は半分以上使ったことすらないと思います。（ライブラリの中に組み込まれている可能性は大いにあります。）
私は、まず現状を測るために、[模擬試験](#ディープロ--プログラミングとit資格試験の勉強ができる-ディープロ)を解くことにしました。結果としては、**1000 点満点中 850 点**でした。不正解となった問題は、`try`、 `round` や `//` などの Python の基礎部分でした。

### Python の基礎の習得

模擬試験では、標準ライブラリ以前の問題として、演算子や例外処理という Python の基礎での間違いがありました。（おそらく、私だけではないと思うのですが、）私はコードを書く際に、**癖**があるためによく使う書き方があると自覚しています。その逆も然りで、あまり使わない書き方もあります。事実として、`//` は自分がコードを書く時はほとんど使わないため、挙動が分かりませんでした。

私が Python の基礎を獲得するために行なったことは、[参考記事等](#参考記事等)に記載した記事や本を用いて網羅的に勉強しました。特に、[Zenn](#zenn) の [Books](#books) は、初めて勉強する人でも取り組める内容から始めっています。また、少し難易度が高い内容が含まれていました。私のオススメとしては、（特に初学者は、）とりあえず [Zenn](#zenn) の [Books](#books) から読みながら実装する勉強法が好ましいと思います。
次に行なったことが、[Zenn](#zenn) の [Books](#books) 以外の記事を読んで、Python に対する理解度を深化させていきました。記事の方では、内容が狭いかつ深いことが多く、自分の疑問を解決する上でとても参考になりました。

### 「公式問題集」を活用した学習

「[徹底攻略Python 3 エンジニア認定［基礎試験］問題集](#徹底攻略python-3-エンジニア認定基礎試験問題集)」は主教材に対応して問題が設定されているので、第 13 章（総仕上げ問題）以外を解きました。各章ごとに丸付けをし、間違えていたら実装はしました。

### 模擬試験

ある程度、勉強が進んだら、模擬試験を受けることにしました。その理由として、現状、自分がどこまで理解しているか、どこの部分の学習が足りないかを確認するためです。この段階で、合格点に達していないなら、間違えた箇所を中心に勉強をするなり、勉強方法を見直すなり、できることはいくらでもあります。合格点に到達していたら、油断せずに引き続き勉強を続ければ合格できる確率は高いです。

遅くても**試験 1 週間前**には、一度模擬試験を受けるべきです。私が利用した[模擬試験](#prime-studyプライムスタディ--python試験とphp試験の無料模擬試験サイト)は、体感として[現状把握](#現状把握)の時に受験した[模擬試験](#ディープロ--プログラミングとit資格試験の勉強ができる-ディープロ)よりも難しいと感じました。

### 「知らないコード」や「理解が十分でないコード」が登場した時の対応

試験勉強をする中で、知らないライブラリ（ [decimal](https://docs.python.org/3/library/decimal.html) や [tkinter](https://docs.python.org/3/library/tkinter.html) など） や、あまり使ったことがないため知識が不足しているライブラリ（ [os](https://docs.python.org/3/library/os.html) や [sys](https://docs.python.org/3/library/sys.html) など）があった場合、まず実装してみました。

例えば、下に示すような `sys.argv` という書き方を知りませんでしたし、その効果も知りませんでした。

```python:sample.py
import sys

def main():
    print(sys.argv)

if __name__ == '__main__':
    main()
```

```bash
python3 sample.py
```

```bash
python3 sample.py abc 123 -
```

また、用語についても知らないことが多かったです。例えば、文字列が置き換えができないことは知っていても、`immutable` という用語はこの試験勉強を通して初めて知りました。

## 今回採用してないが有効と考えられる学習法

### 「主教材」を活用した学習

そもそも出題範囲が、主教材である「[Pythonチュートリアル 第4版](https://www.amazon.co.jp/dp/4873119359/)」を基に書かれているので、正確に試験範囲を知りたい場合は、購入するべきだと思います。

### 認定スクールに入学

お金に余裕がある方は、認定スクールのご利用もご検討ください。

- [インターネット・アカデミー](https://www.internetacademy.jp/)
- [株式会社グローバルテクノ](https://gtc.co.jp/)
- [学校法人コンピュータ総合学園　神戸電子専門学校](https://www.kobedenshi.ac.jp/)
- [CTCテクノロジー株式会社](https://www.school.ctc-g.co.jp/)
- [学校法人創造社学園　創造社デザイン専門学校](https://www.sozosha.ac.jp/)
- [ディープロ](https://diveintocode.jp/)
- [Top Out Human Capital株式会社](https://www.topout.co.jp/)
- [トレノケート株式会社](https://www.trainocate.co.jp/)
- [株式会社ビープラウド](https://www.beproud.jp/)
- [プライム・ストラテジー株式会社](https://www.prime-strategy.co.jp/)
- [株式会社ワイヤードパッケージ](https://wiredpackage.com/)

---

特に、以下の 2 社から「Python 3 エンジニア認定基礎試験」向けのサービスが展開されています。

- [ディープロ](https://diveintocode.jp/)：[「Python 3 エンジニア認定基礎試験」の受験対策プラン](https://diver.diveintocode.jp/python_basic/lp)
- [プライム・ストラテジー株式会社](https://www.prime-strategy.co.jp/)：[「Python 3 エンジニア認定基礎試験」の模擬試験](https://study.prime-strategy.co.jp/)

### プログラミング未経験者向けの教材を活用した学習

Python 未経験者の方かつお金に余裕がある方は、こちらの教材を使って勉強することを推奨いたします。

- [いちばんやさしいPythonの教本 第2版 人気講師が教える基礎からサーバサイド開発まで (「いちばんやさしい教本」シリーズ)](https://www.amazon.co.jp/dp/4295009857/)
- [スラスラわかるPython 第2版](https://www.amazon.co.jp/dp/4798169366/)
- [Pythonスタートブック [増補改訂版]](https://www.amazon.co.jp/dp/4774196436/)

### 生成 AI の利用

[ChatGPT](https://chatgpt.com/) や [GitHub Copilot](https://github.com/features/copilot/) などを活用しても十分学習できると思います。ただし、生成 AI の主張を鵜呑みにしないように十分気をつけてください。

### Qiita の「記事」機能と「質問」機能を利用した学習

#### 「記事」機能を活用したアウトプット

[Qiita の「記事」機能](https://qiita.com/timeline)を活用して、多くのエンジニアが日々記事を投稿しています。学習した内容をアウトプットすることで、スキルの獲得に大きく寄与します。

`tag:Python3エンジニア認定基礎試験` の記事は、以下のリンクから見ることができます。

https://qiita.com/tags/python3エンジニア認定基礎試験?type=articles

#### 「質問」機能を活用した対話的学習

[Qiita の「質問」機能](https://qiita.com/question-feed)には、「Q & A」と「意見交換」のフォーマットが用意されています。他のエンジニアと対話を重ねることで、理解を深めることができると思います。

`tag:Python3エンジニア認定基礎試験` の質問は、以下のリンクから見ることができます。

https://qiita.com/tags/python3エンジニア認定基礎試験?type=questions

## 成功要因

- 実際に Python コードを組むことで、頭の中にそれぞれのコードの印象が残った。
- 移動時間に [Qiita](#qiita) の記事などを読むことを意識した。
- 「分からない」に対しても、「自分で考える」あるいは「他のエンジニアの記事を読む」行動を取ることで、自分の中で咀嚼して理解することに繋がった。（生成 AI を使うと良くも悪くもすぐに答えがわかあってしまい、個人的には好きな勉強法ではなかった。）
- （主に、機械学習関係ではあるが、）**4 年間の Python 経験**があった。

## おわりに

この記事では、私の「Python 3 エンジニア認定基礎試験」合格体験記を書かせていただきました。

この記事がみなさんの勉強の参考になれば幸いです。
また、みなさんが試験に合格することを心から願っています。

## 謝辞

私が「Python 3 エンジニア認定基礎試験」の合格できたのは、Qiita の記事などを投稿しているエンジニアの方々や企業様のおかげです。心より感謝申し上げます。

## 参考記事等

一度でも、拝見させたいただきた記事等を以下に載せます。

:::note info
[Qiita](#qiita)、[note](#note)、[YouTube](#youtube) や [Zenn](#zenn) の記事・動画は、公開した日付順（昇順）になっています。
:::

:::note warn
出題範囲外の内容もあります。ご注意ください。
:::

### Qiita

https://qiita.com/_rdtr/items/d3bc1a8d4b7eb375c368

https://qiita.com/mtb_beta/items/d257519b018b8cd0cc2e

https://qiita.com/nnahito/items/ad1428a30738b3d93762

https://qiita.com/niwak2/items/5490607be32202ce1314

https://qiita.com/kaneshin/items/269bc5f156d86f8a91c4

https://qiita.com/soutarrr7/items/84e529d87aa3b3a9adcb

https://qiita.com/ko-da-k/items/439d8cc3a0424c45214a

https://qiita.com/Takamichi-tsutsumi/items/bd8f1b5e68fa49406888

https://qiita.com/aomidro/items/3e3449fde924893f18ca

https://qiita.com/kaeruair/items/e7f1c08915839ce3c9b4

https://qiita.com/macinjoke/items/1be6cf0f1f238b5ba01b

https://qiita.com/i13602/items/6d8914e019c13e858c72

https://qiita.com/apollo_program/items/165fb01b52702274936c

https://qiita.com/KTakahiro1729/items/c9cb757473de50652374

https://qiita.com/msssgur/items/12992fc816e6adf32cff

https://qiita.com/msrks/items/fdc9afd12effc2cba1bc

https://qiita.com/luohao0404/items/7135b2b96f9b0b196bf3

https://qiita.com/nagataaaas/items/531b1fc5ce42a791c7df

https://qiita.com/rmanzoku/items/3bf4eb2b8b499ecb3dcf

https://qiita.com/Tadahiro_Yamamura/items/26a925d9a670f01bf497

https://qiita.com/KEINOS/items/6efc1147b917d7811b5b

https://qiita.com/R1ck29/items/17f8bcf70feb2c3d516c

https://qiita.com/jp0003menegi/items/fbf407af7d294c09481a

https://qiita.com/paco_itengineer/items/4c778cdcd0cf3d8faa2d

https://qiita.com/FukuharaYohei/items/92795107032c8c0bfd19

https://qiita.com/sakabe/items/60e5042ec406c02c3d04

https://qiita.com/niwasawa/items/27641b803db31f93b8e6

https://qiita.com/papi_tokei/items/2aef9a259fd236d340da

https://qiita.com/mueru/items/2e99832304cf8b89d3ec

https://qiita.com/msi/items/d91ea3900373ff8b09d7

https://qiita.com/FukuharaYohei/items/459f27f0d7bbba551af7

https://qiita.com/domodomodomo/items/6df1419767e8acb99dd7

https://qiita.com/free_jinji2020/items/93a45102995648ad06f1

https://qiita.com/shiracamus/items/f2244cf25764c99008a7

https://qiita.com/7shi/items/d37493c58a8bb8d7beed

https://qiita.com/mcla/items/02fc249a18eb623bf100

https://qiita.com/cardene/items/8a59d576d360b7568c3a

https://qiita.com/gomasa/items/a0c91cea24f41fd63c1c

https://qiita.com/nicco_mirai/items/c1810ed2a6fc8c53c006

https://qiita.com/hruc/items/da1ef5bb09343a424285

https://qiita.com/ksato9700/items/3ce4c68c0d713874b693

https://qiita.com/baby-degu/items/05cf809d4d992923020d

https://qiita.com/baby-degu/items/532bea7be058c35f61a8

https://qiita.com/taka_maenishi/items/a3d2c7f04f623d78623d

https://qiita.com/kim-shun/items/8b6c5ffa69073f6e5bf2

https://qiita.com/studio_haneya/items/6fb61ae12e8416eedcf3

https://qiita.com/to-fmak/items/90f1b517cbcfaacc7279

https://qiita.com/megmogmog1965/items/6bdebc9a0a1ce168caf7

https://qiita.com/MariMurotani/items/3a7307a51ff8c74d5e04

https://qiita.com/Mochieyan/items/543ba051bae29cc6dbf1

https://qiita.com/twrcd1227/items/e5cb450b5a225c65d12b

https://qiita.com/dossy/items/60bf3135f37feb7f6ff9

https://qiita.com/yulily/items/0844e1a928a95df32a26

https://qiita.com/ugu/items/afab2410adec60854b38

https://qiita.com/Ryo-0131/items/c5c650359ab8ce10b507

https://qiita.com/saleo_2764/items/117f1a3f5bc5bfd0bea9

https://qiita.com/Co-0/items/69d932210bd0f1356478

https://qiita.com/Juice/items/95c8345a5da9e21de480

https://qiita.com/jay_42tokyo/items/3bacd89d749e89ea97f3

https://qiita.com/_agi/items/fd309296e0e57091510d

https://qiita.com/NameIsPotechi/items/f76c87fbde627e3d1d6c

https://qiita.com/fujine/items/89a30ed50a4b0a7da14f

https://qiita.com/eric50905/items/3e3e7855484f55bc311b

https://qiita.com/Yukikazari/items/d0f28ebd057aabacffdc

https://qiita.com/eric50905/items/5a98219bc9b87e732d18

https://qiita.com/Tadataka_Takahashi/items/7df4ae7473794e941ae0

https://qiita.com/NSS_FS_ENG/items/1f4243f83e5a7fa8cf37

https://qiita.com/zhao-xy/items/0b3fb1388ad36920ea3c

https://qiita.com/rizumu620/items/2d7d13138ee5fba93fd6

https://qiita.com/nicco_mirai/items/75e2fccd3afbdfb64eb4

### note

https://note.com/kamakiriphysics/n/n7d2f0a81e9e7

https://note.com/e_dao/n/n6c8c23408ff3

https://note.com/programming_sc/n/na80e7d9e3ccb

### YouTube

<iframe width="560" height="315" src="https://www.youtube.com/embed/zBIWDs0PLeg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

<iframe width="560" height="315" src="https://www.youtube.com/embed/LHHmJM4vCYI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>

### Zenn

#### Articles

https://zenn.dev/ganariya/articles/intermediate-python

https://zenn.dev/nekoallergy/articles/0adf4d57acf9b4

https://zenn.dev/stevenlang/articles/0a94b0c687b7a8

https://zenn.dev/dencyu/articles/2b58f669bcd473

https://zenn.dev/kazu1/articles/662816f4acaede

https://zenn.dev/robes/articles/ae1f1dbcb0c5aa

https://zenn.dev/open8/articles/python-special-method

https://zenn.dev/kariya_mitsuru/articles/1c119859604d48

https://zenn.dev/fastriver/articles/python-pyc-binary

https://zenn.dev/peraichi_blog/articles/01j678cedqmwh3gcr0gbq15kmr

#### Books

https://zenn.dev/masaruxstudy/books/74bbdba78366c3

https://zenn.dev/umi_mori/books/python-programming

### その他

https://note.nkmk.me