SSTエンジニアブログ

SSTのエンジニアによるWebセキュリティの技術を中心としたエンジニアブログです。

Oracle Java SE 8 Silver/Gold 受験体験記(坂本)

こんにちは、SSTでWeb脆弱性診断用のツール(スキャンツール)開発をしている坂本(Twitter, GitHub)です。

7月から、社内エンジニア向けのJavaスキルアップサポートの一貫で、Oracle Java SE 8 Silver/Gold 資格に挑戦してました。 資格取得を通じてJavaの知識を体系的に身につけることを目標とし、坂本自身もまだこれらの資格は持っていなかったので、一緒に勉強することになりました。 その結果、坂本の方は7月にSilver合格、そして 11/1 にGoldも受験して無事合格しました。 今後の参考までに、簡単ながら受験体験記を共有します。

ちなみに、なんで Java 11 じゃないの?というところですが、単純に受験を志した時点で Java 11 Gold の教科書や問題集が見当たらなかったからです。「とりあえず教科書/問題集揃ってる Java 8 の方やろっか」となった次第です・・・。

資格の概要

Oracle認定のJava技術者の資格になります。Silverが初級者向け、Goldが中/上級者向けの資格です。 詳細は Oracle University の資格情報ページを参照してください。(以下は2020-11-05時点のリンク)

受験方法

坂本の場合は、ピアソンVUEから申し込んでクレジットカードで受験料を支払いました。 Silver のときは、最寄りの試験会場でCBT試験(パソコン上で問題が配信され、回答する)を受験しました。 Gold のときは、配信される試験会場が絞られているらしく、最寄りの試験会場では実施日時が限られてました。うまく希望日時と折り合いがつかなかったため、遠出して秋葉原のテストセンターで受験しました。

受験の申込みや、実際の受験手続きなどはピアソンVUEやブログ記事などがたくさんありますので、そちらを参照してください。

コロナの影響でCBTも自宅で受験できるようになりましたが、部屋の中に余計なものを置いてはいけなかったり、部屋の様子を撮影する必要があったりするようです。 自分の場合は自宅の都合で難しかったので、テストセンターでの受験にしました。 (テストセンターでの受験中は皆さん無言で、途中飲食をすることもありません。係員との会話もマスクを付けての必要最低限度となりますので、手洗いさえ忘れなければそれなりに感染対策はできていると判断しました。)

参考書

以下の教科書と問題集で勉強しました。

各書籍で、章ごとの練習問題・模擬試験を何回かやって弱点を把握しつつ、覚えづらい暗記分野は語呂合わせなど使って覚える・・・など、受験対策を真面目に取り組みました。

感想

普段はIDEの自動補完やリアルタイムのコンパイルエラー/警告検出に甘えていますが、Silver/Goldで細かいところまでJavaの文法を学べ、「え、こんな仕様だったんだ」という発見もあり、面白かったです。

Java SE 8 Gold については、Stream API がかなりフォーカスされている印象を受けました。 実際の試験でも Stream API 単体のみならず、Stream と NIO/2 やマルチスレッドを組み合わせた場合の挙動を問う問題などもありました。 昔からJavaを使っているとどうしても旧来のforループ/拡張for構文などに戻ってしまいがちなので、今回の受験を通じて半ば強制的に Stream の世界に染め上げられたのは良い経験だったと思います。

一方で、「あれ?これは範囲外なの?」と思ったのもありました。

  • Java のGC機構
  • ClassLoader の仕組み
  • logging (java.util.logging)
    • 実際は slf4j とか log4j になるとは思いますが、とはいえJRE組み込みのロギング機構の紹介くらいはあっても良いのでは。
  • 正規表現 (java.util.regex)
  • リフレクション
  • アノテーションの作り方
  • HTTPクライアント (HttpURLConnection)
    • 実際は Apache HttpComponents や OkHttp など使うとしても、JRE自体にもあるにはあるので、紹介くらいはあっても良いのでは。
  • JDBCの autoCommit 設定とトランザクション
    • 現場ではORマッパー使うケースが多くなってるとはいえ、JDBCを実際に使うのであればこの辺りの知識は必須ではないかと。

StreamやファイルAPIなど、特定の機能についてjavadocレベルの細かい知識を問うている割には、実際にアプリ開発で必要な広く浅い全体地図の紹介が無かったのが片手落ちに感じました。

個人的には、javadoc見れば分かるような細かい知識を問うよりは、「こういうアプリを作りたい/機能を設計したいんだけど、Javaのどの機能/APIをつかえばいいの?」という全体地図を示してくれるような試験の方が、これからのJavaエンジニアにとってはモチベーション上がるし受験して楽しい内容になるのではないかな、と感じました。

最後が少し批判的な内容になってしまいましたが、全体としては Java スキルのステップアップに確実につながる試験でした。 Javaエンジニアを目指す方は一度チャレンジしてみるのをオススメします。

記事を書いたメンバー
sakamoto

坂本(id:msakamoto-sf

SSTでWeb脆弱性診断用のツール(スキャンツール)開発をしています。