JavaSilver取れたぞー!!!

PHPの民が8月半ばにJavaSilverSE17を取得したので学習方法とその反省を記載。

使用書籍

  • スッキリわかるJava入門
  • 紫本
  • 黒本

受験までの流れ

基礎固め

  • 『スッキリわかるJava入門』を読み通し、Javaの基礎知識を身につける。

試験対策本(紫本)でのインプット&アウトプット

  • 紫本を読み進めながら、各章の章末問題を解く
  • 難易度が高い章(継承・例外処理)や理解が追いつかない箇所は、「参考書の解説」と「AI(Gemini)への質問」の2方向からアプローチして理解を深める

問題集(黒本)の徹底反復(計3周)

  • 1周目: 全体を解いて苦手な章(主にPHPにない演算子周りなど)を洗い出し、重点的に復習
  • 2周目・3周目: 不正解だった箇所や、まぐれで正解した箇所を徹底的に見直す
  • 黒本に出てきた覚えていない単語や知識は、紫本に戻って読み込む

模擬問題での総仕上げ

  • 黒本の模擬問題(2回分)と紫本の模擬問題を解き、実力を測る
  • 不正解の箇所や、知識不足・ケアレスミスによる失点を分析し、参考書で復習する
  • 模擬問題を繰り返し解き直し、正答率を80%前後に安定させてから本番に臨む

こうすればよかったな(かも)

  • AIにJavaSilverSE17を受験することを明記してそのセッションで質問などをし続ける
    • Goldの内容やSE11では~みたいな余計な情報を防げる
  • 最初から参考書とAIの両方を参考にしたほうがいい
    • 2方向の解説は理解度UPに繋がる
  • 模擬問題は黒本1周目が終わったらひとまず全部解く
    • 紫本に記載できないほど細かな仕様の話が模擬問題の解説に載っていることがあったので頭の片隅に入れる
    • 黒本と違い単元ごとの問題でない状態に慣れる目的もある
    • 時間間隔も掴んでおいたほうがいい
  • 可能であれば手元で環境を作って動かす
    • わかりにくいビルドコマンド関連や継承周りの理解に繋がりそう

継承・例外処理は言わずもがな、個人的にキャストや=と.equal()の辺りが意外と鬼門でした。
運転免許取得か?と思うくらいのひっかけ問題もあるので時間配分に気を付けながらしっかりと問題を読むことを気を付けながら頑張ってください。

ちなみにGeminiに自分が質問した回数が多かったところはどこ?って聞いた結果以下のように言われました。
ご参考までに。

1. ポリモーフィズム(多態性)と継承のルール

  • Parent p = new Child(); の変数とメソッドの挙動の違い
  • static メソッドの挙動(親が呼ばれる罠)
  • アクセス修飾子のルール(メソッドは広げる、変数は自由)
  • (A) b.a() のようなキャストとメソッド呼び出しの優先順位

2. オーバーロード(メソッドの呼び出し)の優先度

  • 基本データ型の拡張 > ボクシング > 可変長引数(...)の順番
  • コンパイラが迷う「曖昧さ」によるコンパイルエラー
  • 可変長引数と必須引数の組み合わせ(method() の呼び出しエラー)

3. 型の変換(キャスト)とジェネリクス

  • shortchar の互換性の罠
  • ジェネリクスの非変性(< > の中は絶対同じじゃないとダメ)
  • + 演算子での文字列結合(null やオブジェクト・配列の文字列表現)