📚

Unity認定プロフェッショナル プログラマー 合格体験記#2 -勉強方法-

2022/07/09に公開

はじめに

Unity認定プロフェッショナルのプログラマーに合格したので、試験や勉強方法を共有します。
この記事では、勉強方法や試験中のアドバイスについてまとめます。受験を決めて、これから勉強される人に参考にしてもらえると幸いです。
試験については、前回記事を参照ください。

受けた人(=私)について

スペック

  • 自社ソフトウェア製品のエンジニア7年目。サーバサイド寄りでC++とJavaがメイン。保守開発中心で、ソース読んだりテスト考える時間が圧倒的に多い。
  • UnityとC#は、趣味のAR/VRアプリ開発で1年くらい使用。ゲームは作ってない。
  • 英語はTOEICのリーディング300点代。

受験動機

  • 腕試し。VRアカデミーに通ってUnityについて学んだので、その集大成として。
  • VRアカデミーで、講師補助の副業をさせてもらうことになり、Unityインストラクターとして求められる知識を身に付けたかっため。

試験結果

  • 勉強時間: 約2ヶ月 (2022/2月~3月)
    • 2月は平均 0.5H/日
    • 3月は平均 1.0H/日 (ラスト1週は2~3H/日くらい)
  • 費用: 750ドル(≒9.4万)
    • コースウェア+模擬テスト+試験バウチャーx2回分のバンドル版。割引効いてるけど高い。(´・ω・`)
  • 結果: 550点/700点
    • 500点以上で合格なので、ギリギリ💦

使った教材

前回記事にも一部書いてます。ここでは、自分が使った教材と、どう使ったかの観点で補足します。

良く使ったもの

  • Unity公式 模擬テスト(有料)
    • 一番使った。問題を解いて自身の理解度を把握したり、解説&参考サイトを読み込んで知識をつけた。
    • 内容や難易度が本試験と似てるので、知識習得&試験慣れできる。Unityゲーム開発の実務経験に関係なくやった方が良いと思う。
    • 問題、解説文すべて英語。ゲームの様々なシーンが題材になるので、幅広い分野の単語が出て、読解に時間がかかる。文もコピペできないので、手打ちでGoogle翻訳にかけて理解するしかない。
      ※後から気づいたが、ChromeのWebページ翻訳を使うと日本語にできたのかもしれない...
  • Unity公式 コースウェア(有料)
    • 章別にある小テスト(約100問)のみ実施。動画演習はボリュームが多すぎて断念。
    • 模擬テストと同様の使い方だが、若干難易度が低く感じた。だが、小テストは分野別にまとまってるので、弱点分野の把握はしやすかった。
    • 動画や問題文はすべて英語。動画は日本語字幕あるし、問題も文量が少ないので、模擬テストよりはましかも。
  • Unity公式マニュアル&リファレンス(無料)
    • 模擬テストやコースウェアから参照された記事を中心に読み込んだ。ただしスクリプト関連は読んでもわからない時があり、他のブログやGitHubでサンプルを漁って勉強した。
    • 本当はもっと読み込むべきだったが、英語に苦戦し時間がとれなかった。。。

時々使ったもの

受験の流れ

前回記事の詳細版。()内は自分が実施した時期です。

  1. 雰囲気を掴む (試験2か月前)
    Unity Learn Materialのティーチャートレーニングや、Unityの試験詳細のサンプル問題を解いて雰囲気を掴んだ。

  2. 有料教材&試験バウチャーを購入 (試験2か月前)
    Unityストアでコースウェア+模擬テスト+試験バウチャー2回分のバンドル版を購入。登録メール宛に教材用の登録キーx2と試験バウチャーx1が通知される。

  3. 有料教材のアクティベート (試験2か月前)
    登録キーで各教材をアクティベートして、教材を使えるようにする。コースウェアと模擬テストで別のサービスを使うので面倒くさい。

    • 模擬テストのアクティベート
      measureupにアカウント登録&ログイン。模擬テストの登録キーを登録してアクティベート。登録から2ヶ月間使える
    • コースウェアのアクティベート
      GMetrixにアカウント登録&ログイン。コースウェアの登録キーを登録してアクティベート。登録から1年間使える
  4. 勉強する (試験2ヶ月前~前日)
    どう勉強したかは次節にまとめて記載。基本は模擬テストとコースウェアの小テストを解き、間違えた部分や弱点分野について、問題解説や公式マニュアルで調べながら学ぶ感じ。

  5. 試験を予約する (試験2週間前)
    心の準備ができたら、PeasonVueで試験バウチャーを使い、試験を予約する。予約時は試験の日時と場所を指定する。場所は各地の試験センターや自宅を指定可能。筆者は最寄りの試験センターにした。

  6. 受験&結果確認 (試験当日)
    本人確認(顔写真付き)を持って試験センターへ。写真撮影や本人確認があるので、15分前くらいに到着する必要がある。
    試験は選択式で、PC上でポチポチ正解を選んで進める。設問毎にチェック欄があり、チェックした問題は全問回答後に再度見直すことができる。試験中の心構えは次節に記載。
    完了の操作をすると、速攻PC上に結果が表示される。退出後、結果を紙でもらって終了。

  7. Unity Certified Platformへ登録 (試験後)
    合格後2日後くらいに、メールでUnity Certified Platformサイトへの招待URLが来るので登録。本サイトでUnity資格の確認や証明書のダウンロードができる。

アドバイス

勉強方法について

自分のやったこと、やればよかったことを踏まえたアドバイスです。試験問題については規約のため、余り踏み込めません。

  • 教材テスト(=模擬テストとコースウェアの小テスト)は、問題と解説もしっかりと理解するまでやる。 選択肢も、なぜ正解なのか、間違いなのかまで理解する。試験では教材テストがそのまま出ることはないが、テスト内容をちゃんと理解していれば正解を選べる or 選択肢を絞り込める。
  • Unity知識とプログラム読解力はかなり重要。 Unityのプログラムをコードレビューしてバグを見つけるような感じの問題が多いので。
    • Unity知識は、公式ドキュメントを全部読んで習得すれば完璧だが、時間がかかる。そのため、教材テストで出たAPIや手法を基点に調べていくのが良い。また公式ドキュメントの内容が難しすぎたら、一度技術ブログ等の他の解説を読んでから再挑戦する。
    • プログラム読解力をつけるためには、他人の書いたコードを読んで理解する訓練がかなり有効だと思う。教材テストで出る文量のプログラムを、書籍や技術ブログ、GitHub等で探して読んでみると良いかも。
  • 教材の英語は地道に理解していく。 読んで理解できたらベストだが、わからん文章は翻訳かける。個人的に以下が大事だと思う。
    • 何度も読んで理解する。一回で完璧に理解しようとしない。
    • 疲れてないときにやる。体調の良し悪しで理解するスピードがかなり変わるので。
  • ソフトウェア開発の一般的な考え方や、線形代数の知識も若干問われる。余裕があれば模擬テストの問題を基点に調べておくと良い。

試験中

アドバイスというか、自分が感じたこと、意識したことについてです。

  • 「アソシエイト試験みたいに、教材テストと同じ問題がいくつかでるやろ」、と高を括って受けたが、全然出なくて焦った。類似問題は出た。教材で得た知識で選択肢を絞り込み、消去法で解答できた問題もあった。
  • 問題文は日本語で、140分60問だったので、時間的にも余裕だと思っていたが、結局30秒しか残らなかった。様々なゲームを題材にした問題が出るので、ゲーム開発経験が浅い自分は内容把握に時間がかかってしまった。教材テストで類似問題をやってなかったら、全問回答できなかったと思う。
  • Unityの公式ドキュメントの読み込み量が圧倒的に足りず、API仕様を知らないと解けない問題はかなり苦戦。パラメータ名等で推測はするが、余り時間をかけず解答。プログラム読解系の問題に注力した。
  • プログラム読解やソフト開発に関する問題は、実務経験を活かして解くことができた。特にプログラム読解系の問題は、落ち着いて読むことを意識すると解ける問題が多かった。

受けてみて

良かったこと

  • 自信がついた。 思ったより本番試験が難しかったにも関わらず、ちゃんと合格点を取れたので。必ず1回以上は落ちると思っていたが、1発合格できたのもうれしい。
  • 知見が広がった。 「UnityってこんなAPIあるの?サービスあるの?」の連続で、新しく知ったことが多く、新鮮だった。
  • 英語のリーディング力がついた。 教材を通して一番鍛えられたかもしれない...

反省点

  • Unity知識がまだ不足しており、ギリギリ合格だったので、全くプロフェッショナルを名乗れる気がしない... まだやってないコースウェアの動画教材で鍛えなおす予定。
  • AR/VRエンジニアが取得を目指す場合、使わない機能も勉強する必要あり。知見は広がる半面、過学習な気もする。優先分野を見定めて勉強しても良かったかもしれない。

最後に

実務を想定した問題が多く、難易度は高いと感じます。教材やる前に英語も必要です。ソフト開発経験が無かったり英語に自信がない場合は、勉強期間を長めに取ると良いかもです。
思ったよりたくさん書いてしまいましたが、参考になれば幸いです。(*^^)

Discussion