GCPのProfessional Data Engineer試験にエンジニア実務未経験で合格した話

## なぜ受験しようと思ったのか
4月からデータエンジニアとして働くことが決まりましたが、実務未経験だったため入社前に事前学習をしておくためです。
入社後に研修がある企業でしたが、必要な知識の全体像を把握した上で研修を受けた方が細部まで理解できると考えたので、データエンジニアリングの知識が網羅的に習得できそうな本資格の受験を決めました。

## 前提知識
```
・エンジニアとしての実務経験は0の状態。
・Pythonは完全に理解している()
・趣味でWebアプリ開発をしたことがある(Rails、Django、React、TS)
・趣味で機械学習の実装(KaggleやSIGNATEにチャレンジして多少の精度改善)ができるレベル
・AWSはWebアプリのデプロイで使ったことがある。(GCPの経験は0)
・仕事ではBIツールでSQLを扱っていた。(サブクエリや結合等の複雑なクエリは書けるが、クエリのパフォーマンス等は理解していない)
・基本情報ぐらいのCSの知識はある
```

## やったこと
■学習のステップ
```
① 試験範囲の全体像を掴む(1.5ヶ月)
② 公式の模擬試験を受ける()
③ 間違えた問題の理解度を上げる(②と合わせて0.5ヶ月)
④ Udemyに公開されている模擬試験をひたすら解く(1~2ヶ月)
```
トータル学習期間は3~4ヶ月ぐらいです。

### ① 試験範囲の全体像を掴む
Couseraの下記の講座をざっと視聴しました。

https://www.coursera.org/professional-certificates/gcp-data-engineering-jp


字幕はありますが、動画は全て英語なので、結構大変です。
また、2週間の無料期間はありますが、全6コースなので、2週間で終わらせるのは知識がない人にはハードに感じます。
月6000円ほどなので、1ヶ月だけ課金して結果的に1.5ヶ月で一通り視聴しました。

このコースではデータエンジニアリングの技術的な課題について言及されており、その後の学習や新しくサービスについて理解するときに非常に参考になりました。
ex.） なぜ分散処理が必要なのか？ ストリーミング処理の課題 etc...

ただし、一度視聴しただけでは主要な用語とサービスの名前を覚えることで精一杯だったため、各サービスの特徴と専門用語を整理しました。
その際にちょうど話題であったChatGPTが使えないかと考え、OpenAIのAPIとスプレッドシートを活用して用語集を作成し、Glideでスマホアプリにして隙間時間に繰り返し用語を覚えました。

#### ChatGPTを活用した用語集の作成
ChatGPTを活用してGoogleのサービスをスプレッドシートにまとめました。
こちらはまた別途記事に残そうと思いますが、[サンプルのシート](https://docs.google.com/spreadsheets/d/1J_KUmZDJxDayPLpohYJNfyYLMP9AtskVuBTvHqhdHL4/edit#gid=1108329288)のリンクを貼っておくので興味がある方はこちらのシートをコピーして使ってください。

<details><summary>ざっくり説明</summary>
・OpenAIに登録してAPIキーを取得し、スクリプトの記述を修正する<br>
・シートの編集時をトリガーにpushSheet関数を設定する<br>
・A列に知りたい用語を入力するとB列に解説を載せてくれる(列を増やして画像のようにもできる)<br><br>

ちなみにコードの大半はChatGPTが書いている
</details>

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/685944/dea36cd7-b0d5-bf46-8cd3-cc44b32ebae1.png)


### ② 公式の模擬試験を受ける

https://docs.google.com/forms/d/e/1FAIpQLSd4j4bcgbYenBRFIL6Kb0cvXp13qCQ-z6JzowgDxRaPITn56g/viewform?hl=ja


次に[GoogleのPDEのサイト](https://cloud.google.com/certification/data-engineer?hl=ja)で模擬試験が受けられるので、試しに受けてみました。
初回はボロボロでしたが、間違えた項目を下記の点で整理してその後の学習につなげました。

```
・問題文中の用語は理解できているか(他人に説明できるレベルか)
・問題文が理解できているか(どんな状況で、何が課題なのかを整理できているか)
・正解ではない選択肢が間違いである理由を説明できるか
```
### ③ 間違えた問題の理解度を上げる

#### 公式リファレンス
上記のGoogle公式試験もそうだが、模擬試験の解説にはソースとしてリファレンスが埋め込まれていることが多い。まずは自分が間違えた問題に絞ってリファレンスを読み込み理解を深める。

#### 技術ブログ
リファレンスが難しく理解できない内容はQiita等の個人の方が投稿した記事を見て理解を深めました。
個人的には @k_0120 さんの記事が一番わかりやすくよくまとまっていて勉強になりました。
先人の方々、本当にありがとうございました。

#### 書籍
学習時に使用した書籍の一覧です。
一冊丸ごと読もうとすると時間がかかってしまうため、随時必要なページを参照しながら読み進めました。

- [ビッグデータを支える技術](https://gihyo.jp/book/2021/978-4-297-11952-2)
- [Google Cloudではじめる実践データエンジニアリング入門[業務で使えるデータ基盤構築]](https://www.amazon.co.jp/Google-Cloud%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E5%AE%9F%E8%B7%B5%E3%83%87%E3%83%BC%E3%82%BF%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%A5%AD%E5%8B%99%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%83%87%E3%83%BC%E3%82%BF%E5%9F%BA%E7%9B%A4%E6%A7%8B%E7%AF%89-%E4%B8%8B%E7%94%B0-%E5%80%AB%E5%A4%A7/dp/429711948X/ref=asc_df_429711948X/?tag=jpgo-22&linkCode=df0&hvadid=342518373760&hvpos=&hvnetw=g&hvrand=12733661034702829494&hvpone=&hvptwo=&hvqmt=&hvdev=c&hvdvcmdl=&hvlocint=&hvlocphy=9053268&hvtargid=pla-1140472395531&psc=1&th=1&psc=1)

### ④ Udemyに公開されている模擬試験をひたすら解く(④→③の繰り返し)

#### Udemyの模擬試験
他の方の合格体験記を調べると[こちら](https://www.udemy.com/course/google-cloud-professional-data-engineer-s/)のUdemyの模擬試験を活用されている方が多くいましたが、いくつか情報が古かったり、正答の解説しか載っていなかったりと個人的には少し不満でした。

今から受験される方は下記の講座の方が上記課題が解消されているためお勧めです。

https://www.udemy.com/course/google-cloud-professional-data-engineer-3180/


## 苦労したこと
### 専門用語がわからない
とにかく聞いたことがない用語がたくさん出てきたので、問題を読み解くことに苦労しました。
この点をChatGPTに頼ることができたので検索する時間が削減され効率よく知識の吸収ができたと感じています。(とはいえ情報の精度が低いこともあるので注意が必要ですが、、)
また、今後他の資格試験を受験する際にも転用できるため、引き続き活用していきたいです。

### リファレンスが膨大すぎてどれを読んだら良いのかわからない
最初は必要なリファレンスを片っ端から目を通す勢いで読んでいましたが、具体的すぎて逆に理解に苦戦しました。
そのため、途中から間違えた問題のリファレンス且つ、問題に関係のある箇所のみをピンポイントで確認するというアプローチに変えたところ少しずつ理解度が上がっていきました。

## 受験時の注意点
受験時はWebassessorのアカウントを登録する必要があるのですが、この時の表示名を英語で登録してしまうと、パスポート等の英語名が記載されている身分証を持っていないと受験をすることができません。
受験日当日に指摘され一度キャンセルとなってしまいました。

名前の変更は可能ですが、私の場合は変更までに1ヶ月ほどかかってしまったため、日本語の身分証しか持っていない方は登録時に注意してください。

※私の場合当日キャンセルをしてしまったため、200ドル捨てることになりそうでしたが、こちらの記事を見つけ75%オフのバウチャーを発行してもらい追加50ドルの支払いで受験することができました。

https://yomon.hatenablog.com/entry/2021/09/google_cert_remote_english

## まとめ
事前に調べた際はデータエンジニアリングの実務経験3年程度必要とのことでしたが、実務未経験でも合格は可能でした。データエンジニアを目指したい方はポートフォリオ等が作りづらいので、アピールのためPDEの資格試験を受験することはお勧めです。

また、データレイク、ウェアハウス、データパイプライン等のデータエンジニアリングの知識を網羅的に学ぶことができるため、これから実務を担当する方の入り口としても良いのではないかと思います。

一方、この資格を取得したからといって実際にGCP上で基盤構築ができるかというとそうではないため、これから実務経験を通してしっかりと技術力を上げていきたいです。