Google Certified Professional Data Engineer に合格しました！

## はじめに
2020年8月にProfessional Data Engineerの試験に挑戦して、初回で無事合格できたので勉強方法と試験の感想についてお話しします。試験の勉強に少しでもお役に立てたら幸いです。

##試験で特に聞かれた項目
ストレージとDataflowは厚く勉強して徹底的に理解してください。試験の中心になります。

- [Dataflow](https://cloud.google.com/dataflow/docs?hl=ja)
    - 少なくとも[プログラミングモデル](https://cloud.google.com/dataflow/docs/concepts/beam-programming-model?hl=ja)と[ストリーミング処理](https://cloud.google.com/dataflow/docs/concepts/streaming-pipelines?hl=ja)を理解する必要があります。
- [Pub/Sub](https://cloud.google.com/pubsub?hl=ja)
    - Dataflowとの組み合わせだけでなく通信を非同期化することで負荷分散させるユースケースもあります。
- [BigQuery](https://cloud.google.com/bigquery/docs?hl=ja)
    - データセットへのアクセス権やユーザのログ監視についても理解しておくといいと思います。
- [Cloud Bigtable](https://cloud.google.com/bigtable/docs/overview?hl=ja)
    - ユースケースにあわせて適切にストレージを選べる必要があります。こちらが分かりやすかったです。→ [GCPのストレージサービスについてまとめてみた。](https://www.apps-gcp.com/gcp-storage-service/)
- [Datastore](https://cloud.google.com/datastore/docs/concepts/overview?hl=ja)
- [Cloud SQL](https://cloud.google.com/sql?hl=ja#section-5)
- [Cloud Spanner](https://cloud.google.com/spanner?hl=ja)
- [Cloud Storage](https://cloud.google.com/storage/docs?hl=ja)
- [Dataproc](https://cloud.google.com/dataproc/docs/concepts/overview?hl=ja)
    - Hadoop,Sparkからの移行だけでなく[クラスタへのアクセス方法](https://cloud.google.com/dataproc/docs/concepts/accessing/cluster-web-interfaces?hl=ja)も覚えるといいと思います。
- [Cloud Dataprep](https://cloud.google.com/dataprep/docs?hl=ja)
- [Cloud Composer](https://cloud.google.com/composer/docs/concepts/overview?hl=ja)
- [Cloud IAM](https://cloud.google.com/iam/docs/overview?hl=ja)
- [Stackdriver](https://cloud.google.com/products/operations?hl=ja)
- [Cloud Key Management](https://cloud.google.com/security-key-management?hl=ja)

## 機械学習について
模擬試験や本番試験を通して理解していないといけないと思った項目です。

- 問題文の要件が回帰の問題か、分類か、クラスタリングが判断できる
- 過学習を避ける方法を知っている
- 特徴量エンジニアリングの基礎を知っている
- [混合分布](https://cloud.google.com/vision/automl/docs/evaluate?hl=ja) について理解している
- GCPのAI/ML系のサービス([Cloud AI ビルディング ブロック
](https://cloud.google.com/products/ai/building-blocks)、[AI Platform
](https://cloud.google.com/ai-platform)など)について理解している
 
## 勉強方法について
業務でBigQueryとAI platformで分析とモデリングの経験が約1年あり、GCPの基礎的な知識があったので公式の模試から始めました。GCPの業務経験がない方は、[Data Engineering, Big Data and ML on Google Cloud 日本語版](https://www.coursera.org/specializations/gcp-data-machine-learning-jp)などで体系的な知識を身に付けられるといいと思います。

公式の模擬試験（本番試験よりかなり簡単です。とは言っても初回は解けません。。）
　　　↓
模擬試験の復習と苦手なところを中心に公式ドキュメントで勉強
　　　↓
[Udemyの模試](https://www.udemy.com/course/google-cloud-professional-data-engineer/)に挑戦（本番に近いレベルです。最初は50点も取れませんでした。。）
　　　↓
間違った問題を公式ドキュメントで勉強
　　　↓
再びUdemyの模試に挑戦（80点弱、合格が見えてきました。。）
　　　↓
試験3日前からはドキュメントを読んでDBの細かな仕様やオプションなど知識を詰め込む作業

以上を3週間ほどかけて行いました。

## 試験を終えて
試験の難易度は公式の模試よりもかなり難しくて焦りました。自信のない問題を後で見直すことにして、解けそうな問題を着実に解きました。全て問題を解き終えてから40分ほど時間ができたので、落ちついて自信のない問題を見直しました。落ちついていれば大した問題ではないことに気付いたりします。
合否のラインはわかりませんが８割は解けた手応えがありました。試験範囲は非常に広くわからない問題はあるので、できるだけ選択肢を絞って正答率をあげるように努めました。

## その他参考
[【2020年】GCPのAI/ML系のサービスまとめてみた](https://dev.classmethod.jp/articles/mrmo-gcp-ai-ml-summary-2020/)
[GCPのストレージサービスについてまとめてみた](https://www.apps-gcp.com/gcp-storage-service/)
[Apache Beam のプログラミング モデル](https://cloud.google.com/dataflow/docs/concepts/beam-programming-model?hl=ja)
[Google Cloud Dataflow で実現するストリームおよびバッチデータ処理](https://www.youtube.com/watch?v=vhtIvqJzCS8&feature=youtu.be)
[[Cloud OnAir] Bigtable に迫る！基本機能も含めユースケースまで丸ごと紹介 [2018年8月30日放送]](
https://www.youtube.com/watch?v=Ehkla_irkFI&feature=youtu.be)