ChatGPTを使った、わたしの資格勉強法

最近、AWSの資格勉強を続けています。昨年12月はAWS SAAに無事合格し、いまはAWS SOAの試験日程を決めるところです。

過去にもAWSの勉強はしていたのですが、正直言って上手に知識を吸収したり処理することができませんでした。しかし最近は、わりとスムーズに勉強できている気がしています。

**そのきっかけが、ChatGPTでした。**

おそらくいくらでも書かれているだろうテーマですが、この記事では自身が**どのようにChatGPTを活用して資格勉強を進めているか**を説明します。

## 使い方1: 問題文をChatGPTに投げる

早速ですが、資格勉強において私が考えるもっとも良い使い方は、

「**例題や模試などの問題文をChatGPTに貼り付け、その回答をベースにやりとりを続ける**」

というシンプルなものです。

### なぜこの方法が良いのか

参考書をつかった学習の場合は「問題文を読んで回答を考え、模範解答と見比べて解説を読み、それでもわからない箇所があればテキストを読み直す」というのが一般的な流れになるはずです。

これと比べると、**ChatGPTを使う利点は「わからない箇所」があったときの流れです**。

解説を読んでもわからないときに「〜がわからないので教えてください」というだけで、問題の文脈にあわせてChatGPTが説明してくれます。

**一般的な解説ではなく、あなたの知識レベルにあった解説をしてくれる**。たったこれだけですが、この効果はかなり大きいです。

## 使い方2: やりとりから得られた「新しい知識」を簡潔にまとめる

活用するうえで、もうひとつ重要だと感じていることがあります。それは、

**やりとりの中で気づいたことやはじめて知ったこと、ちゃんと覚えたいことがあれば、それを別途メモとしてまとめる。**

ということです。

たとえば私は下記のように、Notionにページを作って書いています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144277/f7c581c9-d56f-711d-c343-2657207ef81c.png)

ChatGPTのやりとりの共有リンクを貼っておくだけでも良いように感じるかもしれませんが、個人的にはこの**編集作業**がキモです。

もちろんChatGPTを使っているのだから「このやりとりをまとめてください」と指示することも可能です。しかしこの文章作成だけは個人の力でやりとげます。**この編集中の時間が、もっとも知識が蓄積する時間だからです**。

完璧である必要はありません。大きな誤りは避けるべきですが、100%正確でなくともよいと思います。

そのとき自分が「なるほど」と感じたことをメモしておきます。

## 使い方3: どうChatGPTに質問するとよいか

やりとりするうえで、以下のような質問を使うと、自分の知らない情報や編集しやすい情報を得られることが多いです。

- 詳細を問い合わせる: 「〜について詳しく教えてください」「〜の具体例を見せてください」
- 利点を明確にする: 「〜はなぜあるのですか？」「〜の利点を教えてください」
- 違いを明確にする: 「〜と〜はどのように異なるのですか？」
- 理解をぶつける: 「〜ということですね」
- 反論する: 「〜は不適切なのでしょうか」「〜という方法でもOKですか？」

以下、実際に学習を進める実例を紹介してみようと思います。

## 実例

たとえば下記の例題1を解いてみることにします。[^1]

> ――ある企業は、複数のアベイラビリティーゾーンにまたがる VPC 内で、パブリック側の 3 層ウェブアプリケーションを実行しています。プライベートサブネットで実行されているアプリケーション層の Amazon EC2 インスタンスでは、インターネットからソフトウェアパッチをダウンロードする必要があります。ただし、EC2 インスタンスにインターネットから直接アクセスすることはできません。EC2 インスタンスが必要なパッチをダウンロードできるようにするために実行すべきアクションはどれですか。(2 つ選択) 
> (https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Sample-Questions.pdf)

プロンプトには選択肢を与えていませんが、NATゲートウェイに関する回答をしてくれています。

> Amazon EC2 インスタンスがプライベートサブネット内で動作しており、インターネットから直接アクセスできない状況でソフトウェアパッチをダウンロードするためには、以下の２つのアクションが考えられます。
>
> NATゲートウェイまたはNATインスタンスの使用: プライベートサブネット内の EC2 インスタンスがインターネットにアクセスするためには、NAT ゲートウェイまたは NAT インスタンスをパブリックサブネットに配置し、ルーティングテーブルを適切に設定する必要があります。これにより、プライベートサブネット内のインスタンスはインターネットにアウトバウンド接続を行うことができ、必要なパッチをダウンロードできますが、インターネットからの直接アクセスは受け入れません。[...]

ここからが本番です。

たとえばNATゲートウェイに関して知らないと感じれば、「NATゲートウェイについて詳しく教えてください」と聞けばよいでしょう。ルーティングテーブルの設定をイメージしたければ、「ルーティングテーブルの設定例を教えてください」などもいいですね。

ちょうど「NATゲートウェイ」と「NATインスタンス」の違いをきちんと語れないような気がしたので、聞いてみることにします。

> ――「NATゲートウェイ」と「NATインスタンス」の違いを教えてください。
>
> 「NATゲートウェイ」と「NATインスタンス」は、共にAWSのVPC内でプライベートサブネットに配置されたインスタンスがインターネットにアクセスするための方法を提供しますが、いくつかの重要な違いがあります。[...]

回答を読みながら、ふと個人開発においてはどちらを使うべきか気になったので、それも聞いてみます。[^2]

> ――個人開発のような、インターネットへのアクセスがそれほど頻繁ではない場合は、NATインスタンスで十分そうですがどうでしょう？
> 
> 個人開発プロジェクトやインターネットへのアクセスがそれほど頻繁ではない場合、NATインスタンスは十分な選択肢となることが多いです。以下の理由によります：[...]

さらに「NATインスタンスはEC2インスタンスである」と書かれているのが気になり、これも質問してみました。

> ――「NATインスタンスはEC2インスタンス」ということは、実際にEC2の一覧から確認できるのですか？　またインスタンスに接続することも可能なのでしょうか。
>
> はい、NATインスタンスは実際にEC2インスタンスの一種です。これはAWSのEC2インスタンスサービスを使用してデプロイされ、管理されます。そのため、以下のような特徴があります：[...]

やりとりは一旦以上とします。最後に、学習したことのうち、個人的に覚えておきたいことを書きます。今回は一番大きな違いがわかればよいだろうと感じたので、ザックリ書きました。これで完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/144277/df48f689-79c5-5eaf-bae2-2fcc7a222edd.png)

## 補足

ChatGPTを使ううえでもっとも気になるのが「回答内容の正確性」です。正味、上記のやりとりも「100%正確なのか？」と聞かれると、まったく自信はありません。初歩的な誤りですらあるかもしれません。

ただし資格勉強という性質上、たとえば直近1年以内の情報のみを求められるパターンがないかぎり、それほど気にはなりませんでした。

実際、AWS SAAは一般的な資格試験に比べて情報の変更が起きやすいため、非推奨になっている機能やオプションを回答するようなことはありました。

しかしそれを差し置いても、ChatGPTを使うことは非常に効果的である、というのが自身の結論です。

## さいごに

ChatGPTを使っても使わずとも、きちんと勉強すれば大抵の資格は取得できます。

しかしChatGPTを併用すると、学習のスピードは変わらずとも（むしろ遅くなるかも。1問ずつ丁寧にやるので）、知識がより身体化されていく感覚を味わうことができました。

また現在GPT-4は回数制限もあるため、たくさんやりとりをしていると制限にかかり、自動的に休憩を求められるところも気に入っています（笑）。

もしChatGPTを持て余しているようだったら、ぜひ一度試してみてはいかがでしょうか。

[^1]: 実際のChatGPTのやりとりのURL → https://chat.openai.com/share/b3059466-2565-4cb4-b1e8-3bd9ab231217

[^2]: 気になったのでChatGPTではなくググりながら調べてもみました。[令和なのに NAT インスタンスを手作りして使ってみた | DevelopersIO](https://dev.classmethod.jp/articles/nat-instance-handmaid/)などを参照すると、個人開発でギリギリ使ってもOK、事業であればほぼ利用しないだろうという感じでしょうか。