はじめに
2/6に、LPI-Japanが主催するHTML5プロフェッショナル認定試験 レベル2に合格しました。

以前、フロントエンド側の知識を体系的に習得するためにHTML5プロフェッショナル認定試験 レベル1を取得した際に、その勢いのままレベル2を取ってしまおうと思い、続けて勉強を行い取得しました。
HTML5プロフェッショナル認定試験とは?
LPI-Japanという組織が主催・認定している民間資格で、主にHTML・CSS・JavaScriptと、それに付随するWeb制作の知識を測るものです。
レベル1、レベル2と分かれており、今回受験したレベル2ではJavaScriptと、それに付随するWeb開発の知識が問われます。
詳細はこちら↓
試験範囲
主に以下9つの範囲から全般的に出題されます。
1.JavaScript基本文法
Ver2.5ではES6以降の文法について問われます。
具体的にはアロー関数や非同期処理など。
ある程度JavaScriptを書いた経験がある人なら問題ないですが、経験がない場合はJSの文法を一通り学んでから臨んだほうがよいです。
2.WebブラウザにおけるJavaScript API
JSで扱うイベント、DOMの操作、WindowオブジェクトやHistoryオブジェクトに付いて問われます。
3.グラフィックス・アニメーション
画面上に図形を描画するCanvasと、描画した図形や画像などを動かすアニメーション技術について問われます。
4.マルチメディア
音声・動画ファイルなどのメディア要素を操作するための技術について問われます。
範囲も狭く勉強しやすかった。
5.ストレージ
Web StorageとIndexed Database APIについて問われることが多いです。
一応バイナリデータについてもここが対象。でも試験で出題されることはなかった。
6.通信
レベル1でもさわりだけ勉強したWebSocketやXML Http Request、**SSE(Server-Sent Events)**について深堀りされます。
7.デバイスアクセス
Geolocation APIやDeviceOrientationイベントなど、デバイスとJSのあれやこれやに関する内容について問われます。
ここも覚えることが少なく勉強しやすい範囲。
8.パフォーマンスとオフライン
こちらもレベル1で浅く学習したWeb Workersについてと、ナビゲーションやパフォーマンスに関する内容について問われます。
9.セキュリティモデル
異なるオリジンと通信を行う際に、リクエストとレスポンスでどんなヘッダが必要かとか、Mixed Contentって何ですかとかそういうことについて問われます。
ここも範囲は狭めです。
勉強方法
冒頭で説明したように、「HTML5」という名を冠しているものの、問われる内容についてはほぼJavaScriptです。JavaScriptプロフェッショナル認定試験とかに名前変えたほうが良いと思っています。
でもまあ、JavaScriptを理解するには当然HTML/CSSの知識は不可欠なので、この名前でもほなええか…。
ちなみに、本試験を受けて認定されるにはレベル1に合格し、かつ有意なレベル1認定を保持していることが条件となります。
なのでいきなりレベル2を受けようとしている人や、レベル1は持ってたけど有意期間過ぎたという方は諦めて初級試験から受けましょう。さほど難しくないですし。
また、先ほども書いたように本試験はJavaScriptの試験です。
なのでJavaScriptの基本文法の知識なしに臨むのは正直勉強効率が悪いです。
実際私は業務でJavaScriptを書いたことがほとんどなかったので、半月くらいとほほのJavaScript入門で基本文法を勉強してから試験対策に臨みました。
私のようにバックエンドでオブジェクト指向言語を触っていた方であればさほど理解に時間はかからないと思います。
使用教材
①LPI-Japan 公式サイト 例題解説
レベル1受験時には使いませんでしたが、今回はどんな問題が出るかを把握するために、最初にLPI-Japan公式の例題を解いてみることにしました。
公式の例題は結構難易度が高めです。
逆に言えば、本試験の問題は例題より難易度が若干低いですし、例題がちゃんと理解できて解けていれば、合格はさほど難しくないと思います。
②ポラリステーション
レベル1でいうところのPing-t的なサービス。
教材が比較的少ない試験なので、Webサービスで学習できるのはありがたいですね。
有料で2か月プランを3900円くらいで購入して解いていましたが、問題数自体はさほど多くありません。1か月プランでもよかったかもしれん。
難易度は本試験と同等レベルでした。模擬試験なども付随しており、まず基礎固めの教材としておすすめです。
③HTML教科書 HTML5プロフェッショナル認定試験 レベル2 スピードマスター問題集 Ver2.0対応
最後の総仕上げとしてやりました。書籍タイプの教材です。
レベル1のときも書籍を活用しましたが、注意事項としてレベル2のほうは、現行の試験バージョンであるVer.2.5に対応したものが出ていません。
本書籍は一つ前のバージョンであるVer2.0までの対応となっています。はよ2.5対応のやつ出してくれ翔泳社。
ちなみに、Ver2.0とVer2.5の違いとしては、2.0の方にはES6以降のJavaScript文法に関する出題がありません。なのでES6以降の文法に関してはポラリステーションで学習し、それ以外の範囲はポラリス + 書籍で学習する、でも十分の合格は狙えます。たぶん。
勉強期間
1ヶ月半(JS文法学習を半月 + 試験対策に1ヶ月)
勉強方法
ある程度文法の学習が終わったら、レベル1と同様、問題演習→解説を読んで知識補填→問題演習…の繰り返しでした。
今回はObsidianに学習内容をまとめていました。md形式でまとめられるので、各章ごとに要点をまとめたらNotebook LMにブチ込んで問題を作ってもらう、などもやってました。便利。

試験当日
あらかじめ予約しておいたテストセンターで受験しました。
試験時間は90分でしたが、問題数は40~45問とレベル1よりも少ないです。
ただしその分1問1問の難易度が上がっています。ある程度うろ覚えでも突破しようと思えばできるレベル1と違い、レベル2はある程度の深さまで正確に理解していないと突破は厳しいように感じました。
難易度的にはポラリステーションや書籍と同等くらいに感じました。
受験後すぐに結果が出る試験です。
70点以上で合格のようですが、私は70点でした。クッソギリギリで草。
おわりに
JavaScriptの体系的な知識を身に着けることを目的として受験した本試験ですが、正直これに合格しただけではJavaScriptを書けるようにはなりません。
コードを書く記述式の試験ではないですし、JavaScriptを実践的に学びたいならとにかく手で書くことのほうが大事なように思いますが、それでもこの試験を受けるメリットとしてあるのは、やはりJavaScriptを「体系的」に学べるところが大きいと思います。
たとえば、現在の開発では変数の宣言にはconstまたはletを使うことが定説ですが、試験ではあえてvarで問われることも多いです。 varはグローバル参照になり不必要な代入や更新によりバグを引き起こす可能性があるので現場では使わないことが是とされていることが多いですが、むしろ「なぜvarを使ってはいけないのか?」などは体系的に学ばない限りはあまり考えることがありません。
こういう全体的な基礎知識をあえて学ぶことで、のちにTypeScriptやReactなどの学習にもつながっていきやすくなるのではないかと個人的には考えています。
この記事が、本資格の取得を目指す方々へご参考になれば幸いです。