資格取得の為の一週間短期集中学習。資格勉強の恩恵を感じた一週間を振り返る

個人的に資格取得の為に一週間短期集中学習を行なってみた。
その学習を通して気づいたことを書きたいと思います。

![1265502.jpg](https://qiita-image-store.s3.amazonaws.com/0/235933/3b42500c-10c8-973c-1465-da6735186b45.jpeg)

##はじめに
まず、私の受験した試験はというと、***Java SE 7/8 Bronze***というJavaの知識を証明する資格。
なぜこの資格を受験することにしたのかというと、目的は、Javaの知識を証明する何かが欲しかったからだ。
開発をするなら資格よりも成果物をとにかく作れと言う方もいるが、Javaの資格を評価する採用担当者と何人か話した事があり、資格取得も同じくらい大事であると私は思う。
また、私は開発者としてはまだまだキャリアが足りない現状もあって、自身の技術や知識の証明になるものは少しでも多く欲しかったという背景もあってこの資格の取得を目指した訳である。

##資格勉強に使った学習教材
今回私が使用した問題集はこれ。
　→[Java SE 7/8 Bronze問題集](https://www.amazon.co.jp/%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-Java-Bronze-%E5%95%8F%E9%A1%8C%E9%9B%86-1Z0-814/dp/4844338293)

内容ごとに問題分けされていて、全8章あり、章毎に問題と解答＋解説があり、理解不足な点もそこを見れば補えるくらい、詳細に説明されている。最後の章では総仕上げ問題として試験同様本番を想定した内容で60問ある。

##学習時間と方法
資格のレベルとしては、難易度はそれほど高くないという印象であったのと、私自身がJavaの入門書は読み終え、現場で開発や障害改修には関わっていた状況だったので、資格取得には、問題集のみの学習で一週間あればいけるだろうと予想した。
実際に一週間の学習時間は、以下のように行なった。欲望に負けて忘年会に参加した日もあり、短期集中学習と言う割には学習時間は思ったほど取れてはいない。。。(笑)

|日|月|火|水|木|金|土|
|--:|--:|--:|--:|--:|--:|--:|
|6:00|4:50|1:00|3:50|4:00|4:00|5:00|

合計28:00時間

学習方法としては、問題集を１問解いたら、解説を読んで内容を把握する、というのを繰り返し、Javaの復習も兼ねながら進めていった。１章終わる毎に、もう一度その章を今度は連続で解き、間違えた箇所も次には理解が出来ている事は確認していった。
途中、ググって理解不足な点を補うことはあったが、基本は、この一冊でいけた。

##短期集中学習をしてみての感想
はっきり言って問題集を解き始める前までは、資格取得を舐めていた。
Bronzeって一番下の資格だし、開発未経験者を対象にしているなら簡単だろうと。だが、しかし、解きはじめてみると、「えっ、なんで違うの！？」って感じで、まんまと引っ掛け問題にかかり、なかなか侮れない問題が多かった。問題を解きながら、気づいたことは下記にまとめた。

####Javaを正しく覚え直せた
まず、良かったことは、うろ覚えになっていた所や間違って覚えていた箇所を見直すことが出来たこと。
例えば、プリミティブ型と参照型の違いなんて、完全に忘れてしまっていたし、this、this()、super、super()あたりもゴッチャになっていた所を改めて覚えなおせたのは良かった。

####製造時にやってしまいそうな、うっかりミスのパターンが勉強になる
下記のようなソースがあったとする。

```
public class SuperClass {
    public void disp() {
        System.out.println("SuperClass");
    }
}

public class SubClass extends SuperClass {
    public void disp() {
        System.out.println("SubClass");
    }

    public static void main(String[] args) {
        SuperClass obj = new SuperClass();
        SubClass obj2 = (SubClass) obj;
        obj2.disp();
    }
}
```

このソースがどういう結果になるのかというと、実行時に例外がスローされる結果となる。
SuperClassをインスタンス化したobjインスタンスをSubClassにダウンキャストしているのだが、キャストしているので、コンパイル時にはエラーは出ない。そして実行時にSubClassの差分を持っていないので、エラーとなる。この辺は、インスタンスがどう出来るのかのイメージが出来ていないと、混乱する。そして、私も案の定、引っ掛かったポイントである。
他にもインスタンスからstaticメソッドの呼び出しは出来るが、staticメソッドをインスタンスに出来ないことなど、やってしまいそうな問題の練習が数多く出来た。

####ソースを読む力がついた！
問題のほとんどが、ソースを読んで解答する形式なので、ソースを読むのに慣れ、読み解くのが早くなった。この一週間問題を解き続けてみて、その効果なのか現場業務で、ソースを読むのも気持ち早くなった気がする。(笑)
また、注意深く見るようにもなり、問題を発見するのも早くなったと感じた。
例えば、if-else文のelseに「｛｝」カッコがない場合、次の1行のみを自動でカッコでくくるようにコンパイル時に処理するので２行目移行は外出しで条件に関係なく実行されてるとか、オーバーロード出来てないメソッドがあるクラスをインスタンス化しようとしていてコンパイルエラーになるとか、staticメソッドなのにインスタンス化されているフィールドを使おうとしているからダメとか、ソースの穴になる部分に気づきやすくなった。

###まとめ
以上のことから、私は、この学習を通して、Javaの資格への見方が変わっっていた。
Javaの問題を解くことで、知識の見直しと向上が思った以上にできる。力をつけたいなら自分で作って悩むことも大事だが、例題にたくさん触れられる今回の機会も、とても為になる。今、私が思うことは、Javaやりたい初心者は、みんなJava SE 7/8の資格取ったらどうかと！
言われなくてもやってるわ！という方はたくさんいらっしゃるかと思いますが、まだ、資格に手を出していない方がいたら、是非お勧めする。
資格で知識の証明ができるし、更に自身の知識の見直しやスキルアップにも役立つので良い。私は、Silverも勉強してみたいと思った。

年末年始、長期休日を取れる方は、是非、資格取得に励んでみるのも良いかと思う。ちなみに私の受験したJava SE 7/8 Bronzeは自宅からのオンライン受験が可能なので、年末年始、外出したくない方でもいける。

ちなみに私の資格試験の合否はというと、、、、


![1189863.jpg](https://qiita-image-store.s3.amazonaws.com/0/235933/5f8ffbe5-8c42-cd9f-a648-7f20e3b66bc9.jpeg)






合格だ。
以上。