はじめに
はじめまして!コテハルと申します。
初投稿となります。
読みづらい点や分かりにくい表現、誤った解釈などがあるかもしれませんが、
その際は温かくご指摘いただけると嬉しいです!
エンジニア2年目です。
兼ねてより実務以外でアウトプットしなきゃなぁと思いつつ、
ハードルが高そうと感じていて、できていなかったです...
そんななか、できることから始めようと自分を奮い立たせ、
タイトルにもある通りJava Silverを受験してきたので、
受験しようと思ったきっかけや勉強法等を投稿していきます。
前提
普段の実務では PHP / Laravel を触っていますが、
ご縁があって、実務とは別でJavaエンジニアを目指す方の学習サポート(メンター)も行っています。
メンターをしてくなかで、
「Java分からないのに教えてるの?」
と思われてしまうのは避けたいなぁ…と感じるようになりました。
すぐに Javaの実務経験を積めるわけでもないので、
まずは資格という形で基礎力を示したら、より説得力が増すのではと思い、
Java Silverを受験しました。
学習方法
勉強期間は トータルで約3ヶ月 です。
主に「紫本」と「黒本」を使って学習しました。
1ヶ月目:紫本で基礎固め
最初の1ヶ月は、紫本を 1周 しました。
紫本には模擬試験が2回分付いていますが、問題数は比較的少なめで、
その分 解説が丁寧 な印象です。
そのため、この期間は問題を解くというよりも、
「Java の文法や仕様を理解すること」を目的に基礎固めを行いました。
※ この時点では、模擬試験を解いてもボロボロになりそうだったため、手を付けていません。
オラクル認定資格教科書 Javaプログラマ Silver SE 17(試験番号1Z0-825) (EXAMPRESS)
2ヶ月目:黒本で問題演習
私はどちらかというと、
ガンガン問題を解きながら理解していくタイプ なので、
2ヶ月目は黒本(問題集)を中心に学習しました。
黒本を 2周程度 解き、知識の定着を図りました。
こちらも模擬試験が2回分付いています。
徹底攻略Java SE 17 Silver問題集[1Z0-825]
3ヶ月目:模擬試験+弱点克服
3ヶ月目は、紫本・黒本それぞれに付いている 模擬試験を一通り 解きました。
最初は合格基準の 65% に届かず、正答率は50%前後 でした(;_;)
体感的には、紫本の模擬試験の方が難しく感じました。
この期間は、以下のサイクルで学習を進めました。
学習サイクル
- 模擬試験でよく間違えた分野を紫本で復習
- 黒本で該当分野の問題を解く
- それでも理解が不十分な場合は、AIに問題を作ってもらい、徹底的に弱点を潰す
- 再度、紫本・黒本の模擬試験を解く
この1〜4を繰り返し、
最終的には 模擬試験の正答率を75〜80%程度 まで上げることができました。
また、問題を解く際には、
なぜ正解なのかだけでなく、なぜ他の選択肢が誤っているのかを説明できるようになることを
意識して取り組みました。
試験日
全国各地のテストセンターで受験できます。
そのため、試験日はテストセンターが空いていれば、いつでも受験可能です。
CBT方式なので、試験終了後すぐに画面上に合否が表示されます。
ただし、めちゃくちゃ受験費用が高額です...
41,773円(2025年12月時点)かかりました。
そのため絶対的な自信がついてから、受験するのをお勧めします。
私も自信を持って試験に臨みましたが、試験費用が高額なため、変な緊張感がありました。
画面に「合格」の表示がされるまで、ドキドキしました...。
また、試験の申し込みがやや複雑なため、私が参考にしたサイトを載せておきます。
1つのサイトで試験の申し込みが完結しないため、煩わしく感じるかと思います。
おわりに
まず、無事に合格できてよかったです。
なんとなーーーくで理解していたことが、
言語仕様としてしっかりと理解できたと思います。
また、JavaとPHPの違いにも気づくことができました。
例えばアクセス修飾子です。
| PHP | Java | |
|---|---|---|
| public | どこからでもアクセス可能 | どこからでもアクセス可能 |
| protected | 自クラス内と、自身の子クラスでのみアクセス可能 | 自クラスおよび同一パッケージのクラスと、自身の子クラスからアクセス可能 |
| private | 自クラス内のみアクセス可能 | 自クラス内のみアクセス可能 |
| アクセス修飾子なし | publicとして扱われる |
自クラスおよび同一パッケージのクラスからアクセス可能 ※子クラスでも異なるパッケージからはアクセス不可 |
このように、似ているようで挙動が異なる点を理解できたのは、
実務で他言語を扱う上でも非常に良い学びになりました。
また、Java には 継承を制限できる sealed クラス や、
不変オブジェクトを簡潔に表現できる record クラス など、
便利な言語機能があることも知ることができました。
加えて、私の場合は「ただ漠然と勉強する」よりも、
目的や目標が明確にあった方が、圧倒的に学習効率が上がると感じています。
資格取得にはコスト(受験料や教材購入費用等)がかかりますが、
ゴールが設定されていることで、短期間でも集中して取り組むことができました。
他の言語を学習することで、PHPとの違いや新たな気付きがあり、楽しいなぁと思いました。
いつかPHP以外の言語の現場もチャレンジしていきたいです!!
最後まで読んでいただき、ありがとうございました。