投稿

[資格] Oracle Certified Java Programmer, Bronze, Silver, Goldを取得した話

イメージ
Oracle認定JavaプログラマのBronze、Silver、Goldをすべて取得してきました。 Oracle認定Javaプログラマについて 概要 Oracle認定Javaプログラマは、日本Oracle社が主催するJavaプログラマ向けのベンダー資格です。 Javaのバージョンアップに合わせて試験の内容もバージョンアップされており、2022年12月現在はJava SE 8とJava SE 11が配信されています。今から取得を考えている人は、特に理由がない限りJava SE 11の取得を目指したほうが良いでしょう。 試験のグレードとしてはBronze(初級)、Silver(中級)、Gold(上級)の3段階あります。3段階ですがそれぞれで範囲が違ってくるので、試験に合わせた準備が必要です。 Bronze SE 概要 この試験はいわゆる入門向けの資格で、プログラミング言語(Java)を初めて学ぶ人を対象とした資格です。変数や制御構文の基礎、クラスやオブジェクト指向の基礎について出題されます。 なお以前はJava SE 7/8 Bronzeが配信されていましたが、現在はバージョンに依存しない構成でリニューアルされています。 試験情報 1. Bronze SE試験情報 資格名 Oracle Certified Java Programmer, Bronze SE 試験番号 1Z0-818(-JPN) 問題数 60 試験時間 65分 合格ライン 60% 受験料(税込み) ¥12,540 前提条件 無し、誰でも受験・認定可能 参考書 所感 実はこの試験が一番危なかったです。理由は試験時間に対して問題数がやや多く、1問1分程度で解かなくてはならないためじっくりと考えていると時間が足りなくなります。 問題としてはプログラムのロジックを理解する問題が多いですが、テンポよく解いていく必要があります。とにかくスピード重視です。 参考書に挙げた問題集を使って慣れておくとよいです。 Silver SE 11

[Java] JDBCのAPIでデータ検索・更新

イメージ
JDBCのAPIを使用してDB操作をする方法について、いくつかまとめていきます。 JDBCを介してSQLを発行する場合、Statementインターフェースを使用します。Statementインターフェースには以下の種類があります。 1. Statementの種類 Statement パラメータなしのSQL文を実行する。コンパイルせずに文字列のままSQL文を発行するので、DBMSがSQL文を解析する。 PreparedStatement Statementインターフェースのサブインターフェースで、パラメータ付きのSQL文を実行することが出来る。SQL文はDBMSが理解できるようにあらかじめコンパイルして発行する。 CallableStatement Statementインターフェースのサブインターフェースで、ストアドプロシージャを実行することが出来る。 なお、この記事で使用するテーブルとして、以下のようなデータを用意しています。 テーブル名はarticles、idを主キーにtitle、bodyといったフィールドを保持したテーブルです。 Statementを利用してSQLを実行 Statementインスタンスを取得 Connectionオブジェクトから生成 Statementインターフェースのインスタンスは、ConnectionクラスのcreateStatementメソッドで生成します。 Connection conn = DriverManager.getConnection(url, user, password); Statement statement = conn.createStatement(); Statementインスタンスの主なメソッド Statementインターフェースの主なメソッドは以下の通りです。なお、これらのメソッドはサブインターフェースである、PreparedStatement、CallableStatementにもそれぞれ引き継がれます。 2. Statementインスタンスの主なメソッド ResultSet executeQuery(String) 引数で指定されたデータ検

[Java] JDBCドライバでMySQL接続するまでの手順

イメージ
JavaでJDBCドライバを利用して、データベース接続をするまでの手順です。ここではJDBCドライバのインストール、jarファイルのセットアップまでの手順をまとめます。 なお、今回使用するデータベースはMySQLを使用しますが、1からサーバーを立てるのは大変なので、以前Laravel環境を構築したときに使用したdocker上のMySQLを使用します。これについては以下の記事を参照してください。 https://www.s-watanabe.work/2020/12/laravel-mysqldocker.html 1. 環境情報 OS Windows10 データベース MySQL JDBCドライバ Connector/J 8.0.31 IDE IntelliJ JDBCドライバのセットアップ インストーラのダウンロード 以下のMySQL公式サイトのダウンロードページからConnector/Jという、JDBCドライバをダウンロードします。なお、現在単体でのダウンロードは見つからなく、MySQL Installerに含まれているようなので、MySQL Installerをダウンロードします。 https://dev.mysql.com/downloads/connector/j/ インストーラを実行 ダウンロードしたインストーラを実行し、Setup TypeにCustomを選択してNextをクリックします。 インストールするプロダクトを選択 インストールするプロダクトは最小構成にしたいので、Connector/Jのみを選択します。 ダウンロード対象のプロダクトを確認 Connector/Jが入っていればOKです。Executeをクリックするとダウンロードとインストールが開始されます。 セットアップ完了 Show Detailをクリックすると、セットアップのログが確認できます。ここにライブラリがインストールされたディレクトリが確認できるので控えておきます。 Next → Finishをクリックし、MySQL JDBCドライバのセットアップは完了です。 ライブラリ設定 次にインス

[Java] シリアライズとデシリアライズ

入出力ストリームを利用してインスタンスをファイルに書き出すことをシリアライズ、ファイルから読み込むことをデシリアライズと言います。 Serializableインターフェース Serializableインターフェースはシリアライズ、デシリアライズさせたいクラスに実装させるインターフェースです。 このインターフェースは、マーカーインターフェースといい、シリアライズするクラスであるということをJVMへ示すためだけのものです。メソッドは何も持っていません。 コード例 ここではidとnameというフィールドを保持するPersonクラスを定義し、Serializableインターフェースを実装しています。 import java.io.Serializable; public class Person implements Serializable { private int id; private String name; public Person(int id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "id:" + id + ", name:" + name; } } Serializableインターフェースはマーカーインターフェースであり、JVMがシリアライズ可能と判別するためのもの。メソッドは持たない。 シリアライズ ObjectOutputStreamクラス オブジェクトをシリアライズしてファイルに書き出すにはObjectOutputStreamクラスを使用します。 ObjectOutputStreamクラスのインスタンスを取得 ObjectOutputStreamクラスのコンストラクタは、FileOutputStreamクラスのオブジェクトを引数に取ります。 FileOutputStream fstream = new FileOutputStream("output/test.ser"); ObjectOutp

[Java] バイト入出力ストリーム

画像ファイルなどのバイナリーデータの入出力については、バイトストリームを扱うクラスが用意されています。ここでは、バイトストリームの入出力についてまとめていきます。 バイト入出力ストリーム FileInputStreamクラス ファイルからバイトストリームを読み込みます。 1. FileInputStreamクラスの主なメソッド byte read() ファイルから1バイト読み込むで返す。 byte[] readNBytes(int) ファイルから指定バイト数を読み込んで配列を返す。 byte[] readAllBytes() ファイルから全バイトを一度に取り出して配列で返す。大きなサイズのファイルの場合メモリを大量に使用するので、一般的にはreadNBytes(int)を使用する。 FileOutputStreamクラス バイトストリームをファイルへ出力します。 2. FileOutStreamクラスの主なメソッド void write(int) ファイルへ1バイト出力する。 void write(byte[]) ファイルへ複数バイトを出力する。 コードサンプル 以下の例はsample1.pngファイルを1024バイトずつ読み込んで、sample2.pngへコピーする例です。 FileInputStream fileInputStream = new FileInputStream("test/sample1.png"); FileOutputStream fileOutputStream = new FileOutputStream("test/sample2.png"); try ( fileInputStream; fileOutputStream; ) { byte[] data = null; while ((data = fileInputStream.readNBytes(1024)).length > 0) { fileOutputStream.write

[Java] 入出力ストリーム

Javaの入出力ストリームについてまとめていきます。 Fileクラス Fileクラスは、Java1.0の最初期からあるAPIで、ファイルやディレクトリのパスを表すクラスです。 あくまでパスを扱っているだけで、ファイルやディレクトリそのものを扱っているわけではない。 Fileオブジェクトの取得 コード例 File file = new File("output/data.txt"); この時オブジェクトはファイルパスを扱っているだけなので、output/data.txtの存在有無や書き込み権限にかかわらず、インスタンスを生成することが可能です。 Fileオブジェクトの主なメソッド boolean isFile() ファイルの場合にTrueを返す。 boolean isDirectory() ディレクトリの場合にTrueを返す。 long lastModified() ファイルの更新日付をUNIXタイムで返す。 String getAbsolutePath() ファイルの絶対パスを取得する。 String getCanonicalPath() ファイルの相対パスを取得する。 File[] listFiles() ディレクトリ配下のFileオブジェクトの配列を生成する。 File[] listFiles(FileFilter) FileFilter関数型インターフェースを引数に取り、条件に一致したFileオブジェクトの配列を生成する。 サンプル コード例 output配下の拡張子が「.txt」のファイル一覧を取得 ファイル名と最終更新日時を出力する File file = new File("output"); FileFilter filter = pathname -> pathname.getName().endsWith(".txt"); File[] files = file.listFiles(filter); Ar

[Java] ストリームAPI

ListやSetといったコレクションを扱う際に、すべての要素に処理を行う際、for文を使って順に要素を取り出していましたが、このような逐次処理を簡潔に記述できるようにしたStream<T>型がJava8で導入されました。 ここではStream API(以下ストリームAPI)の使い方についてまとめていきます。 ストリームAPIを使用する目的 ストリームAPIを使用する目的としては以下の通りです。 コレクションや配列の全要素に対して同じように変換する。 コレクションや配列の要素の合計や平均といった統計を取る。 コレクションや配列の要素に対して特定の条件でグルーピングやフィルターを行う。 コレクションや配列から特定の条件に合ったデータを検索する。 ストリームAPIは従来のfor文や拡張for文を置き換えるために用意されたAPIではない。 ストリームオブジェクトの取得 Iterableインターフェースから取得 java.lang.Iterableインターフェースのstream()メソッドで取得します。 コード例 List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Melon"); list.add("Orange"); Stream<String> stream = list.stream(); Streamインターフェースから取得 コード例 Streamインターフェースのofメソッドからも可変長引数で取得することが出来ます。 Stream<String> stream = Stream.of("Apple", "Melon", "Orange"); Arraysクラスから生成 コード例 String[] arrays = {"Apple", "Melon", "Orange"}; Stream<String> stream = Arrays.stream(arrays

[Java] 並列処理 (Thread, Runnable)

Javaで並列処理(マルチスレッド)の実装についてのまとめです。 Javaで並列処理を実装するにはいくつか方法がありますが、ここではThreadクラスを継承する方法と、Runnableインターフェイスを実装したクラスを用意して、Threadクラスのインスタンスを生成する方法についてまとめます。 基本的な並列処理の実装 Threadクラスを継承する 実装 import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Thread t = new Thread() { @Override public void run() { for (int i = 0; i < 5; i++) { System.out.println("sub:" + i); } } }; t.start(); for (int i = 0; i < 5; i++) { System.out.println("main:" + i); } } } 実行結果 実行結果は順不同で出力され、並列に処理されているのが分かります。 java ThreadTest.java main:0 sub:0 main:1 sub:1 main:2 sub:2 main:3 sub:3 main:4 sub:4 Runnableインターフェースを実装する 実装 import java.lang.Runnable; import java.lang.Thread; public class ThreadTest { public static void main(String[] args) { Runnable r = new Runnable() { @Override

[java] Optional<T>について

Optionalクラスは何らかの処理の結果を格納・保持するクラスです。 これまでは取得した値が空ではないか、またはnullではないかなど、取得結果について確認したうえで後続の処理を行っている場合があり、これが冗長・可読性低下の原因でした。 Java8から導入されたOptionalクラスを使うと、こういったケースが簡潔に記述できるようになりました。 ここではインスタンスの生成と、値を使用するにあたって利用する主なメソッドについてまとめておきます。 インスタンスの生成 OptionalのインスタンスはOptionalインターフェースに定義されたファクトリメソッドを使用して生成します。 1. Optionalインスタンスを生成するメソッド empty() 空のOptionalのインスタンスを生成する。 of(T value) nullを許容しない値を持ったOptionalのインスタンスを生成する。 nullを指定するとNullPointerExceptionが発生する。 ofNullable(T value) nullを許容し、nullを指定した場合は空のOptionalインスタンスを生成する。 emptyメソッド コード例 Optional<String> optional = Optional.empty(); System.out.println(optional); 実行結果 Optional.empty ofメソッド コード例 Optional<String> optional = Optional.of("test"); System.out.println(optional); 実行結果 Optional[test] ofメソッドにnullを指定するとNullPointerExceptionが発生する。 ofNullableメソッド コード Optional<String> optional = Optional.ofNullable(null); System.out.println(optional); 実行結果 Optional.e

[Java] Enum(列挙型)についてまとめ

Enum(列挙型)について 概要 Enumは同じカテゴリの定数をまとめて管理するためのもので、クラスのように扱うことができます。 なお、JVM上はクラスとして扱われるため、メソッドやコンストラクタを定義することもできます。 構文 アクセス修飾子 enum 列挙名 { 列挙子, 列挙子, 列挙子... } Enumの基本的な使い方 定義例 public enum Status { DISABLED, APPROVED, ENABLED } Enumを使った分岐処理 Status status = Status.APPROVED; switch (status) { case DISABLED: System.out.println("無効"); break; case APPROVED: System.out.println("承認"); break; case ENABLED: System.out.println("有効"); break; } 配列で列挙子をすべて取得する Status[] statuses = Status.values(); 列挙子を文字列で取得する Status status = Status.valueOf("APPROVED"); 存在しない列挙子を指定すると IllegalArgumentException が発生します。 列挙子に値を持たせる 構文 アクセス修飾子 enum 列挙名 { 列挙子(値), 列挙子(値), 列挙子(値)... private 型 フィールド; private コンストラクタ {} } 定義例 enum Status { DISABLED("無効"), APPROVED("承認"), ENABLED("有効"); private String value; Status(String

[Java] ラムダ式と関数型インターフェース

ラムダ式とは前述の匿名クラスの記述をより簡潔に書くことが出来る記述法で、Java8から導入されました。 また、それに合わせてラムダ式で記述できるいくつかの関数型インターフェースが用意されているので、主要な部分についてまとめていきます。 ラムダ式 構文 インターフェース 変数 = (引数) -> {処理}; 定義例 例えば匿名クラスの説明で利用した次のサンプルコードがあります。 https://www.s-watanabe.work/2022/10/java.html#3 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = new Itest() { @Override public void doTest() { System.out.println("Itest.doTest"); } }; itest.doTest(); } } このコードはラムダ式によって次のように置き換えることが出来ます。 interface Itest { public void doTest(); } public class AnonymousTest { public static void main(String[] args) { Itest itest = () -> { System.out.print("Itest.doTest"); }; itest.doTest(); } } 処理内容が1行の場合、中カッコ{}を省略することができます。 Itest itest = () -> System.out.print("Itest.doTest"); ラムダ式は関数型インター

[Java] ネストしたクラスについてのまとめ

クラス内に定義するクラスを総称してネストしたクラスと呼び、外側のクラスをエンクロージングクラスと呼びます。 ネストしたクラスには次の種類があります。 インナークラス staticインナークラス 匿名クラス ローカルクラス インナークラス インスタンス化 new エンクロージングクラス().new インナークラス() インナークラスのインスタンス化するには、エンクロージングクラスのインスタンスを先に生成する必要がある。 定義例 public class InnerTest { private class Test { private void method() { System.out.println("Test.method"); } } public static void main(String[] args) { new InnerTest().new Test().method(); } } インナークラス、およびそのメソッドのアクセス修飾子はpublic、protected、private、無しの4つとも指定できる。 privateを指定してもエンクロージングクラスからは呼び出すことができる。 実行結果 java InnerTest.java Test.method staticインナークラス インスタンス化 new インナークラス() staticインナークラスのインスタンス化には、エンクロージングクラスのインスタンスは必要ない。 staticインナークラスが外部のクラスファイルの場合は、「new エンクロージングクラス.インナークラス()」のように生成する。 定義例 public class InnerTest { private static class Test { private void method() { System.out.println("Test.method"); } } public static

Alexaをしゃべらせる (Win10)

概要 Amazon Echo Dotを購入したので、Alexaに任意の文章をしゃべらせるまでの手順をまとめておきます。 事前準備 Amazon Echo Dot Amazon Echo Dot (エコードット)第3世代 - スマートスピーカー with Alexa、チャコール WSL https://learn.microsoft.com/ja-jp/windows/wsl/ WSLはWindows上で実行できるLinux仮想環境です。 インストール方法はリンク先にあります。OSはUbuntuを選択しました。 ※今回実行しようとしているスクリプトは、Windowsやgitbash上では動作しませんでした。 設定 jqコマンドインストール jqコマンドは、json形式データの整形や加工を行うコマンドです。WSLを開き、以下コマンドでインストールします。 sudo apt install jq 以下のように確認コマンドを実行し、整形されたデータが出力されればOKです。 echo "{\"a\":123}" | jq { "a": 123 } スクリプトダウンロード githubで公開されている以下のスクリプトを任意の場所へダウンロードします。 https://github.com/thorsten-gehrig/alexa-remote-control.git スクリプト設定 ダウンロードした alexa_remote_control.sh をテキストエディタで開き以下の変数を設定します。 設定項目 SET_EMAIL AmazonアカウントのEメールアドレス SET_PASSWORD Amazonアカウントのパスワード SET_MFA_SECRET MFAシークレットキー ※MFAシークレットは以下の手順で確認できます。 Amazonのアカウントサービスから、ログインとセキュリティを開く 2段階認証の「管理」を開く 新しいアプリの

[資格]SC-900 Microsoft セキュリティ、コンプライアンス、IDの基礎

イメージ
SC-900について 概要 セキュリティ、コンプライアンス、ID の概念、アクセス管理ソリューションの機能、Microsoft セキュリティ ソリューションの機能、Microsoft コンプライアンス ソリューションの機能についての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/certifications/exams/sc-900 試験 試験コード SC-900 合格ライン 700点 / 900点 問題数 45-48問程度 試験時間 45分程度 ※問題数と試験時間について公式に記載はありませんが、おそらく他の基礎コースと同程度と思われます。 事前対策 事前対策としてはAI-900と同様に、オンライントレーニングで受講した内容と、公式ドキュメント(WEB)を使って対策していきます。 また、以下にサンプル問題が公開されているので参考にしました。 https://docs.microsoft.com/ja-jp/certifications/resources/sc-900-sample-questions ※日本語の参考書・テキスト等は現時点(2022/08)でおそらくありません。 重要ポイント ゼロトラスト - 3つの原則 明示的に検証する 最小限の特権アクセス セキュリティ侵害を想定する IDの概念 新しいセキュリティ境界 ユーザー、アプリケーション、デバイスなどに関連付ける ID管理の基本概念 管理 ユーザー、デバイス、およびサービスのIDを作成し管理する。 認証 特定のIDについて、身元の保証に十分な証拠があるかどうかを検証する。 承認 (認可) 認証されたユーザーまたはサービスが、アクセス先のアプリケーションまたはサービス内で持つアクセスのレベルを決定する。 監査 認証されたユーザーまたはサービスが、何を、いつ、どこで、どのように行うかを追跡する。 Azure Active Directory (Azure AD) クラウドベースのID、ア

[資格]HTML5 レベル2

イメージ
HTML5 レベル1に続きレベル2を受けてきました。 レベル2はレベル1とは出題範囲が異なり、JavaScriptの文法、コーディングスキルについての問題が中心です。 なお、今回万が一不合格でも無料でもう一回受験できる「リテイクフリーサマーキャンペーン2022」を利用して受験しました。 https://html5exam.jp/campaign/retake202207/ この手のキャンペーンは今後もあるかどうか分かりませんが、無料のセミナー等は定期的に開催されています。 気になる方は以下ページをチェックしておくと良いと思います。 https://html5exam.jp/news/event/ HTML5 レベル2について 概要 JavaScriptの文法、およびコーディングスキル、API、そのほか通信やセキュリティ等、レベル1と比べるとより高いレベルのスキルと知識を求められる試験です。 試験 試験名 HTML5プロフェッショナル認定資格 レベル2 合格ライン 70点 / 100点 問題数 40問 試験時間 90分 前提条件 有効なHTML5 レベル1を保有していること 試験時間にはアンケートの時間が含まれるので実際は80分です。 問題数はおそらく40~45の間で変動します。 選択形式のみで記述する問題は出ませんでした。 使用した参考書について こちらの参考書はバージョンは2.0対応です。現時点で2.5に対応した参考書はおそらくありません。しかし2.5の範囲を確認したところ、2.0と大差はありませんのでこちらの参考書で十分だと思います。 以下に2.5の変更点が公開されていますので、心配であれば確認しておくとよいです。 https://html5exam.jp/outline/objectives_lv2.html 書籍については、レベル1と同様にLPI-Japanの認定教材です。 重要なポイントについての問題と解説、模擬試験1回分が収録されています。 また、購入特典としてダウンロード版の模擬試験がついてきます。 試験内容 覚えている範囲で箇

[資格] AI-900 Azure AI Fandamentals

イメージ
Azure AI Fandamentals試験について、合格するまでの記録です。 こちらも基礎コースなので、オンライントレーニングを受講し、無料で受験してくるので合格するまで挑戦したいと思います。とはいえ一発で合格したいのでオンライントレーニングの内容から要点等をここにまとめておきます。 Azure AI Fandamentalsについて 概要 機械学習・AIワークロードの知識、およびそれらの実装についての知識を問われる試験です。 https://docs.microsoft.com/ja-jp/learn/certifications/exams/ai-900 試験 試験コード AI-900 合格ライン 700点 / 900点 問題数 45-48問程度 試験時間 45分程度 ※問題数と試験時間について公式に記載はありませんが、おそらく他の基礎コースと同程度と思われます。 事前対策 事前対策としてはオンライントレーニングで受講した内容と、公式ドキュメント(WEB)を使って対策していきます。 ※データの基礎同様、日本語の参考書・テキスト等は現時点(2022/06)でおそらくありません。 Microsoft AIの基本原則について 公平性 すべての人を公平に扱う 信頼性と安全性 確実かつ安全に、一貫して動作すること プライバシーとセキュリティ プライバシーやビジネスの情報について保護する 包括性 AI技術が幅広い人間のニーズや経験を組み込み、それらに対処する 透明性 理解しやすいシステムである必要がある アカウンタビリティ システムがどのように動作するかについて説明責任がある Azure Machin Learning AIシステムの基盤となるもので、予測を行い、データから結論を導き出す方法をコンピュータモデルに「教える」ことを指す。 自動機械学習 データから効果的な機械学習モデルを作成する Azure Machine Learning デザイナー 機械学習ソリューションのコードなしで開発を可能にするGUI パイプライン モデルのトレーニング

[資格]Javaプログラミン能力認定試験2, 3級

6/19に行われた、Javaプログラミング能力認定試験の2級と3級について受験してきました。 と言っても、オンラインによるリモート開催のため、自宅にいながらの受験です。オンラインによる受験自体が初めての体験だったので、このあたりについても少し記載しておきます。 Javaプログラミン能力認定試験について 概要 サーティファイ社が運営する認定プログラムで、Javaプログラミングについてのスキル、知識を認定する資格で3級から1級まであります。 3級についてはJavaについての基礎知識、オブジェクト指向に関する基本的な知識などに加え、簡単なプログラムの保守能力のようなものが求められます。 2級についてはJavaについての基礎知識に加えて、インターフェース、抽象クラス、例外処理、マルチスレッドなどに関する知識、さらに小規模なアプリケーションの理解、保守能力のようなものが求められます。 1級についてはまだ受験してませんが、Javaについてのより上級レベルの知識が求められ、さらに実務に近い形の実技試験となります。いずれはこちらについても受験したいと思っているので、その際にまた詳しくまとめたいと思います。 試験 1. Javaプログラミング能力認定試験 3級 試験名 Javaプログラミング能力認定試験 3級 合格ライン 6割 問題数 テーマ別で6問、全37問 試験時間 60分 出題形式 多岐選択式 受験料 ¥5,100 2. Javaプログラミング能力認定試験 2級 試験名 Javaプログラミング能力認定試験 2級 合格ライン 6割 問題数 テーマ別で7問、全39問 試験時間 90分 出題形式 多岐選択式 受験料 ¥6,200 ※合格ラインは共通で、6割程度と言われています。詳細は公開されていません。 また、2級と3級に関して現在オンラインによるリモート試験

Microsoft Virtual Training Day参加特典を利用してFundamentals試験を受ける

イメージ
Microsoft Virtual Training Dayとは、Microsoft製品についての技術解説セミナーです。 オンラインにより結構頻繁に開催されています。 興味のある方は、以下ページをブックマークしておくとよいです。 https://www.microsoft.com/ja-jp/events/top/training-days また、Fundamentalsと付くいわゆる基礎コースには、対象の試験が1回分無料で受験することができるという特典が付いてきます。今回この特典を利用して無料で試験を受ける際の流れをまとめます。 ※補足ですが、オンライントレーニングを受講すれば何度でも無料で受験できます。失敗してもめげずに何度でも挑戦しましょう。 Microsoft Virtual Training Dayについて 私の場合、Azureの資格でしか利用したことはないですが、その他にもいろいろと用意されているようです。 Microsoft Azure Power Platform Dynamics 365 Microsoft 365 Microsoft Security このオンラインセミナーには定員があり、上限に達すると締め切りになるのでご注意ください。 無料受験の流れ Microsoft Virtual Training Day 終了後にメールが届く 対象試験のリンクがあるのでクリックします。 一応このメールに手順が記載されています。 イベント終了から 5 営業日後に、試験の詳細をクリックして確認します。 [試験のスケジュール] ボタンをクリックして、オンライン登録プロセスを開始します。 サインインするか、認定資格プロファイルを作成します。 試験割引ページに移動し、イベントに登録したメール アドレスを入力します。割引を受けるには、アカウントをリンクする必要があります。 ※Virtual Trainingから 90日以内 に試験を予約する必要があります。 ※なお、このメールでトレーニングに使用された資料がダウンロードできます。複製、配布は許可されていませんのでご注意ください。 試験についての詳細ページ この