オーロラさんの勉強帳

IT企業勤務。データベース、Excel、Excel VBA、ネットワーク、LinuxなどIT関連のことを主に書いていきます。少しでもお役に立てたら幸いです。

【資格】AWS認定クラウドプラクティショナー試験 (CLF-C01)に合格。勉強方法、学習時間などを紹介します。

AWSの中で最も基礎的な資格であるAWS認定クラウドプラクティショナー試験(CLF-C01)に合格しましたので、合格するための勉強方法などを紹介します。


AWS認定クラウドプラクティショナー(CLF-C01)とは

AWS認定クラウドプラクティショナーは、AWSの資格の中では最も基礎的な資格となっています。AWSクラウドの全体的な知識を効率よく学習することができます。

AWS認定クラウドプラクティショナーについて、公式サイトでは以下のように紹介されています。

この資格は、組織がクラウドイニシアチブを実装するための重要な知識を持つ人材を特定して育成するのに役立ちます。AWS Certified Cloud Practitioner を取得することで、クラウドへの理解と基礎的な AWS の知識が認定されます。

引用元 AWS Certified Cloud Practitioner 認定 | AWS 認定 | AWS


試験概要

出題範囲

出題範囲は以下の通りです。(2022年3月時点)

f:id:auroralights:20220320230942p:plain
AWS認定クラウドプラクティショナーの出題範囲

試験時間・合格ライン

試験時間:90分
合格ライン:700点以上

(試験結果は100点~1000点の範囲のスコアになります。最低合格スコアが700点。分野ごとの足切り点数はなく、試験全体で合格することが求められます)


試験についての最新情報はAWS公式サイトをご確認ください。
AWS Certified Cloud Practitioner 認定 | AWS 認定 | AWS


学習期間

AWS認定クラウドプラクティショナー試験をうけるにあたって約1カ月間の学習をしました。
平日は1日30分~1時間、土日は30分~2時間ほどなので、合計の学習時間は20時間~30時間ほどだと思います。
IT未経験の方でも、学習時間の確保ができれば1カ月~2カ月ほどで合格できるかと思いました。
経験者だと2週間~1カ月ほどで合格できると感じました。


AWS認定クラウドプラクティショナー(CLF-C01)に合格するためのおすすめの学習方法

私がおすすめする学習方法は、以下3つのの教材での学習です。

  1. AWS認定資格試験テキスト AWS認定クラウドプラクティショナー
  2. Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)
  3. AWS公式サイトのサンプル問題、無料の公式練習問題集

1.AWS認定資格試験テキスト AWS認定クラウドプラクティショナー

本書でAWSクラウドの全体像を理解するために、1週間で1周くらいのペースで読み進めました。
書籍の内容はわかりやすいですし、資格取得後も読み返したりできる思います。
用語が多いので、ノートにまとめるなどで学習することをおすすめします。
私は1カ月で5周ほど読みました。

※注意点:AWS経験がない方だとこのテキストだけの学習では、不合格になる可能性があると感じました。問題数が少ないため、私の場合はアウトプットが足りなかったです。
Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)とあわせて学習することをおすすめします

2.Udemy これだけでOK!AWS認定クラウドプラクティショナー試験突破講座 (豊富な試験問題290問付き)

実際にAWSアカウント(無料枠)を作成して、ハンズオンで学習できるので、AWSクラウドのイメージがつきやすいです。
また、問題が充実しているので、問題集としても使えます。(項目ごとの小テストと模擬テストが2回分ついています)


私は試験前の数日間は小テストと模擬テストばかりをひたすら解いて、知識を定着させました。「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を読んで理解したと思っていても、いざ問題となると全然わからずにとても焦りました。

デメリットとしては、結構ボリュームが多く学習時間がかかります。あと、内容が一部冗長的な気もしました。
私は時間の関係で本教材は半分ほどしか進められず、試験前に問題集として小テストと模擬テストをひたすらやりました。
試験後に残りの部分を勉強して理解しようと思ってます。

f:id:auroralights:20220320224335p:plain


3.AWS公式サイトのサンプル問題、無料の公式練習問題集

AWS公式サイトのページ下部にあるサンプル問題と公式練習問題集を解きました。
aws.amazon.com
f:id:auroralights:20220320225702p:plain


試験結果

738点で合格。
体感ではもう少し余裕をもって合格できたと思っていたのですが、結構ぎりぎりでしたね。

AWS認定クラウドプラクティショナー試験の結果レポート
AWS認定クラウドプラクティショナー試験の結果レポート

以下の通り、『請求と料金』の項目の理解が全然足りてませんでした。分野ごとの足切り点がなくて本当に良かったです。
f:id:auroralights:20220320230750p:plain


AWS認定クラウドプラクティショナーの感想

AWSの基礎的な試験となり、難易度は簡単な部類ではあるのですが、しっかりと学習しないと落ちます。

私自身、今回、「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー」を5度ほど読んで、理解したと余裕を感じていました。
しかし、試験数日前にUdemyの模擬問題を全然解けないことに気が付き、あわててUdemyの問題をたくさん解き、なんとか合格できました。
問題を解いてアウトプットするのは大事ですね。

AWSクラウドの基礎的な部分を効率よく学習できたかと思いました。業務で直接AWSに触れることは少ないのですが、今年中にAWS認定ソリューションアーキテクトを取得したいと思います。

以上、お読みいただきありがとうございました。

【Excel VBA】再帰呼出しで最大公約数を求める(ユークリッドの互除法)

プログラムが自分自身を呼び出す処理のことを「再帰呼出し」といいます。
今回は再帰呼出しを使って、2つの数の最大公約数を求める方法を解説します。
最大公約数を求めるために、今回は『ユークリッドの互除法』と呼ばれるアルゴリズムを使います。

再帰呼出しの解説は以下の記事も参照ください。
auroralights.jp


最大公約数を求めるのVBAコード

以下は「48」と「20」の最大公約数を求めるVBAコードです。

Sub sampleCall()
    MsgBox sampleGcd(48, 20)
End Sub

Function sampleGcd(ByVal m As Long, ByVal n As Long) As Long
    If n = 0 Then
        sampleGcd = m
    Else
        sampleGcd = sampleGcd(n, m Mod n)
    End If
End Function

※Sub sampleCall内のMsgBox sampleGcd(48, 20)の()内の数字「48,20」を任意の2つの数字に変えると、その数字の最大公約数を求めることができます。


処理を考える

上記の最大公約数を求めるVBAの処理を見ていきます。

再帰呼出し

1~2行目:Subプロシージャ「sampleCall」からFunctionプロシージャ「sampleGcd」を呼び出し、引数48と20を渡します。
5行目:48を「m」、20を「n」に格納します。
6行目:IF文の条件分岐です。n = 0ではないので、9行目に移ります。
9行目:Functionプロシージャ「sampleGcd」を再帰呼出し、その際に「n」と「m mod n (mをnで除算した余り)」を引数として渡します。
5行目:渡された引数「n」を「m」、「m mod n」を「n」に格納します。

以降は「n」が「0」になるまで、再帰呼出しでFunctionプロシージャ「sampleGcd」の処理を繰り返します。「n」が「0」になった時点の「m」を返り値として、Functionプロシージャ「sampleGcd」から呼び出し元のSubプロシージャ「sampleCall」に渡し、メッセージボックスに表示して処理を終えます。

引数「m」と「n」の変化


参考情報:ユークリッドの互除法、最大公約数、GCD関数

ユークリッドの互除法

ユークリッドの互除法は、2つの自然数a、bの最大公約数を求める方法です。(詳細な内容は難しいので割愛します)

1.「a」を「b」で割る。余り「r」を求める
2.「b」を1.で求めた「r」で割る。その余り「r1」を求める
3.「r」を2.で求めた「r1」で割る、その余り「r2」を求める
4.「r1」を3.で求めた「r2」で割る、その余り「r3」を求める
・・・・
余りが「0」になる(割り切れる)まで繰り返します。(必ず割り切れます)
余りが「0」になったときの割る数が最大公約数になります。

以下は500と75の最大公約数を求め方です。

最大公約数

2つ以上の数を割り切る数の中で、共通している数かつ、最も大きい数を最大公約数といいます。
最大公約数を理解するには、約数、公約数を理解する必要があります。

  • 約数:ある1つの正の整数を割り切る数
  • 公約数:2つ以上の正の整数に共通な約数
  • 最大公約数:公約数の中で一番大きな数

以下画像では10と12の最大公約数を考えています。

約数・公約数・最大公約数

GCD関数

Excelのワークシート関数『GCD関数』を使うと、最大公約数を求めることができます。

■GCD関数の書式
=GCD(数値1,数値2[,・・・・・,数値255])

GCD関数の利用例(=GCD(C2:D2)と引数にセル範囲を指定)



お読みいただきありがとうございました。

【Excel VBA】再帰呼出しをVBAで試してみる ~再帰呼出しの動きをわかりやすく解説~

プログラムが自分自身を呼び出す処理のことを「再帰呼出し」といいます。
実際にVBAのコードで「再帰呼出し」の動きをわかりやすく解説します。

階乗を求める再帰呼出しのVBAコード

4の階乗を求めるVBAのコードです。
FunctionプロシージャのsampleRecursiveで「再帰呼出し」にて、4の階乗を求めています。

Sub sampleCall()
  MsgBox sampleRecursive(4)
End Sub

Function sampleRecursive(ByVal n As Long) As Long
    If n <= 1 Then
        sampleRecursive = 1
    Else
        sampleRecursive = n * sampleRecursive(n - 1)
    End If
End Function

※Sub sampleCallのMsgBox sampleRecursive(4)の()内の数字「4」を任意の数字に変えると、その数字の階乗を求めることができます。


上記コードを動かしてみると、4の階乗(4×3×2×1)の24がメッセージボックスで表示されます。


再帰呼出しの動作を画像で分かりやすく解説

以下の画像は再帰呼出しの前半部分の解説画像です。
Subプロシージャ「sampleCall」からFunctionプロシージャ「sampleRecursive」を呼び出します。その際に引数として「4」を渡します。
Functionプロシージャ「sampleRecursive」で自分自身を呼出す際は、3、2、1と引数を渡していきます。

再帰呼出し

以下の画像は、再帰呼出しの後半部分の解説画像です。
『sampleRecursive = n * sampleRecursive(n - 1)』『sampleRecursive(n - 1)』に返り値(1、2、6)を返して、階乗を計算していきます。
※2*1⇒3*2⇒4×6で24求めています。
そして、再帰呼出しで求めた24をSubプロシージャ「sampleCall」に返して、メッセージボックスに表示しています。

再帰呼出し


4の階乗を再帰呼出しで求める動作の流れは以下の通りです。

再帰呼出し 4の階乗

再帰呼出しの動作を考える(文字ベース)

大きな動きは以下の図の通りです。上記では画像ベースで説明したので、テキストベースで1つずつの処理を解説します。

再帰呼出し

<Subプロシージャ:sampleCall>
1~2:Subプロシージャ「sampleCall」からFunctionプロシージャ「sampleRecursive」を呼び出します。その際に引数として4を渡します。

<FunctionプロシージャsampleRecursive>
4:Functionプロシージャ「sampleRecursive」でnには4が渡されています。
5:IF文でnが1以下かどうかで処理を分岐しています。(n=4なので8行目に移動)
8:sampleRecursive = n * sampleRecursive(n - 1)では、sampleRecursive =4*sampleRecursive(3)となります。sampleRecursive(3)で自分自身のFunctionプロシージャ「sampleRecursive」を呼び出します。
その際、引数に3を渡します。

引数に3を渡したFunctionプロシージャ「sampleRecursive」でも、8行目でさらに自分自身のFunctionプロシージャ「sampleRecursive」を呼び出します。
その際、引数に2を渡します。
引数に2を渡したFunctionプロシージャ「sampleRecursive」でも、8行目でさらに自分自身のFunctionプロシージャ「sampleRecursive」を呼び出します。
その際、引数に1を渡します。

引数に1を渡したFunctionプロシージャ「sampleRecursive」では、6行目でsampleRecursive=1で返し値として1を格納。
9~10行目のEnd If、End Functionで呼出し元に返り値1を返します。

呼出し元は「sampleRecursive = 2 * sampleRecursive(2 -1)」の『sampleRecursive(2 -1)』です。sampleRecursive(2 -1)に返り値1が入るので、「sampleRecursive = 2 * 1」(返り値が2)となります。
9~10行目のEnd If、End Functionで呼出し元に返り値に2を返します。

呼出し元は「sampleRecursive = 3 * sampleRecursive(3 -1)」の『sampleRecursive(3 -1)』です。
sampleRecursive(3 -1)に返り値2が入るので、「sampleRecursive = 3 * 2」(返り値が6)となります。
9~10行目のEnd If、End Functionで呼出し元に返り値に6を返します。

呼出し元は「sampleRecursive = 4 * sampleRecursive(4 -1)」の『sampleRecursive(4 -1)』です。
sampleRecursive(4 -1)に返り値6が入るので、「sampleRecursive = 4 * 6」(返り値が24)となります。
9~10行目のEnd If、End Functionで呼出し元に返り値に24を返します。

呼出し元Subプロシージャ「sampleCall」のMsgBox sampleRecursive(4)の『sampleRecursive(4)』です。
メッセージボックスに24を表示して、処理を終わります。


以上、再帰呼出しの解説です。
お読みいただきありがとうございました。