Google Cloud 認定 Professional Data Engineer試験に合格したので勉強法とか書く

# TL;DR;

* Courseraのコースを視聴し、模擬試験を満点にしてから臨んだ。
* 知識そのものは問われない。課題解決的な問題が多い。
* 合格ラインは不明。

# Professional Data Enginnerとは

## 概要

Google Cloud認定試験は、GCPを使ってクラウドソリューションを構築するスキルを証明する事ができる資格です。
いわゆる「ベンダー試験」です。

2020/7/25現在、10の科目がデプロイされています。

* Foundational (基礎資格)
    * Cloud Digital Leader
* Associate (推奨経験: 6ヶ月以上のGCP利用経験)
    * Cloud Engineer
* Professional (推奨経験：3年以上の実務経験、うち1年がGCP利用経験)
    * Cloud Architect
    * Cloud Developer
    * **Data Engineer**
    * Cloud DevOps Engineer
    * Cloud Security Engineer
    * Cloud Network Engineer
    * Collaboration Engineer
    * Machine Learning Engineer

なお、今回の資格ではありませんが、Professional Cloud Architectについては、2019, 2020年に「最も稼げる資格」に認定されたとか。
この資格で認定されることによる、市場価値へのインパクトはそれなりに大きいでしょう。

## Professional Data Engineer

今回受けたこの資格は、いわゆる「データエンジニア」という職種に求められる課題解決能力を問うものです。
私の所感ですが、クラウドでの課題解決と言うと

* クラウド移行
* パフォーマンス最適化
* コスト最適化
* 運用コストの軽減

などがよく挙げられますが、データ処理パイプラインや、データベース、ストレージを設計するとき、これらの点についてどのように対処するか、という思考をする能力が問われます。
サービスそのものの知識がそのまま問われるということはありません。(調べれば出るからだと思います。)
「Aという要件がありますが、Bという制約があります。どのように設計すればよいですか。」という感じの問題が多かったです。

## 試験内容

問題は、50問あり、それを2時間で解きます。すべて選択式でした。
５０問とき終わったあと、一通り見直しをして丁度いいくらいでした。
試験の合否は、試験を受けたあとすぐに分かります。Google Cloud認定アカウントでも確認できるようになります。
公式で合格通知が来るのは、その1週間ぐらいあとです(私も執筆時点ではまだ来てません)。

## 試験会場

基本はCBT試験で、テストセンターに行って受けてきます。
コロナの事情もあってか、自宅での受験もできます。が、試験のために、PC以外になにもない状態の部屋を用意する必要があり、試験前に確か専用アプリでなにもないことを示すために部屋中を撮影する、などいろいろめんどくさそうだったので、テストセンターに行きました。
試験会場についたら、パーティションで区切られた個人ブースに案内されます。
私の使ったPCはちょっと解像度が悪くて文字が読みづらかったです。テストセンターはPCがちょっと古い可能性があるので、自宅で使い慣れたPCで試験環境を用意できるのであれば、自宅での受験を検討したほうが良いかもしれません。

# 参考書等

## 模擬試験

残念ながらこの資格に特化した参考書がないので、公式で公開されている模擬試験を活用しましょう。
私もこれは一番活用しました。 

模擬試験はすべて回答して採点すれば、全問に対する解説が読めますので、
間違えた問題については、なぜそれが間違いなのか、正解した問題についてはなぜそれが正解なのかをよく確認していました。
解説はちょっと分かりづらかったので、リンクされているドキュメントや他サイトを合わせてよく読んだほうが良いです(ドキュメントがわかりやすいとも言えませんが・・・)。

これで満点を取れるようになれば、多分大丈夫です。

## Coursera

Courseraは、世界中の有名講師がさまざまな動画講座を公開してくださっているサイトで、Google認定資格に関連する講座もここで公開されています。
また、動画コンテンツも非常に多く、詳しく解説されております。
途中でオンラインハンズオンや、理解度チェックテストがあるので、活用しましょう。

登録すると、7日は無料トライアルで利用できますが、その後は1ヶ月あたり5000円+位かかります。
内容を十分に消化するためにはかなりインテンシブにやる必要がありますが、それだけの価値があるとおもいます。

音声が英語で、字幕日本語バージョンのものを利用しましたが、すこし分かりづらいです。
使っている段階で「あれ？おかしいな？」と思った場合はフィードバックしてあげましょう。

## Qwiklab

こちらはGCPのオンラインハンズオン環境です。(今回関係ないけどAWSもあったはず)
自分の個人GCPアカウントや会社のGCPアカウントでやると課金が心配の場合は、これを利用すると良いと思います。
Courseraのコースを取ると、その中で利用できます。

# 勉強の仕方

色々なサービスについて学習しますが、その時以下のような観点で確認するといいと思います。

* 基本概要
    * ストレージサービス？データベース？コンピューティングサービス？
* サーバレスなのかサーバフルなのか
    * サーバレスなら管理コストが低くできる(レイテンシは大きくなりがち)
* マネージドなのかアンマネージドなのか
    * マネージドなら管理工数が低くできる
* 課金単価が高いのか低いのか
    * 同じことをより安く実現できるのであればそっちのほうがいい
* スケーラブルなのかスケーラブルじゃないのか
* システム更新は手動でやるのか、自動でできるのか
    * スケールアウトは自動化できるのか、それはどうやってやるのか、など
* どんなUI(API, GUI, Cloud SDKなど)が用意されているのか
    * GUIでノンプログラマでも利用できるか

もちろんこれが全てというわけではないですが、できるだけ列挙してみました。

前述の通り、ある解決したい課題について、どのサービスを使うのが適切かを問われます。
例えば、低価格なストレージを要求されているにも関わらず、高価なローカルSSDを使っていたり、運用コストを最低限にしたいのに、オンプレミスを使っているなどの基準で、誤りの選択肢をはじくことができます。
サービスについてのあまりにマニアックな質問はなかったです。

# まとめ

とりあえずざっと書いてみました。
何度か書きましたが、実務でありそうな要件に対して、どんなソリューションで対応するのがよいかを考える能力が問われ、実際の仕事でもかなり役に立ちそうな感じがしました。
データエンジニアは他のAI職種と並んでこれからの需要も高まっていくと思うので、
この分野で市場価値を高めたいと思った方は、ぜひ合格を目指して頑張ってください！

# Reference

* Google Cloud 認定資格
    * https://cloud.google.com/certification