Java SE Bronze(1Z0-818)を取得してみた
1. 前書き
業務で Java が必要になったのですが、Java を書くのは新卒の Android でやって以来7年ぶりでほぼ覚えていないので、一度基礎からやり直すことにしました。
目標としてわかりやすいのが資格なので、これを順に受けてみることにしました。ちなみに Java の試験は3つあり Bronze, Silver, Gold とわかりやすい名前です🥇🎖️
Bronze は日本のみですが、業務経験が乏しいのにいきなり Silver は少しハードルが高いなと思いました。
Java の資格も定期的にアップデートされており、Silver と Gold は 17 対応ということで、覚える範囲も増えています。Bronze(1Z0-818)も2020年に更新されてはいますが、一旦は体系的に学べそうな Bronze を挑戦することにしました。
2. Java SE Bronze(1Z0-818)とは?
長いので省略して記載していましたが、正規名称は「Oracle Certified Java Programmer, Bronze SE」です。
実際にやってみて思ったのは、Java の基礎的な知識を組み合わせる問題が多かったです。例えば、前提として以下の知識を持っていて
継承
オーバーライド
オーバーロード
それぞれはそんな難しい概念ではないですが、これを組み合わせたコード問題が聞かれたりします。
3. 勉強の教材
Java の資格界隈には黒本・紫本・白本と色で呼ばれる種類の本があり、基本的にはこれのどれか、または複数をやる人が多いらしいです。
結果として、一番上にある黒本のみで勉強しました。
ちなみに Udemy などで問題集が探してみたところ講座などはありましたが、古くかある資格だからなのか問題集は書籍のほうが充実していました。
「本だと問題と回答を行ったり来たりするのが面倒」というレビューを見つけたので、電子版で購入してiPad上で Goodnotes と2分割で勉強しましたが、大変効率がよかったです!
また、一部の動作は WEB 上でサクッと Java を動かして確認していました。Paize が提供する実行環境がおすすめです。
本の内容はプログラミング経験者であれば、基本的なJavaの書き方や固有の動作を覚えるだけでコード部分は簡単だと思います。一部の概念を覚えるものもありますが、そんなに難しくないです。トータルで10-15時間くらいを1週間かけて取得しました。
81%の正解で合格はできましたが、もう少し点数取れたかなという温度感です。ただ、問題の1割くらいは本に載ってた?のかわからず自信がなかったです。
4. Java の変だと思ったところ
Java の基礎的な勉強を通じて、言語間の差分を感じれて面白かったです。むしろ Swift に慣れ過ぎてしまっているため、自分がおかしいのかなと思った部分もあります 😂
箇条書きにすると以下です。
文字と文字列が違う(charとString)
switch の break 忘れの挙動(そのあと全部が呼ばれちゃう)
クラス内にある static なものを同じクラス内の通常の関数から呼べる
インターフェースの定数は値が必須
`==` ではない `equal` を使う
一番気になったのは以下の for 文の使い方です。
for (;;) {
// 無限ループ内のコード
System.out.println("This will print forever");
}
for 文の中のものを省略してかけるため、これでコンパイルも通ります。
5. 終わりに
黒本のみで不安な人は紫本も合わせて購入することをお勧めします。2周やって9割以上解けるように慣れば準備は万端だと思います。
次は Silver を目指そうと思います!
貯金します!