オラクル認定Javaプログラマの資格『Oracle Java Gold SE8』
オラクルのJavaプログラマ認定試験であり、開発の現場で活躍するJavaプログラマ中上級者向けの資格。
Javaのオブジェクト指向の深い理解とバージョン8で加わった新機能のラムダ式、メソッド参照、Date And Time APIなど多岐に渡る知識と正しい実装が行えることが証明されます。
OCJP Gold SE8を取得しました
昨年にSilver資格を取得したということもあり、Java SEの最上位資格であるGold資格を取得しようと考えました。
Javaは私にとって一番深く学習したプログラム言語であるので、実力証明のためにも、更なる上位資格を目指そうと思ったのがきっかけです。もともとSilver試験受験前からGoldまで取得すること目標としていました。
独学or学校?
独学
試験前の意気込み
問題集の出題を見るだけでも、Silver試験とは比べものにならない難易度を感じました。
業務でも使わないマニアックな技術・概念も取り入れられており、さらにオブジェクト指向の問題も高度になります。さらに噂によるとGold試験ではSE8の新機能が試験の50%も出題されるとあり、当然ながら関連する複合問題にも対応できなければなりません。
一発合格を狙うならばそれなりに覚悟を持って、じっくり学習できる計画を立てないと合格は厳しいと思いましたね。
しかしこれで怖気づく私でもありません。確実に合格できる域になったら受験しよう、そう決心しました!
試験結果
Silver試験と比べると正答率は下がっており、Javaを経験してきた私としては9割は超えたかったという想いはありましたが、それだけ難しい試験だったということは実感しました。
1回目 82% (2017/04/30に受験)
[wc_skillbar title="合格" percentage="82" color="#35a16b"]
努力が実った結果であると思っています。遂に念願のJava Gold SE8を取得することができました。
私が絶対に欲しいと思う資格のうち一つを今回取得することに成功したのですが、実はまだGold取得者だけが受験できるという難関の「Java EE」の資格試験があります。
その中のウェブ系に特化した資格「Oracle Java EE6 Web Component Developer」がありまして、更なる高みを目指すか考えています。
試験の概要
Javaプログラミングのスキル証明につながる、オラクル社主催のJavaの認定試験です。
試験の名称は「1Z0-809 Java SE 8 Programmer II 試験」となっており、合格することで「Oracle Java Gold SE8」を取得することができます。
受験資格 | Oracle Java Silver SE8の取得者 |
試験内容 | 1Z0-809 Java SE 8 Programmer II ●試験時間:150分 ●出題形式 CBTによる多岐選択式 ●出題範囲:85問
|
合格ライン | 65%以上(時期により変動あり) |
合格率 | 詳細なし |
試験日程 | 随時(ピアソンVUE公認テストセンターでの受験) |
受験料 | 26,600円(税別) |
アプリケーション開発に必要なJavaプログラミング知識を持つ開発中上級者向けの資格とあります。
Javaのオブジェクト指向の深い理解と高度なクラス設計・実装を目的とした試験レベルであることが特徴です。資格の説明でも設計者の意図を正しく理解して、独力で機能実装を行なえる技術を有していることが証明されます。
より高度で応用力が求められるJavaの資格試験です。大手のベンダー資格であり効力はかなり期待できます。
私が受験したきっかけ
Gold試験を受験する理由はSilverの時と特に変わりはありません。Silver取得以前からGoldは取得したいと意気込んでいたので、流れ的に「もう取得するしかないでしょ!」。そんな気持ちで受験を決意しました。
とはいえ業務で取り扱ってきた知識・技術とは掛け離れた分野の出題が多く、出題内容を確認するもお初のものばかり目立ち、深い理解で試験に臨むには長期戦になりそうだと覚悟することに。
例えそうであっても是が非でも合格したいという理由はもちろん、学習によって得た知識により、さらにJavaの技術力を向上させたいというのが一番だからです。
これから特に独立して本格的に個人でやっていくには、一歩上の技術や視野を持っておきたいです。
例えば、高度なサーバシステムを構築する上で習得したい知識・技術などでしょうか。
ともかくこれまでJavaエンジニアとして活動してきたわけなので、求められる技術は可能な限り得たいわけですよ。
合格までの学習方法と期間
もともとは2017年2月に受験を予定しておりました。
その理由はSilver取得からあまり期間を空けずに学習した方が、合格を狙いやすいと思ったのと、ちょうどオラクルのキャンペーンが実施されており、受験料が35%も割引される(およそ18,000円)チャンスを逃したくないといったからのことでした。
ところがいざ目標の2月に近づいた時期にも関わらず、納得のいくほど理解が深まっていなかったのです。
さらに今回受験しようとしていたJava Gold SE8以外に他の受験予定の資格試験の勉強と重なってしまい、急遽予定を変更し、受験チケットの期限ギリギリの2017年4月末にしました。
(ちなみに2016年後期~2017年前期は資格試験フィーバーとも言うべきか月1~2のペースで受験してました。)
あとはひたすらコツコツと空いてる時間は問題集に噛り付き、Silver以上に反復練習を重ね、理解できるまで何度も解き続ける学習をしてきました。試験当日に自信を持って臨めることを目標に学習計画を立てていきました。
勉強に使った問題集や参考書
計3冊
1冊だけGold SE7の
勉強方法と対策
やはり試験勉強に欠かせないのは「徹底攻略 Java SE 8 Silver 問題集[1Z0-808]対応 」です。
この手の問題集は試験出題分野ごとに各章に解説ページがあり、章末問題として試験に近いレベル感の問題が掲載されています。
私の学習スタイルは各章の解説ページはあまり読まず、すぐに章末問題を取り組み、反復練習を行いました。問題集自体は3~4周ほど学習し、とにかく理解するまでひたすら解き続け、分からない問題は解説を読んで、Eclipseなどで実際にプログラムを動作させ確認してみました。
最低限「if文」「for文」といった基礎的なプログラミング知識は持っておく必要があります。
オラクルの試験難易度の設定としてOCJP-Silverは「初級」という位置付けではありますが、オブジェクト指向がガッツリ出題されるので、それなりに理解が深まっていないと、試験の選択肢で適当に選ぶ羽目になります。
- 「クラス」の仕組みの理解は必須条件
インスタンス化、メソッドの文法・引数・戻り値など - 「基本データ型(プリミティブ型)」と「参照型(クラス型)」
どのような違いがあるか押さえておきます。 - 「継承クラス」⇒「抽象クラス」⇒「インターフェース」という順番で学習
インターフェースが特に難しいので、順を追って学習していきます。
あくまで上記に挙げるものは一例であり、出題範囲に必要な分野は黒本で十分に学習することはできます。
理解できるまでひたすら反復練習していきましょう。
SE8から導入された新機能である「ラムダ式」と「ストリームAPI」の仕様を見て、これも覚えなければならないの?と思われた方も少なくはないはずです。
型の推論だったり、アロー演算子だったり、慣れない記述形式で不安を煽る機能だったりしますが、Silverの試験ではほとんど出題されません。出題されたとしても、ほんの1,2問程度で、しかも細かい仕様を突いてくるようの問題はなかったです。
下記の2点だけ押さえておけば得点稼ぎすることができるでしょう。
Java SE8の新機能の要点
- java.functionパッケージのFunction、Consumer、BinaryOperator、Predicate、Supplierの関数型クラスの違いを整理
- LocaleDateとLocaleDateTimeの違いと使い方
新機能の仕様を聞かれるというよりはこれら書式が混ざったサンプルコードが登場するんですが、地味なところでの構文ミスによるコンパイルエラーを狙ってくる問題が多い印象でした。試験問題は疑い深く見ておきましょう。
試験日までの学習スケジュール
[chart id="629"]
実際に焦り出し猛勉強を始めたのは1週間前だったりする。
- Java Silver SE7の対策本を読み進め解いてみる(約1ヶ月前)
あんまりまだ試験勉強に対して本気で取り組んでいなかった為、手始めにJava Silver SE7の本を簡単に読み進める程度から始めてみました。簡単な問題もあれば、全く使ったことのないコーディング手法などがあり、非常に参考になりました。最初はうろ覚えで、試験はこういった問題が出題されるというイメージを持つことを重視しました。まずは試験モードに切り替えるための準備ですね。 - 1~3章、4章~6章と部分ごとに要点を押さえる(約2週間前)
一通り参考書の内容を把握した後に、部分ごとに反復練習を重ねていきました。1~3章を解いたら、解説をしっかり読んで、「なにが分からなかった・間違えた」のかを徹底的に理解し、自分の弱点を洗い出していきます。特に私の場合はケアレスミスが多く、油断して失点をすることが多かったので、試験問題を注意深く見る癖をつけることを重視した。部分ごとに内容が理解できたら、次のセクションへ・・という流れで進めました。本当にプログラムの動作が分からなかったり、あやふやなところはネットで調べたり、実機で試してみるなどし、内容の補完を行ないました。途中で飽きたりしながらも、地道に問題を進めていきました。 - 2章の予想問題を繰り返し解く(約1週間前)
一通りJava SE7を終えた後に、1冊丸々ぶっ続けで問題の解き直しを行ないました。章ごとに解説を入れ、満点なら次の章、間違えたらやり直しというやり方で全部終わらせ、残りはSE8の対策本に注力しました。試験勉強の流れはSE8でも同じでしたが、反復練習あるのみです。試験前日までにSE7・SE8すべての問題をこなしました。試験前日に至ってはSE7・SE8の全問題を総復習して就寝。 - 試験当日
台風10号が日本に接近しているのが不安要素でしたが、当日は何事もなく試験会場へ漕ぎつけました。朝風呂に入り、頭の働きをよくする食品を摂ったこともあり、集中力を最大限の状態。試験まで時間が少しあったので、軽くウォーミングアップをするため、SE8の参考書の問題を少しだけ解きました。注意点としては解き過ぎて疲れないように。試験では緊張することなく落ち着いて臨むことができ、見事合格!!
試験の難易度と感想
個人的にですが、試験そのもの難易度はそれほど高く感じられませんでした。冒頭にも記載してある通り、日ごろから業務でJavaを扱っているので、業務の延長線上のような感覚で解いていた感じです。
試験中に「合格は確実だな」という実感も湧いておりましたし、帰宅後に試験結果を見た時にも納得のいくものだったので、達成感は存分にありました。
おかげさまで91%という高い得点で合格することができました。
出題された試験問題は黒本の問題と酷似していたので、すらすら解くことができました。
中には問題集と全く同じ問題も出てきたので思わず笑っちゃいそうになり、反復練習の重要性をひたすら感じましたね。
試験時間が150分と長いこともあり、途中集中力が切れそうになるのを我慢し、気を紛らわせ慌てずゆっくりと問題を進めていきました。それでも約50分ほど時間が余ってしまい退屈なので、試験を終わらせ退出しました。
制限時間にゆとりはあるので、のんびり慎重に問題を解きケアレスミスを防ぐように立ち回ると良いと思います。
コツとしてはサンプルコードの全体像を眺めてから、コンパイルエラーや実行時エラーがスローされる箇所がないかと、怪しいところをあぶり出し、何もなければ、問題文を読んで答えるというやり方がおすすめです。
この方法で実践すれば、全文を目で追わなくても済む問題もいくつかあるので、効率よく解いていけます。
試験対策しておくべきポイント
覚え書きですが、当日の試験で注意しておきたいポイントを列挙しておきます。