【資格試験】(JavaSE8Gold)学習振り返り＆まとめ

#はじめに
2020年の7月にJavaSE8Gold資格を何とか取得しました！
ですが、あまりよろしくない点数だったのでJavaGoldSE11の黒本が出たタイミングで移行試験を受けて理解度を高めようと考えています。

と言う事で次回受験に向けて今回の試験の振り返ります。

#前提
初心者の勉強方法なので、業務でガリガリやっている人には向けにはならない気がします。。。
それを前提に生暖かく読んで頂ければと思います。
（むしろ何か間違えていたら指摘くださると嬉しいです←

#JavaSE8Gold試験について
公式より抜粋。
この試験を初心者が取得したとしても、経験的差が圧倒的で本当の中級者には達していないと思います。ですが、公式見解的に中上級者として認められるというのは嬉しい事ですよね。

>Oracle Certified Java Programmer, Gold SE 8 認定資格は、設計者の意図を正しく理解して独力で機能実装が行える中上級者向け資格です。Javaアプリケーション開発に必要とされる汎用的なプログラミング知識を有し、設計者の意図を正しく理解して独力で機能実装が行える能力評価することを目的としています。Oracle Certified Java Programmer, Gold SE 8 認定資格を取得するためには、Java SE 8 Programmer II (1Z0-809) 試験の合格が必要です。

# JavaSEGold取得の意義
個人的にJavaSEGoldを取得するメリットはこんな感じかなと思います。

- [x] 　自己アピールになる
- [x] 　会社から報奨金が出る可能性が高い
- [x] 　コードを読むスピードが向上する
- [x] 　公式ドキュメントに親近感がわいてくる
 
「勉強する習慣」を身に着け、且つ結果証明もついてきます。
そのため業績レビューや転職の際の自己アピールにも繋げられると思います。
さらに会社が報奨金の対象資格にしている場合はモチベーションもだだ上がりですね。
（転職前の会社では確か10万円出た気がしますが...人間お金じゃ動かないんだねとも言える

個人的にはコードを読む事への抵抗が減り、スピードが上がったのが一番の成果でした。
最近コードレビューする機会が多くなってきたので助かっています(๑╹ω╹๑ )

#バックグラウンド
先に私のバックグラウンドを少しだけ話しますとこんな感じです。
プログラマー歴的には１年ほどの初心者...

＜何となく変遷＞
2006年 大学実習　 半年ほどC言語科目受講
2008年 入社時研修 1ヶ月ほどJava言語
2019年06月　プログラミングスクール　Ruby言語勉強開始
2020年11月　エンジニア転職 Java勉強開始
2020年01月　[JavaSE8Silver試験合格](https://qiita.com/ozackiee/items/b32d1e26dab0882e0205)
2020年07月　JavaSE8Gold試験合格　←今ココ

##バックグラウンドを踏まえた体感難易度
なぜバックグラウンドかと言うと、試験の体感難易度は受験者のバックグラウンドに大きく左右されると感じるからです。

Silver試験の時は「基礎力」が求められました。
Gold試験では「コードを迅速且つ正確に読み解く力」が問われる印象です。

その為、普段から業務でJavaを使ったプログラミングをされている方と、初心者ではコードを読む事に対する「慣れ」のレベルが格段に違うと推定...

初心者...大分頑張らないとダメかもしれません_:(´ཀ`」 ∠):

#受験タイミングについて
**再受験無料キャンペーンに賢く乗っかろう**
なぜかと言うと資格取得応援と称して「再受験無料キャンペーン」が定期的に実施されているからです。
１回の受験が税抜26,600円(2020/7受験時点)と言うことを考えると、リスクヘッジのためにも乗っからない手はないと思いますし、何となく計画も立てやすくなるのではと思います。

公式サイトで過去の新着ニュースを見てみるとこんな感じでした。

＜過去のキャンペーン期間＞
・2019年01月07日 ～ 2019年05月31日
・2019年12月02日 ～ 2020年05月31日
　[新着ニュース（アーカイブ）](https://www.oracle.com/jp/education/news/archive.html)より抜粋

他にもキャンペーンや無料セミナーなどの告知もあるので、たまにチェックするのが良いかも
注：今後も開催されるか保証があるものではありません...

**ときにはリスケも大事**
今回の試験で私は１度リスケをしました。
思いの外自分の頭の出来が悪いと言う事にギリギリになってから気づいたからなんですが、、、（アレは現実逃避ではなく戦略的リスケだったと！！←
予約変更は試験開始の２４時間前までなら、２回まで無料で対応してもらえます。


総じて、ぐだぐだ先延ばししがちな方は、これらを上手く活用して腹をくくりましょう！（笑）←私がそうです

#学習時間
気合い入れて勉強し始めたのは受験の約３週間ほど前からです。
ただし、勉強開始から２週間時点で今のスケジュールで合格レベルに達するのは無理だ！と気づき１週間後ろにリスケしました（笑）
なので正確には４週間の勉強期間で、時間にして大体合計６０〜７０時間ほどだったと思います。

平日は、ほぼ毎日１時間〜２時間ほど。
週末は、土日合わせて８時間〜１２時間ほど。
（ファミレスの住人とかしてました）

#学習教材
試験対策に使用した教材は以下のとおり。
ご存知のものばかりだと思います。各教材の補足説明は学習内容に引き継ぎます。
**[オラクル認定資格教科書 Javaプログラマ Gold SE 8 (EXAMPRESS)](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E-Gold-SE-EXAMPRESS/dp/479814682X/ref=sr_1_4?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Gold+Se+8+Java&qid=1601113806&sr=8-4)(紫本)**
オススメ度：★★★★☆

**[徹底攻略 Java SE 8 Gold 問題集[1Z0-809]対応](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-Java-Gold-%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-809/dp/4295000035/ref=sr_1_1_sspa?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Gold+Se+8Java&qid=1601113725&sr=8-1-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFLS0I4M0NMTTdHUDkmZW5jcnlwdGVkSWQ9QTA2MTQxOTFRRTJPUFlXWFFBNFkmZW5jcnlwdGVkQWRJZD1BMlY0ODJZSVVMRExNVyZ3aWRnZXROYW1lPXNwX2F0ZiZhY3Rpb249Y2xpY2tSZWRpcmVjdCZkb05vdExvZ0NsaWNrPXRydWU=)(黒本)**
オススメ度：★★★★★

**[オラクル認定資格教科書 Javaプログラマ Gold SE 8 スピードマスター問題集](https://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E6%95%99%E7%A7%91%E6%9B%B8-Java%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E-Gold-SE-%E3%82%B9%E3%83%94%E3%83%BC%E3%83%89%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E5%95%8F%E9%A1%8C%E9%9B%86/dp/4798146811/ref=sr_1_5?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=Gold+Se+8+Java&qid=1601113806&sr=8-5)(白本)**
オススメ度：★★★☆☆

**[Java(tm) Platform, Standard Edition 8 API仕様](https://docs.oracle.com/javase/jp/8/docs/api/)**
オススメ度：★★★★★

**[Oracle公式-サンプル問題-](https://www.oracle.com/jp/education/certification/java-campaign-3254824-ja.html)**
オススメ度：★★★★★

**振り返ってみてのオススメ組み合わせ**
上で紹介した★５の組み合わせが最小限かなと言う印象を受けました。
JavaSE8のAPI仕様書を真面目に読めるなら、ほぼコレでカバーできる気がします。

（その他の学習補助資料も最後に紹介していますので参考にしていただければ）

#学習内容
JavaSilverとは違い、今回は実際に私の辿った学習順をご紹介します。

##学習の流れ
① 紫本（模擬試験以外をサラッと流す）※１週間目
　　↓
② 黒本（こっちはじっくり） 
　　↓　　(１章ずつ繰り返し)　※２週〜３週間目
　　↓　　②-1 [黒本１章分]問題を解く
　　↓　　↓
　　↓　　②-2 答え合わせ／回答確認
　　↓　　↓　＜補足学習＞
　　↓　　↓　　②-2-1　[紫本(黒本の該当章に対応する内容)]、[JavaSE8 API仕様書]
　　↓　　↓　　　＋
　　↓　　↓　　②-2-2　実機で挙動の確認／ノートなどに整理
　　↓　　（全章とおして繰り返し）※３週〜４週間目
　　↓　　②-3 [黒本１〜９章分]×４周
　　↓　　↓　
　　↓　　②-4 [黒本模擬試験１・２]×４周
　　↓　
③ 白本（ふんわりだけ見ました）※４週目
　　↓　
④[Oracle公式-サンプル問題-]※受験の数日前
　　↓
⑤[紫本模擬試験]※受験の前日

##具体的な学習内容
最初に紹介した流れの中身を少し補足していきます。

全体を通して重要なのは以下を繰り替えして「慣れる」事です。
・関数や引数、戻り値型等を「覚える」(暗記でなく..
・実装方法と実行結果を「理解する」

###① 紫本（模擬試験以外をサラッと流す）
やはり私は無知から入るのを嫌うようで紫本から入りました。
ただし、眠気との戦いが主な戦果ですのでココはサラッと流して早めに切り上げるのがオススメです。
紫本の本領は問題を解いた後の振り返り学習で発揮されるものだと思います。
（何故？がない状態で読んでも人間”ふ〜ん”で終わって実際には覚えていまてん！間違いない！！←
###② 黒本（じっくりコツコツ）
ココが学習の主軸です。
１章ずつ丁寧に、その後は全章とおして４周ほど周回しました。
初回は４割〜６割の正答率ですが２回目以降は９割以上の正答率になります。
理解したと言うより”暗記した”と言う意味で。

ただし、Goldの試験はコレではNGです。
目標は「何故この答えか？」「何故他の答えだとダメなのか？」が説明できるレベルです。

そのため、２周目終わった時点で"ComparableやCompare"、"Executor"、"Enum"、関数型インターフェースなどの機能ごとにノートに整理していき理解を深めた感じです。
また、１度で良いのでStreamなどで出てくる各メソッドに対する引数や戻り値の型を書き出す（メモ帳に殴り書きでも）だけで結構頭に残ったり、知識が繋がったりして行きます。

私は受験後Qiitaにも少しまとめましたが、最初からQiitaでも良かったかも。。。

####＜学習方法として良かった点＞
**解答用スプレッドシートを作成**
以下のような解答シートを作り、間違えたら即座に分かるようにしました。
で、間違えたら、その場で確認...紫本、API仕様書や動確しながら時間かけて進めました。
![スクリーンショット 2020-09-27 23.40.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445937/3a952b9f-e2b6-9ec1-984d-c7ede65b2d9c.png)

**Java SE8 API仕様書を重用**
「ナニコレ？！」と言うメソッドが問題に割と沢山出てきます。
最初は紫本を見ていましたが、途中からAPI仕様書を参照するように切り替えました。
実際の実務を想定すると見る習慣をつけるのは大事でしょうし、見方がわかってくるとコチラの方が情報量が多くてよかったです。

API仕様書をみる事で、このメソッドがインスタンスなのか、デフォルトなのか、抽象なのかなども意識するようになった気がします。

###③ 白本（ふんわり流し読み）
もうひと押しが欲しくて購入しました。
１問１答形式となっており通勤時間などに気軽に読むのには適していました。

ただ、私の個人的な感想としては、公文式見たく似たような問題を手を替え品を替え解いていく感じで、難易度も他の本に比べたら少し低めです。新しい気づきもあり、余裕があるならやって損はないですが”試験直前のひと押し”向けの本ではなかった印象です。

そのため、直前であれば特に黒本出題内容の整理や理解にフォーカスした方が効果的だと思います。

###④ Oracle公式-サンプル問題-
黒本にはサマータイムの問題がなかったり、Optional型の説明が殆ど出てきません。
ですが、私が受験した回でもOptional型やサマータイムに関する問題は出題されていました。

そのため、何かで補足しておく必要があるのですが、ちょうどよくOracle公式のサンプル問題にはコレらの問題が掲載されているのでもってこいです。
（紫本では出てくるので、紫本を使わないなら絶対にやったほうが良い感じです）

内容重複していますが、別バージョンからの移行テスト用問題も含めて４０問掲載されています。
###⑤ 紫本模擬試験
最後の最後まで残しておいて、直前に模擬試験を受けてみました。
初見でどの程度のレベルか測るために取っておきましたが、黒本ではなく紫本の模擬試験を残しておいたのが味噌です。
結果は確か合格ラインである65%下回っていたかな...直前でコレって（笑）
と、なりながら当日を迎えました！

#試験当日
試験は全85問を150分かけて解いて行きます。
単純計算で1問2分未満で解いていくこととなりますので時間的に意外と余裕がありません。
私は残り30分切ったところで15問残っていて焦って頭が真っ白になり全く問題が入ってこなくなりました^^;
JavaSilverの時は時間にかなり余裕があったことを思うと結構辛いです。

迅速に読んで理解する、そのためにも各処理やメソッドをなるだけ正確に記憶・理解しておく...重要です。

#試験の結果
なんと合格ライン65%のところ72%と言うギリギリのラインで合格をすることができました！
![スクリーンショット 2020-09-28 1.27.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/445937/7b9976d4-12cf-1d82-aebb-66893b6674e1.png)

#まとめ
Gold資格取得の学習負荷は業務にも非常に良い影響を与えたと思います。
とはいえ、実務経験１年未満のまだまだ初心者ですので、更なるステップアップのためにも継続して学習を続けていこうと思います。
そして、目に見える成果として実らせるためにJavaSE11Goldの黒本が発売されたら、バージョン移行試験を受けて自分の習熟度を再計測してみるつもりです٩( 'ω' )و

そして、名実ともにJavaプログラマーとして恥ずかしくないスキルと経験を積んで、早く駆け出しを卒業するぞと…(๑•̀ㅂ•́)و✧

#(おまけ①)学習補助教材
教材として紹介した資料の他に以下も参考にさせて頂きました！感謝！！

**参考にしたサイトさま**
[oracle Java SE 8 ProgrammerⅡ（Gold）に合格した勉強方法と試験で注意したポイント](https://ito-u-oti.com/post-565/)

**仮想実行環境**
[Paiza.IO beta](https://paiza.io/ja/projects/new)
JDBCなどの動作確認できませんが、関数型インターフェースやStreamなどの動きを気軽に確認できるのでオススメです

→余裕があるなら自分のPCに環境を構築して紫本のサンプルプログラムで色々試すのもありかもしれません。

**黒本(SE8Silver)作者のJava学習動画やオンラインもくもく会**
Silver/Gold受験者向けに学習動画を無料公開してくださっています。
個人的に非常にわかりやすく、非常にお世話になりました。
また、もくもく会には私も一度参加しましたが、アウトプットの大切を改めて実感しました^^;

**-黒本先生のやさしくない!?Java：**
https://www.youtube.com/channel/UC42DlV-0RDb6fJ8A3IbAang

**-オンラインもくもく会：**
https://javakuro.connpass.com/event/

**Udemy講座を活用**
[JavaSE8-インタフェース/ラムダ式/ストリーム集中コース](https://www.udemy.com/share/102gFABkQZcFtVQ3Q=/)
資格取得とは関係なく、Javaの勉強始めた頃にセールで購入し視聴しましたが、試験勉強にも役立ちそうな内容なのでご紹介しておきます。（お高いので頻繁に実施されるセール以外では手が出せません笑

**参考になりそうな書籍**
[Effective Java 第3版 (日本語) ](https://www.amazon.co.jp/Effective-Java-%E7%AC%AC3%E7%89%88-Joshua-Bloch/dp/4621303252/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&dchild=1&keywords=effective+java&qid=1601229435&sr=8-1)
Goldの範囲が題材になっていて参考になりそうですが、内容が難しすぎて取得後のステップアップ用と位置付けた方が良いかもしれません。。。
私もGold取得後に読み始めました...が、内容も日本語も難しくて記憶があまりない...。
...頑張ります(/ _ ; )

**私のQiita(笑) ←**
[(JavaSE8Gold試験対策)ComparableやComparatorと仲良くなりたい人のメモ。](https://qiita.com/ozackiee/items/de4dadcf844f2c379cbc)
後日まとめたQiita記事です。
バージョン移行試験向けに...(今度こそ)増やしていくので宜しければ参考に（ゲフゲフ

#(おまけ②)チケット購入について
会社で無料チケット貰えたり、補助が出ない限り結構な出費ですよね。
少しでもお得に...と言う時は楽天で購入がオススメのようです。

**[楽天市場 ITベンダ試験受験チケット](https://item.rakuten.co.jp/it-test/137327/)**

定価より少しお安いのと、楽天重用されている方ならポイントレバレッジ効いて1,000円〜2,000円ほどポイント還元も受けられそうです。