入社１年目でJavaGold合格できたので勉強法について語っていく

#はじめに
Javaの資格で最も難しい試験は？
と聞かれた時に**JavaGold**と答えるエンジニアは多いと思います。

その最難関の資格であるJavaGoldを**1年目で合格できました**ので、

- 勉強内容
- 1年目で合格できてどうだったか

についてお話したいと思います。

#勉強開始時のスペック
###業務経験
- 新卒1年目（学生時代は文系でプログラミングとは無縁）
- 3ヶ月間の研修（Java/SQL/JDBC/Servlet/JSPなど）を経て、Javaの案件に配属<br/>→ただし、当時コードを書くことは殆ど無かった

###保有資格
- 基本情報技術者（1年目の4月に受験し合格）
- JavaSilver（1年目の8月に受験し合格）

####合格体験記は以下参照
- 基本情報技術者：[【未経験】基本情報技術者試験に合格できる勉強法【合格体験記】]
(https://qiita.com/ebichan_88/items/c23465532b366a793fd1)
- JavaSilver：[【JavaSilver】Java SE8 Silverに合格した勉強法【合格体験記】](https://qiita.com/ebichan_88/items/8409c9b99bf5a2977cc7)

#受験のきっかけ
- PJTの利用言語がJavaだった為、Javaに関する知識を身に付けたかった<br/>→まずは勉強した成果が形に残る資格に挑戦しようと思った

#勉強期間
勉強開始時期|試験受験日|当時の状況|
|:--|:--|:--|
２０１８/１０|２０１９/２/２|PJTが試験行程の為、業務内容はテストを中心<br/>（たまにシェルの製造）|

約4ヶ月間、勉強をして合格することができました。（12月は殆ど勉強していないので、実施3ヶ月程度）

#試験概要
JavaGoldの試験概要は以下となります。

|前提資格|問題数|合格ライン|試験時間|
|:--|:--|:--|:--|
|Java SE8 Silver|85問|65％|150分|

JavaSilverとの違いとしては、

- 受験する為にJavaSilverに合格する必要がある
- 問題数が若干増えている（７７問→８５問）

の２点が挙げられます。
合格ラインと試験時間に関してはJavaSilverと同様です。

#利用した書籍
###紫本
[オラクル認定資格教科書 Javaプログラマ Gold SE 8](https://www.amazon.co.jp/dp/B01J1LPKJY/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
JavaGoldで出題される項目が大体網羅されており、教科書的な存在。
###黒本
[徹底攻略Java SE 8 Gold問題集［1Z0-809］対応](https://www.amazon.co.jp/dp/B01LXSG1G9/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
各分野の問題と模擬試験（二回分）が用意されており、問題集的な存在。

役割としては以下のイメージです。

**紫本：各単元の概要理解、黒本で間違えた問題の復習用**
**黒本：問題演習かつ各単元で出題される機能、メソッドの暗記用**

✳︎白本（オラクル認定資格教科書 Javaプログラマ Gold SE 8 スピードマスター問題集）は利用していません。
#合格の秘訣
##秘訣1： 黒本を徹底的にやり込むこと
黒本の内容をどこまで理解出来るかが合格の鍵となります。

試験問題の難易度自体は高いですが、**試験問題の大半が黒本の模擬試験の問題と似ているため、問題をやり込めばやり込むほど合格に近づきます。**

**✳︎注意点**
問題の難易度が高いので解説の内容をきちんと理解する必要があります。

##秘訣2：ストリームAPIを攻略すること
JavaGoldの試験はストリームAPIがとても多く出題される印象であり、この分野を攻略できることが合格の鍵となります。
基本的には**紫本を読んで概要を理解する→黒本でひたすら演習を繰り返す**ことで得点できるようになります。
私が勉強した際は以下の課題の発生したため、

- JavaSilverまで学んだコードと比べてどう動いているかよくわからない
- 出題される大量のメソッドを覚えることができない


ストリームAPIの分野に関してはプラスαで以下の取り組みも実施しました。

- JavaSilverまで学んだコードと比べてどう動いているかよくわからない<br/>→**サンプルコードの写経**
- 出題される大量のメソッドを覚えることができない<br/>→**メソッドの一覧をまとめて隙間時間に読む**

<img width="1098" alt="スクリーンショット 2020-01-20 16.43.49.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292212/81ec6104-6b2d-30b9-d6da-b41cba2e7e48.png">

#勉強書籍に関するQ&A
####Q1：白本は必要ない？
####A1：**必要ないです。**
私は白本の問題を解いたことがありませんが、評判を聞いている限り、黒本とはまた異なる傾向の問題が出題されるそうな印象を受けました。
黒本の内容を理解出来ていれば合格点に到達しますので、白本で新しい問題に触れるよりは黒本の間違えた箇所を復習して、出来る問題を増やしていくのが良いと思います。<br/><br/>
####Q2：紫本の模擬試験は解く必要ある？
####A2：**黒本しっかりやれば必要ないです。**
黒本とダウンロードできる模擬試験（合計２回分）をやりこみば十分合格できます。
黒本の問題の解説はとても詳しいので、まずは黒本の内容を100%近く理解できるようにしましょう。
黒本をやり込んだ後に余裕があれば紫本の模擬試験を解くのはありだと思います。
<br/><br/>
####Q3：そもそも紫本自体不要では？
####A3：多分あったほうが良いです
紫本は黒本と異なり、サンプルコードと各分野で出題されるメソッドの一覧が豊富なので、実際に動かしてみたいときや、類似のメソッドや機能を比較する時に非常に便利です。
実際に問題が解けるようになるためには黒本が必須ですが、各機能の概要理解や復習に関しては紫本の方が向いているのであったほうがいいです。
<br/><br/>
####Q4：黒本の模擬試験は何割ぐらい取れたら良い？
####A4：**初見で6割程度が目安だと思います**
ただし、間違えた問題の復習は完璧にする前提です。
<br/><br/>
####Q5：紫本に書いてない内容の問題が黒本にいくつか出題されてるんだけど？
####A5：**黒本に出題された問題は全て覚えるべき内容と割り切って取り組みましょう**
黒本を解いている際に、紫本の範囲外の内容の問題が出題される時があります。
せっかく紫本を勉強したのに・・となりますが、ここは割り切って覚えるしかありません。

私が勉強した時は、紫本に記載のない黒本の内容は全て紫本に転記して、参照できるようにしていました。
![IMG_1413.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292212/bd427b94-a7bf-6896-1bbf-9da9af681e6c.jpeg)
<br/><br/>
#勉強の流れ
###紫本を２周する（勉強開始〜２ヶ月目）
土日を中心にとりあえず紫本を一通り読みました。
基本的には読んで理解するだけでしたが、難しいと感じた分野（ストリームAPIなど）に関しては個別に調べたり、サンプルコードの写経やExcleにまとめたりしました。
###黒本の１〜１０章を解く（3ヶ月目〜）
紫本を一通り読み終えた後は黒本をとき始めました。
ただ、紫本を読んで理解するだけでは**黒本の問題を殆ど解くことができませんでした。**
殆ど解けなかった時は正直絶望しましたが、一から覚えるものだと割り切って、全問正解できたら次の章の問題を解き始めるといった流れで勉強を進めていきました。
###黒本およびPDFの模擬試験を解く（受験日1週間前〜）
模擬試験の問題を解いて仕上げに入りました。
といっても黒本の１〜１０章に比べて問題の難易度も高いため、間違えた問題も100％解けるように繰り返し復習を実施しました。（これが一番大事ですが）
#試験結果
正答率78%で一発で合格できました。
<img width="375" alt="image.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/292212/bcb0a0f9-552e-a9e0-e44b-8e5d9a713f5d.jpeg">

模擬試験の結果的には正直厳しいかなと思っていましたが、思った以上に黒本で出題された内容が出てきたので合格ラインを大きく上回ることができました。


#1年目でJavaGold合格してどうだった？

###自身の技術力
合格当初は業務でJavaに触れる機会がなく、正直技術力が上がった実感がありませんでした。
ただ、2年目に入り大規模な開発を経験する上で、JavaGoldで学んだ内容は当たり前のように登場していたので、勉強してよかったと思う機会が多かったです。（残念ながらラムダ式やストリームAPIは現場で使っていませんが・・）
ただ、知識を知っているからといって、すぐ実装できるわけではありませんでした。
とっかかりとしてJavaGoldの勉強はよかったでしたが、**実際にコードを書くのが技術的に一番成長できる**と思います。

###上司の反応
**「資格を取ったのはすごいけど、学んだことをどう価値発揮出来たかが大事だよね」**
といったことを言われました。

**全くもってその通りだと思います。**
資格を取得しても、現場では実際にどう価値発揮するかを見ているので、**資格をとっただけでは劇的に評価が上がるということはなさそうです。**
ただ、高い目標を挙げてコミットしいく姿勢は評価されたかもしれません。
###同期の反応
**思った以上に驚かれました。**
1年目でJavaGoldに合格する人は少ないので、どうやって勉強した？と聞かれることも多かったです。
また、JavaGoldを持っているだけで、ある程度Javaの実装経験できているという印象を持たれます。（実際は合格当時は殆ど実装できていませんでしたが・・。）

#終わりに
JavaGoldは難易度の高い試験ですが、新卒１年目で合格することは全然可能です。
資格が全てではないですが、Javaを勉強する際にまずは資格からと考えている方の参考になれば幸いです。