【ド文系の私が】Python3エンジニア認定データ分析試験に1カ月で合格した方法

2022年11月にPython3エンジニア認定データ分析試験に合格しました。
今年の6月にPython3エンジニア認定基礎試験に合格したので、Python学習の次のステップとしてチャレンジしました。
認定基礎試験よりも一気に難易度が上がった印象です。

データ分析というだけあって数学の知識もたくさん出てきましたが、1ヶ月弱の勉強で合格することが出来たので、勉強方法等受験期を残します。
ちなみに私は大学受験以来数学のことを脳内から抹消していた典型的文系人間です。


# Python3エンジニア認定データ分析試験とはどんな試験か？
Pythonを使って機械学習などのデータ分析を行う為の土台を学べる試験です。
試験範囲はざっくりと下記の通りです↓
・そもそもデータサイエンティストとは？
・機械学習の種類
・Pythonの基礎(基礎認定試験を受けた人にはおさらいのような感じです)
・数学の基礎(高校数学のダイジェスト！って感じです)
・機械学習をする為に便利なPythonのパッケージのうち、主要な4つのパッケージの使い方。
→統計学的な複雑な計算がメソッド1つで簡単に出来たり、表や配列を簡単に扱えたり、データの塊から簡単にグラフの描画が出来たり、学習していて面白かったです。
問題数的にもここがメイン！！
 



# 学習方法3ステップ
### 学習時間
50時間程度

### 得点
825/1000点(合格点:700点)

### やったこと
**①教科書1～4章までを読む。**

[公式教科書はこちら　「Pythonによるあたらしいデータ分析の教科書 第2版」](https://www.amazon.co.jp/Python%E3%81%AB%E3%82%88%E3%82%8B%E3%81%82%E3%81%9F%E3%82%89%E3%81%97%E3%81%84%E3%83%87%E3%83%BC%E3%82%BF%E5%88%86%E6%9E%90%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E7%AC%AC2%E7%89%88-%E5%AF%BA%E7%94%B0-%E5%AD%A6/dp/4798176613)

教科書を買わずに学習できないかなーとかセコいことを考えず、絶対買った方がいいです。(←当初の私)
この教科書に書かれていることをどれだけ理解できているかが合格のカギです。
この教科書だけだと難しすぎたという口コミも見かけましたが、個人的にはよくまとまっていて初学者向けにも分かりやすい教科書だと感じました。
ちょうど第2版が出たタイミングだったみたいで第2版を買いましたが、第1版もあります。
違いはPythonの新しいバージョンに対応したことと、説明をより分かりやすく書き換えたことみたいです。



・5章は応用編の為出題なし。

・1~3章はひとまずアウトラインを掴む目的でさくっと読み進めてＯＫ。
私は3章「数学の基礎」で沼にはまりそうになりましたが、3章までの内容はあくまで4章への土台作りである為そこまで固執しすぎなくてもよいと思います。

・4章は実際にコードを写経しながら進める。
4章からは27/40問出題されるのでここの理解が重要です。
データ分析に使用される4つのフレームワークについて使い方の基礎を学んでいくので、ただ読むだけよりも実際にコードを打ち込んでいく方が覚えが早いです。
教科書ではJupyter Notebookを推奨していますが、私はGoogle colabで写経していきました。
Googleドライブから開けるのが楽だし、UIが好きです。
Matplotlibで描画したグラフをファイル出力する時やPandasでファイル読み込みをする時等、一部教科書のコード通りにいかない時がありますが、それ以外は問題ありませんでした。


・読んでみていまいちイメージできない内容が出てきたときは、Youtubeで検索すると早い。
⇒教科書の文字面だけ追っているとどうしても理解できない場面が出てきますが、画像や動画があればあっさり腑に落ちたり。
<私が検索した例>
　・ベクトルの足し算・引き算
　・そもそも三角関数って何を表したいんだっけ？
　・主成分分析


**②模擬試験1回分をノートまとめする。**
PRIME STUDYというサイトで模擬試験が3回分公開されており、うち第1回は全40問にかなり丁寧な解説がついております。
[PRIME STUDY 「第1回 Python 3 データ分析模擬試験」はこちら](https://study.prime-strategy.co.jp/coverage/)

模試は正解以外の他の選択肢からも学べるようにうまくまとめられていたので、問題文と解説を書き写し＋知識が足りない箇所を調べて追記　という形でノートまとめしていきました。
まず解いてみてもよいと思います。私は問題が難しかったり点数が取れなかったりするとモチベが下がってしまう性格なので、どうせ解説を読み込むことになるんだし…と開き直って最初は丸写しの手段を取りました笑
教科書を読むだけでは「なんだこれ？？」と思っていたところも、40問ノートまとめし終わる頃には試験範囲全体の概要が掴めるようになっていました。

**③模擬試験を満点取れるまで繰り返す**
②のPRIME STUDYの3回分の模試を満点取れるまで繰り返し受験していきました。
他にもDIVE INTO CODEというサイトにも模擬試験が載っています。


# 試験を受けてみての所感
・思ったより得点が取れなかった…
模擬試験を過信しすぎた結果です。
模擬試験は文章題中心であり、試験範囲の大枠を網羅していれば正解できる構成になっていました。
しかし本番はもっと短文で、かつ「そんなこと書いてあったっけ？？？」という細かい箇所から出題されていました。
模擬試験よりも簡単な出題も多かったのですがその分「重箱の隅つつき問題」も多かったので、教科書の隅々まで読む＋まとめることを徹底すればもう少し自信を持って合格出来たのかなと思います。
(おまけで私が迷った問題の一部をまとめたので、参考になれば嬉しいです。)

・試験時間は余裕あり
試験時間1時間のうち、全40問をゆっくり解いて40分、残りの20分で見直しをしました。

・メモ用紙がない！！
他のプログラミング系の試験ではメモ用紙をもらえたのですが、今回の試験にはありませんでした。
ソースコードからどのような表が出来るかを読み取り、出力結果を回答する問題等は「紙欲しいなー…」と感じました。
脳内で想像して、気合いで頑張りましょう。

# おまけ 迷った問題集
・JupyterNotebookでマジックコマンドを使う時、1つのセル全体の処理時間の平均を測るコマンドは？
→%%timeit。%timeitは1行分。

・Python標準モジュールのPathlibモジュールで、パス同士を結合させたい時に用いる演算子またはメソッド。
→/演算子。

・e^x+3をxについて微分した結果は？
→e^x。ネイピア数は唯一微分しても値の変わらない数値。
※e…ネイピア数
2.71828182846....

・Numpyで配列の要素のデータ型を確認する属性またはメソッド。
→dtype属性かdtypeメソッドかで迷いましたが、dtype属性でした。

・主成分分析について誤っているもの
①10次元を超えるデータは主成分分析出来ない。
②求めた変数のうち最も情報を持っているものを「第一主成分」、次に情報を持っているものを「第二主成分」という。
→おそらく①
教科書に書いていない内容でした…。


# 最後に
Pythonの基礎構文が分かるだけの状態から、この試験勉強を通して、「機械学習とは何なのか」「具体的にPythonでどのように実装していくのか」の土台の知識を得ることが出来ました。
難易度も高すぎないので機械学習やAIに興味はあるが何をしたらいいか分からない方、Pythonの基礎を既に取得し、次のステップに進みたい方におすすめです！
今資格を取得できたので、次は統計検定の取得に向け頑張ります。