Java8経験者が2日でJava Gold SE8に試験に合格した話。

春ですね。

期初に立てた資格試験の目標を帳尻合わせるために達成するために、
受験や勉強を始める人が多いのではないでしょうか。


私もそんな一人で、Oracle Certified Java Programmer, Gold SE 8 認定資格を取得することを目標にしていました。
Java 6時代のOCJ-Pは持っていたのですが、いかんせん古く、ラムダ式やStreamAPIについては未対応です。
Javaは日常的に利用しているし、どれくらい書けますよっていう指標があった方が良さそう。ということで受験しました。

だいぶ雑な感じで、頭わるい感じで、Java Goldを受験した時の話とおまけ程度に、Silverを受験した時の話を記録しておこうと思います。


参考になるかどうかはわかりませんが・・・・。ほぼ、感想文です。


先にざっくりまとめておくと、今回以下のような形で受験しました。

  • Java Silver
    • 学習1日目:黒本の巻末模擬試験を実施・間違えた章だけ振り返り
    • 学習2日目:受験
  • Gold
    • 学習1日目:紫本を知っているところは読み飛ばしつつ、最後まで読む。理解する。
    • 学習2日目:黒本の巻末模擬試験を実施・間違えた章だけ振り返り。そのまま受験。

要はJavaの経験はあるので、先に知らないところ洗い出して知らないところだけ勉強しようスタイルです。
なので、学習時間は人によって異なります。事前に模擬試験をやって、どれくらい時間がかかりそうか見ておくと良さそうです。
Goldはだいぶ時間がなかったの(と取り組み始めたのが深夜だったので)徹夜になりました。

受験した時点でのバックグラウンドはこんな感じです

  • Java歴 4-5年くらい
  • Java8は日常的に使用。業務Webサービス開発がメイン。
  • ラムダ式やStream APIもまぁまぁ使用する。
  • 本腰入れてJava 8について勉強したことはなし。
  • Java6 時代のOCJ-Pは持ってた

OCJ-Pを持っているとアップグレード?プランもあるようでしたが、
問題の傾向とか掴みづらそうなので、1から受けることにしました。
受かれば受験料は会社が出してくれるし


何はともあれ、Java試験に出願する前に、確認しておくことがあります。


それは再受験無料キャンペーンが適用できる期間かどうかです。


再受験無料キャンペーンはマリオで言う1UPきのこです。その名の通り1回落ちても、2回目の再受験は無料で受験できます。
1機だいたい3万円するので、申し込まない手はありません。(受験後、14日間再受験できないルールはありますが。)
申し込み後に適用はできません。申し込み時にキャンペーンコードを入力することで適用されます。
私は入力し忘れました。
http://www.oracle.com/jp/education/campaign-1898205-ja.html

受験申し込み

第一の関門です。わかりづらい。ので、簡潔にまとめます。

  • 以下のページにアクセス
  • アカウントを作成して、ログイン。
  • 「試験を表示」を選択。
  • 試験の検索に「Java」と入力
    • Java Silverなら 1Z0-808-JPN (Java SE 8 Programmer I)を選択。
    • Java Goldなら 1Z0-809-JPN (Java SE 8 Programmer II)を選択。
      • JPNがつかない試験は英語(またはスペイン語)での試験なので注意。

あとは、ガイドに沿って申し込むだけです。
受験センターによって試験実施している間隔がことなるので注意しましょう。
あと、申し込みが直前になると締め切られてたり埋まってたりするので、余裕を持って申し込みましょう
受験のキャンセル・変更は受験日の24時間前までです。

Java Silverの取得とやったこと

Java Goldを取得するためにはJava Silverを取得しなければなりません。Silverをとります。
OCJ-Pからのアップグレードプログラムが適用できるとここら辺が免除になるんですかね。


試験対策はいわゆる、黒本(問題集)末尾の模擬試験2回を先に解きました。

徹底攻略Java SE 8 Silver問題集[1Z0-808]対応 徹底攻略シリーズ

徹底攻略Java SE 8 Silver問題集[1Z0-808]対応 徹底攻略シリーズ

その後、間違えたところだけ、関連する章をチェック。振り返り。テスト前に見直し。
多分黒本、全部解く必要はないと思います。時間があれば、知らないことは無いか他の章にも目を通しておくと良さそうです。



本番試験はほぼ黒本と同じと言っていい内容なのではないでしょうか。
業務でJavaを使用していて、模擬試験を解いていれば問題ない内容だと思います。
本番試験では9割取れました。
(ほぼ同じ・かつ基礎的な内容なのに1割間違えてるってどういうことなのという話はさておき)

Java Goldの取得

ここからが本番です。2日でJava Goldをとります。

Java Gold受験前日

紫本の模擬試験をやってみたら、心折れたので紫本(解説書)を全部読むことにしました。


とはいっても、時間は書けたくない、しかし知識は欲しい。
何よりもう試験前日だ。
ということで以下のルールで読むことにしました。

  • 全部読む
  • ただし、流し読みする
  • 知ってるところは思い切ってバンバン飛ばす(大事)
  • 知らないところは時間かけてでも読む
  • 章末問題は気になる問題だけ実施
  • 紫本の模擬試験はしない
  • 問題の暗記はしない(解説で理解する)


紫本の問題は、かなり細かいです。
あるAPIについての知識があっても、引数の種類やらコンパイルエラーやら、
似たような選択肢をばんばか出してきます。


「そんな細かい話、ドキュメントやコンパイラに任せればええやんけー!」
的な感じの問題がばんばか出ます。いわゆるいじわる問題。


俺がJavaDocだ。くらいになると、紫本の問題でも結構解けそうな気がします。
良くも悪くも力がつく問題だと思います。


黒本(後述の問題集)や実際の試験は、もう少しわかりやすい選択肢や問題だったように思います。


なので、紫本ではあまり問題には拘らず解説で知識だけつけるようにしました。
上記のルールで読めば1日くらいで読めると思います。

Java Gold受験当日

紫本で知識をつけたら、あとはJava Silverを受けた時と同じです。

黒本の模擬試験だけ解きます。1回分しかないので、10時くらいからやっても昼過ぎくらいには終わると思います。


模擬試験後、間違えたところだけ、関連する章をチェック。振り返り。テスト前に見直し。
紫本にはついてる要点チートシートが付いているので、受験前に振り返りましょう。


模擬試験を解いたあと、本番試験を受験。
正答率80%で無事合格しました。
数年使っておいて80点ってどうなのよという感じもしますが、何はともあれ無事合格することができました。


正直受かると思ってなかった。

本番試験の傾向

本番試験ではやはり、黒本で出題されている内容に酷似しています。
ただ、(受験時の傾向によるかもしれませんが)、同じ種類が複数出ます。


あれ?この問題さっきも出なかった!?
といったことが多々ありました。多分、細かく答えが違うんだと思います。(検証はしてませんが。)
なので、答えを暗記しているだけだと、このトラップで詰むのではないでしょうか。
逆に、ちゃんと理解をしていれば同じような問題が複数回出るのでサービス問題です。

間隔的には、だいたいラムダとStreamAPI関連の問題が一番多く出題され、
ちらほらとJDBC / Thread / Worker / 例外 / ジェネリクス / Collection etc...が出るようなイメージでした。

受験後の感想

OCJ-Pを過去に受けた身としては、ラムダやStreamAPIの話がGoldにあるのはともかく、
JDBC / Thread / 例外 / ジェネリクス / Collection周りの話、(つまり旧OCJ-Pくらいの範囲)は、
Silverにあってもいいんじゃないかなぁ。と思いました。
それだと、Goldの範囲がだいぶ薄そうな気がしなくも無いですが。


試験自体は、復習や、あまり使用しないAPIや知らない機能を知る機会。
という意味でも、有意義だったと思います。


不満があるとすると、コンパイラIDE、ドキュメントに任せれば、わかるような問題はあまり多く出して欲しくないなぁ。
といったところでしょうか。


具体的には、
「このクラスには、問題に記載のメソッドと似ているメソッドはあるけど、実際は無いのでコンパイルエラーが正解です!」
みたいな問題はなんだかなぁ。といった感じです。

もちろん、何事も知っていた方がもちろん効率は上がると思いますが。