SJC-P(Java Standard Edition 6 Programmer Certified Professional Exam)に合格しました.試験結果は60点中43点(合格点は35点以上)と,まぁさえない点数ですが,これでようやくいろいろと開放された感じです.SJC-P受験はなかなか良い経験になったので,ここではSJC-Aレベルの知識を持っている段階から,SJC-P合格のために行った受験記録と試験対策についてまとめました.
SJC-P受験目的
Javaは業務で使うことがあるので,SJC-P受験を通じてJavaの技術力をつけることを目的としました.そのため,SJC-Pは問題を覚えるというよりも原理を理解するところに力を入れました.
勉強期間
8月から12月の約4ヶ月を勉強に費やしました.実際に集中した勉強時間は60時間くらいだと思います.
参考書
勉強に使った参考書は黒本と呼ばれる教科書と問題集です.黒本は重箱の隅をつつくような問題が多いとの噂をよく散見しますが,Javaの詳細を学ぶのに適した本であると思います.
徹底攻略Oracle認定JavaプログラマSE 6問題集 [CX-310-065]対応 (ITプロ/ITエンジニアのための徹底攻略)
- 作者: 志賀澄人,米山学,.
- 出版社/メーカー: インプレスジャパン
- 発売日: 2011/01/21
- メディア: 単行本(ソフトカバー)
- 購入: 18人 クリック: 46回
- この商品を含むブログ (3件) を見る
SJC-Pの試験対策
まず,教科書を読み流す程度で1周し,その後問題集を3周しました.問題集の解説がかなり充実していることもあって,後半は問題集をベースにして教科書は深い理解を得るために参照するといった流れとなりました.また,試験を受けてみた限りでは,SJC-Pの難易度は黒本の問題集の模擬試験で7割以上を取れるのであれば合格できるレベルだと感じました.なので,問題集を集中して3,4周するというのが効率の良い勉強法だと思います.
また,わからない箇所は深い理解を得るために,プログラムを作って動作を確認するといったことを行いました.重箱の隅部分を理解するために20種類程度のプログラムを作りました.次のリンクは試験のセクション別に分類したそれらのプログラムと解説の記事です.これだけのプログラムを書いたという経験が受験時の自信につながりました.
- 宣言,初期化,スコープ
インナークラスからメンバを利用する際に注意すること
Javaで無名クラスを利用する際に注意すること
static初期化子,インスタンス初期化子,コンストラクタの実行順序
共変戻り値を使ってみた
- フロー制御
Javaの例外処理において複数のcatchブロックを使用する際に気をつけること
- APIコンテンツ
String,StringBuffer,StringBuilderの実行時間を比較してみた
オブジェクトの直列化と,直列化させない2つの方法(transient,static)
サブクラスを直列化する際に,直列化可能でないスーパークラスで注意すること
日付と時刻の書式化(フォーマット)を行ってみた
同一の文字列リテラルを持つStringオブジェクトを作成する際の注意
- 並行性
Threadの生成方法と,無限にstartし続けない不思議
インスタンスメソッドとstaticメソッドのロック
スレッドがスローする例外をキャッチする
- オブジェクト指向コンセプト
- コレクション/ジェネリックス
コレクションに慣れよう
ジェネリックスにワイルドカードを用いた後の注意事項
Collectionsクラスを利用してリストの要素を2つの方法でソートする
- Java言語の基礎
感じたこと
SJC-Pの問題に出てくるコーディング例は,実際の現場では使われなかったり,使うと怒られそうなものが多いと感じます.そのため,この資格を勉強する意味はあるのかと一時期思うところがありましたが,コーディング例を反面教師的に受け取れば良いコードがどんなものかというのが少しずつ分かってきます.SJC-Pの受験で得られたのがその感覚で,それが一番大切なことだと感じました.