Oracle Certified Java Programmer Silver SE 8 合格体験記

今回はOracle java SE 8 Silverについてです。正式名称は「Oracle Certified Java Programmer, Silver SE 8」ですかね。
なお、2019年6月よりSE 11の資格が登場していましたが、業務で使用しているjavaのバージョンがSE 8だったので今回はSE 8で受験しています。今から受けるのであれば、素直に最新のSE 11で問題ないと思います。

前提
非情報系大学出身で中の下くらいのスペックの筆者がIT資格をどのような経緯で受験し、どのような方法で学習し、その結果どうなったのかを、本音ベースで伝える。

受験の目的

これまでそこそこの数の資格に合格してきましたが、開発職ということでもう少し開発や技術に直結する資格を取ってみたら?と言われるようになってきました。当時のプロジェクトで技術的な資格となるとjava、HTML(CSSJavaScript)あたりになってくるのですが、メインフレームワークということでコーディングする機会の多かったjava資格を受験することに…



受験状況

合格日:2020年1月に合格
受験地:東京都千代田区秋葉原のテストセンター)
受験回数:2回
報奨金:1万円(受験料は会社負担)
実は2019年夏頃に1回目の受験をしましたが、大して勉強せずに臨んでギリギリ不合格になっています…
弊社には"資格注力者"みたいな制度があり、部門からの推薦で注力者にしてもらえれば参考書代の補助(上限5,000円)、受験料を会社が負担してくれるみたいな制度がありますので、そのおかげで不合格ではあるものの26,600円というバカ高い受験料を負担することにはならなくて済んでいます。(正直その後ろ盾があるので落ちてもまぁ良いかという気持ちがありましたが…)
1回目受験してみてちゃんと勉強すれば受かるなという手応えがあったので、2回目はそれなりに対策した上で試験に臨みました。

筆者のスペックは以下の2020年1月ごろの状況を参照。 (https://y-sakurai-0112.hatenablog.com/entry/2022/01/14/004828)
海外向けのメカトロ開発に携わり5年弱経過している状況です。
同じプロジェクトに5年も従事するってのはかなりレアなケースだと思います。ずっと同じ工程の繰り返しでしたのでもはやルーチンワーク。日々の作業は部下に任せて、自分はマネジメント作業をメインに、手が空いた時に開発や障害調査をサポートするような感じ。

学習について

学習期間:試験1か月前くらいから、その日によってやったりやらなかったり
学習場所:会社、自宅
学習方法:参考書、プログラミング実践

攻略法

前提として、自分には業務を通して基本的なjavaプログラミング経験がありますので、知識ゼロからの学習ではない点についてはご了承ください。
これまではいかに手抜きして合格するかを重要視していた自分ですが、今回は参考書を1冊解き、直感的に理解できなかった問題については実際にプログラムを書いて動かすというめちゃくちゃ正攻法な学習を行っています。正直面倒臭いですが実際に手を動かすと理解度は増すと思います。


参考書

※参考書のリンクは最新であるSE 11のものとしていますが、自分が受験した際にはSE 8の参考書を使用しています。

使用した参考書(問題集)は以下リンクに貼った通称"黒本"というやつです。何なら本番の試験より難しいんじゃないかと思うくらい充実した問題集になっていますので、この参考書を一通りすらすら解けるようになれば自ずと合格レベルに達しているのではないかと思います。時間がない方は、模擬試験を繰り返し解くだけでも十分な対策になると思います。その際は実際の試験時間を想定して解答してみることをおすすめします。



自分は使用していないですっが、Java初心者向けには以下の"紫本"ですかね。
Javaプログラミングを基礎から解説するような内容となっているので、まずこの本で学習し、上記"黒本"で問題を解くという流れが良いか思います。



ポイント

以下に実際に受験して思ったこと等をまとめます。

  • 意外と時間がない
    Silverの試験時間は180分、問題数は80問、選択式になります。
    基本的な問題が中心になるので落ち着いて考えれば容易に解けるような内容ばかりですが、落ち着いて解いている時間がありません。 180分で80問。単純計算で1問2分程度。最後に回答漏れや選び間違いがないか、など見直しを行うことを考慮すると、回答に割ける時間はさらに短くなります。
    問題文も思ってたよりだいぶ長いので、ここは実戦形式での学習経験がモノを言うと思います。そういう意味も込めて、「黒本の模擬試験を試験時間を意識した上で解く」ことを参考書の項で書きました。
  • 全てを理解する必要はない
    問題数は80問、合格ラインは63%ということで、逆に言うと29問くらいは間違えられます。
    このギリギリまで間違えられますの思考こそ"受ければええやん思考"の真骨頂だと思います。
    例えば1問くらしか出題されないのに時間をかけるくらいならばラムダ式JAVA APIとかは捨ててしまって良いと思います。その分他の問題に時間を割きましょう。
  • こんなソース誰が書くねん…
    この資格に関してはとにかくこれに尽きる。 JAVA 例えば、switch - case にbreakが省略されているので次のcaseに進んでしまう、特に問題ないソースに見えるけれどよく見ると文末に;(セミコロン)が書き忘れてあるのでコンパイルエラーになる、中括弧をわざと省略して可読性を下げている、よく見ると到達できないコードがあってコンパイルエラーになるとか…
    一言でいうと、間違い探しのようだし、実際の開発ではまず出て来ないであろうコードが多数登場します。仮にそのようなコードを書いてしまったらレビューなりテストなりで修正されるだろうし、そもそもコンパイルが通らなかったり警告が出たりなんてことはEclipse等の開発環境を使っていれば明らかに分かることですしね…
    というわけで下手に知識があったりすると、綺麗なコードとして読んでしまって"正解の一段階前"の解答を選んでしまうようなケアレスミスを呼びますので問題文はしっかり読んだ上で回答するようにしましょう。解答時間との兼ね合いもありますが…
  • 具体的には…
    • 演算子、ループ、配列、ArryaList等に関する問題は当たり前に解けると思いますので、先述した"間違い探し系"の問題に注意しましょう
    • メソッドとカプセル化については、アクセス修飾子(publicとかprivateとか)について確実に理解しましょう
    • コンストラクタの処理順などは良く聞かれます。継承関係、オーバーロードなども含めて確実に理解しましょう
    • 例外処理については例外の種類、継承関係まで含めて細かいところまで覚えましょう
    • ラムダ式JAVA APIとかは場合によっては捨てましょう

      合格してみて

      先述の通り、開発環境で見つけられるバグや明らかに可読性の低いソースコードを読み解けて何のスキルを証明できるのか…というのが本音です。Goldはともかく、Silverを持っている=プログラマースキルの証明というのはちょっと厳しいかもしれません。とはいえ、クラス、継承、例外等の考え方やコーディングルールを見直す良い機会ではあったと思います。受験料が非常に高いのが難点ですが、返還、会社負担などの制度がある場合は受験してみても良いかもしれません。