Python3エンジニア認定基礎に合格したので!

## **概要**
python3エンジニア認定基礎試験に合格したので、その勉強法と記録を記事にし、これから挑む誰かの援助になれば思います。

## **スペック**
はじめに私のスペックについて、ご紹介します。
私は元々、ITとは無縁の製造業勤務をしていて30代半ばで、ITに興味を持ち、独学でHTML, Reactなど２年ほど学びながら副業でHP制作などをしていました。
今年の4月にSESへと転職しましたが研修だけ受けて、いまだに案件には入場できておらず未経験のままです。現在、待機中なので簡単な資格を取得しようと思いpython3エンジニア認定基礎試験を受けようと思いました。

## **なぜ？pythonを選んだのか？**
元々、フロント技術はNext.jsやWordPressを用いて制作をしていたのですが、サーバーサイドの言語への理解は皆無でした。
Next.jsで制作するにあたり、お問い合わせフォームはNode.jsのコピペなどを組み合わせいただけで、理解という理解はしていませんでした。pythonは幅広い分野で活躍できる言語なのでサーバー、アプリ、機械学習とやってみたいことが実装できそうなので選びました。

## **Javaの基礎学習はしていた**
JavaやCの基礎は大体学習済み。しかしjavaの資格は値段が高いので、まずは安いものを探していました。
エンジニアとしては未経験ですが、スペック的には副業でしっかり制作や個人開発もしていたので完全な無知というわけではありません。Pythonの学習は完全に０から触ったこともない状態から始まりました。



## **最初にしたこと**
ターゲットをPythonに決めて最初にした準備。

1.調査　
2.参考書選び
3.計画を立てる
4.学習

## **調査**

最初に他の方の勉強時間や学習教材を調査しました。
googleで検索すると...

**◻︎Python基礎認定試験の難易度は？**
「Python3 エンジニア認定基礎試験」の難易度は、比較的簡単と言われています。 合格ラインの正答率は70％程度で、受験者の合格率は80％程度のため、比較的多くの方が合格します。 
認定テキストを使用して、内容を十分に理解すればプログラミング初学者でも合格できるでしょう。

**◻︎Python認定基礎の勉強時間はどのくらいですか？**
Python3エンジニア認定基礎試験に合格するには、少なくとも30〜40時間ほど勉強時間を確保しましょう。
Pythonやプログラミングについての知識や実務経験がない場合は、問題に慣れるまで勉強が必要です。 仕事の前後や休日などを活用して、しっかり対策を行いましょう。

...と、出てきました。
ここで**順次、分岐、繰り返し、関数、クラス、オブジェクト指向**の概念はどの言語も同じと考え、理解していることを前提に学習目標を下限である３０時間と決めました。

・次に公式にて、試験の概要を確認。
https://cbt.odyssey-com.co.jp/pythonic-exam/python3basic.html

問題数	40問
出題形式	選択式
試験方式	コンピューター上で実施するCBT（Computer Based Testing）方式
試験時間	60分
合格基準	7割正解
受験料	
一般価格：11,000円（税込） / 学割価格： 5,500円（税込）

## **公式から出題範囲が明示されている**
公式サイトを覗くと、[python　チュートリアル]
![dfb59c2f-6e67-4c3d-ac7d-b41b9e54aefb.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087359/d7e6f503-fc2a-b9a0-72fa-296909e9e905.jpeg)

https://www.oreilly.co.jp/books/9784873119359/
こちらの書籍から出題範囲と出題傾向が掲載されていました。

章立て	出題率
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%

・70%で合格なので出題数の多いところ(右側の数値)念入りに学習すれば、合格率が格段に上がりますね。


## **参考書選び**

**公式推薦書籍**
[python　チュートリアル]
![dfb59c2f-6e67-4c3d-ac7d-b41b9e54aefb.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087359/59611d91-d025-9a21-3776-11021dc10ee1.jpeg)
https://www.oreilly.co.jp/books/9784873119359/

こちらの書籍は、WEBの公式サイトから無料で学習できます。
https://docs.python.org/ja/3/tutorial/

[徹底攻略Python3エンジニア認定［基礎試験］問題集]
![300a9156-d01d-449a-a9e3-3eaf044be720.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087359/6f0e031d-f987-5329-c19f-fedf6c604b54.jpeg)
https://amzn.asia/d/0fIr8o66
◻︎チュートリアルは無料で読めるので、こちらの書籍購入！
<details><summary>この書籍のレビュー</summary>
・この書籍と公式チュートリアルだけあれば十分です。解説も読みやすさもバッチリでした。ですが、この図書だけでは標準ライブラリや基礎の部分、組み込み関数の解説は不十分なので、公式チュートリアルはしっかり読みましょう。
試験対策はこの参考図書と公式チュートリアルと模擬試験だけで合格できます。
</details>


**認定模擬問題**
試験を主催する一般社団法人Pythonエンジニア育成推進協会から認定された模擬問題です。
以下のサイトで紹介されています。

認定模擬問題（DIVE INTO EXAM）
https://diver.diveintocode.jp/dive_into_exam/lp
:::note info
ここのサイトは使っていない
:::

認定模擬問題（PRIME STUDY）
https://study.prime-strategy.co.jp/
:::note info
他の合格者の感想で、よくこちらを見たので模擬試験はこちらを使用。
難易度は高めで、実際の試験よりも難しいと思います。
第1回、第2回、第3回とそれぞれ5周しました。
最終的にそれぞれ、90点前後で試験を受けました。
:::


## **計画を立てる**
調査と参考書を決めたら、計画を立てました。
スプレッドシートに実際に大まかな計画を書いて、目標の30時間合格の内訳を作成。

私の場合はこんな感じ
![8ef25223-a016-48c1-a416-7762b10cea0a.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087359/8021b742-12a5-08af-5ebc-12dc141f86d0.jpeg)

## **次に日々の学習管理を作成し記録** ##

私の場合はこんな感じ
![1cecdbdf-7eea-4eb8-9cb2-6d6d1632747a.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3087359/f4cd5cea-4881-3fac-0893-3df71c15cd93.jpeg)

こうすることで進捗が管理できて、リカバリーがしやすくなります。
どこが詰まったなどコメントを入れおけば後でそこを重点的に復讐もできます。

 ## **実際の学習して困ったところ**
これは本当困ったのですが、公式チュートリアルが英文をそのまま和訳しただけのようで物凄く読みづらい。
理解がなかなかできなくて、わからないところはコピーしchatgptにわかるように解説してもらいながら学習を進めました。
試験が終わってみて思いましたが、**絶対に公式ドキュメントを薦めます。**
**試験の内容は、公式ドキュメントのコードや、この公式ドキュメントの文体に近い問題が出題されるので慣れておくべきだと思います。**
もし、公式でなく他の優しい参考書で学習していた場合は、おそらく受からなかったと思います。
なので、他の参考書は要りません。**公式ドキュメントは必ず読みましょう。**

## 試験の問題と雰囲気
実際に出題された問題はlistをprintした場合どう出力されるか？のような簡単すぎて勘繰ってしまう問題から、標準ライブラリの種類、ファイルパスのルート、コードの基本、関数、クラスの使い方、エラーと例外、モジュールと幅広い問題が出てきます。
出題傾向としてはやはり公式が発表している出題率に基づいた内容だと思います。

**絶対押さえておきたい章**
1章　食欲をそそってみようか	2.5%
3章　気楽な入門編	15.0%
4章　制御構造ツール	22.5%
5章　データ構造	17.5%
6章　モジュール	5.0%
8章　エラーと例外	10.0%
10章　標準ライブラリめぐり	10.0%
11章　標準ライブラリめぐり─PartII	2.5%

**個人的にピックアップする章**
7章　入出力	2.5%
9章　クラス	5.0%
12章　仮想環境とパッケージ	2.5%

**ここの理解は重要です。**

## 試験対策
実際の難易度は**徹底攻略Python3エンジニア認定［基礎試験］問題集**と**認定模擬問題PRIME STUDY**の中間くらいだと思います。この両者に出てこなかった組み込み関数やライブラリも出てきます。
それに合わせて、タプルやリストの違いや、ディクショナリ、位置引数、キーワード引数、エラーの種類(syntax、value,nameなどを理解)例外処理、などはしっかり理解して挑みましょう。
実際の点数としては1000点中、775点で結構ギリギリでした。
30時間で十分だったか？と言いいますと、全くプログラミングを触ったことがない人は50時間くらいは学習時間を設けた方が適切かなと感じました。
この試験は何かを作って覚えるではなく、**しっかり公式ドキュメントを読み覚えることが大切です。**

## python学習の便利ツール
最後に環境構築不要ですぐコードが書けて、すぐ試せるサイトを置いておきます。
いちいち保存も要らず、ファイルも作成の必要もないのでサクッとコードの挙動が確認できます。
https://colab.research.google.com/

以上、ここまでお読みいただきありがとうございました。