物事を投げ出すのは私の得意技ですが、ここまで放置してしまうと(いっそ閉鎖し方が良いかな?)と思うこともあります。ただ、ときおりコメントを下さる方がいらっしゃりますので(このブログは何かしらの役に立っているのだろう)とポジティブに考え、
今回のように、たまには「何か記事を書こう」と思い立つことがあります。けれども最近はインフラ離れが顕著でして、ネタにできる記述情報がまったくありません。それどころか、久しぶりにヤマハルータのConfigを読んだ瞬間(……なんだっけ、これ…?)と脳がフリーズするほど、インフラ脳が劣化してしまいました。OTL
今回はインフラからは少し離れた「プログラミング」に関する記事です。とはいえ、プログラミングの技術メモを残せるほど、私は経験豊富ではございません。ですから今回は、先日合格しましたプログラミング試験「
受験のきっかけプログラマに転向してまだ未熟な私は、C#.NETの開発経験はありますが
Javaの開発経験がありません。JavaもC#.NETもオブジェクト指向プログラミングですから「C#のコードが書ければJavaのコードも書けるよ」と、経験者からよく言われたものです。今となっては、その意味はたいへん理解できます。けれども当時は
(同じとはいうけど、JavaとC#って何が違うの?)という疑問が拭えませんでした。
そんなある日、Javaエンジニアの友人から
「プログラマならデザインパターンは把握したほうがいいよん」とアドバイスを受けまして、ではデザインパターンを学ぼうと本屋へ駆け込みました。ところが、私が手にしたデザインパターンの入門書は、サンプルコードがJavaで書かれておりました。それだけでなく、オブジェクト指向プログラミングに関する技術書の大半が、Javaで書かれているじゃありませんか。
「もしかしてオブジェクト指向プログラミングを仕事で扱う以上、まずはJavaを知っておかないとマズイ…かも?」と、焦った私はJavaを学ぶことを決心。こうして白羽の矢が立ったのが「
Oracle Java SE8 Silver」でした。
言うまでもありませんが、当時はJavaの基礎を学ぶことが目的でしたので、Goldは一切視野に入れておりませんでした。そもそもGoldに関しての私の認識は
「Gold?パカなおれにGoldなんかムリムリw」と、まったく意識していませんでした。
こうしてSilver試験の勉強を始め、なんやかんやあって合格。正解率は91%でした。91%といえば、過去私の歴代得点ランキングの
上位3位にランクインします。ちなみに1位は普通自動車免許で叩きだした筆記試験の98点、
2位はボウリングの96点、そして3位がSilverの91点(%)デス。ボウリングへたれ杉ワロリンですね。。(´・ω・`)
それからしばらく、次の試験を受けるでもなくボーッとした日々を過ごしておりましたが、何気なく入店した本屋にて技術書コーナーをフラついていました。すると、私の目にある一冊の本が入ってきました。
Goldの紫本でした。(そういやGoldってどれだけ難しいのだろう?)と、おそるおそる紫本を手に取り、中をペラペラとめくりました。
(……うわ難しそう。……でも、ちょっとだけ挑戦してみたい…
かも…?)
という、この
「かも?」の部分がGold受験のキッカケでしたw
使った教材私が利用した教材は、以下の3つです。
1.オラクル認定資格教科書 Javaプログラマ Gold SE 8(紫本、初版)
2.徹底攻略Java SE 8 Gold問題集(黒本、初版)
3.Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミング
1.オラクル認定資格教科書 Javaプログラマ Gold SE 8(紫本、初版)Silverのときは「黒本→紫本」の順番で勉強を始めましたが、今回は「紫本→黒本」の順番で勉強を始めました。理由としましては、まずはGoldが出題する試験範囲の基礎をしっかり身に着けておきたかったからです。紫本は黒本に比べると「試験特化型」ではありませんが、それでも「
Java Goldの基礎を一通り学ぶ」ためには最適な本です。
おそらく、Goldの試験範囲を一通り把握されている方は、紫本による学習をスキップしていただいて問題ないと思います。一方、私のようなSilver上がりの方、またはJavaをしっかり学びたい方は、ぜひとも紫本を一周していただければと思います。紫本を一周するかしないかでは、次の黒本への理解度が全然違います。
それにしても黒本が発売する前は、この紫本しか存在しなかったワケですから、黒本を使わずに紫本と白本だけで合格した方は、本当にすごいと思います。心から尊敬。。。
2.徹底攻略Java SE 8 Gold問題集(黒本、初版)最強の本です結論からいえば、
黒本があれば試験に合格できます。Silver同様に、黒本は「超」がつくほどの「試験特化型」です。とくに黒本の「総仕上げ問題」と酷似した問題が、本番の試験において6~7割は出題されました。これにはホント助けられました。
ですが、それ以上に助けられたのは「
分かりやすい図説」でした。
中でも、NIO2の「
入出力の基本となる4つの抽象クラスの図説」には、ホント感心しました。紫本でNIO2を学習したときは、図説はあったものの
私個人の理解力が低かったこともあり、理解に苦労しました。ところが黒本の図説を見た瞬間に「
あ、そういうことだったのか!!」とピンときました。
私もこのブログで図説を取り入れておりますが、黒本の図説はブログを書く側の人間としても、大変参考になりました。わかりやすい図説を描くことはたいへん難しく、技術をしっかり理解しつつ、かつ読み手側の目線を意識しなければ、シンプルな図説を描けないものです。黒本の著者はとても優秀な方なのでしょうね。
ちなみにAmazonにおいて、この本のレビューをチェックいたしますと「初版は誤記が目立つ!」という評価が目立ちます。たしかに目立ちましたが、正誤表を確認すればさほど問題ありません。
3.Javaプログラマーなら習得しておきたい Java SE 8 実践プログラミングこちらは、ラムダ式やストリームAPIに「
目を慣らすため」に買いました。勉強用というよりは読書用、いえ、ここではあえて「ラムダ式アレルギー克服用」と表現いたしますw
Goldではラムダ式、ストリームAPIと関数型インターフェースに関する問題が多く出題されます。オブジェクト指向プログラミングの文法とは、似ても似つかないこのラムダ式を初めて見たときは
(あ、詰んだ…)と思いました。けれども、この本を読み続けた結果、ラムダ式・ストリームAPIに目が慣れてきまして、だいぶ抵抗が無くなりました。
勉強法これは私の持論ですが、
勉強方法に正解は無いと思います。脳科学的に効率の良い勉強法は必ず存在すると思いますが、全ての人がソレを素直に受け入れて、実行に移せるとは到底思えません。「
青いペンでメモすると記憶力が高まるヨ」と言われたことがありますが、「そうなんだ有意義な情報ありがとう」
(ペンの色にこだわるヒマあんなら一行でも多くコウデングしろやぁぁぁ!!・`ω´・)と、オチョコな私は思います。
他人の勉強方法を真似て、それが自分にピッタリの勉強法ならぜひ取り込むべきです。でも合わない勉強方法は、個人的には苦痛であり、結局長続きしません。自分なりの勉強法を確立して、諦めずに知識を積み重ねていけばGold試験は必ず合格できます。
そんな私の勉強方法は、以下の2つです。
1.テキストのサンプルコードを全てコーディング、コンパイルする
2.学んだことを「アウトプット」する
1.テキストのサンプルコードを全てコーディング、コンパイルする読んで字のごとくです。この勉強法の最大のデメリットは「超」がつくほど時間がかかることです。短期間で合格を目指される方にはオススメできませんが、時間がある方には絶対オススメです。
私はGoldを勉強していく中で、色々な章で
「詰み」を覚悟しました。前述のラムダ式もそうですが、Fork/joinのサンプルコードが紹介されたときは
(あ、詰んだ…ここまでか…)と絶望を感じました。ただ、一見ワケの分からないアルゴリズムを目にして、絶望を感じたとしても大丈夫です。実際にコーディングしてみると
「あぁ、なんとなく分かってきた」となります。
そうやってコーディングの回数を積み重ねることで、気づけばfor文と同じくらいの感覚でストリームAPIが使えるようになりますヨ。
2.学んだことを「アウトプット」するこちらもデメリットは時間がかかることです。ただアウトプットがもたらす効果は絶大で、理解をより強固にしてくれます。私はインフラブログを書いていた経験がありますので、アウトプット効果を身をもって体験していたのは幸運でした。
具体的なアウトプットの方法につきまして、私は
Excelファイルに技術の解説をメモする方法にしました。本当は各技術のメモをこのブログにアップすることを考えましたが、勉強中のメモは間違いや正誤の不確定要素が多いので、誤った情報を発信しかねません。よってローカルなメモとして残すにいたりました。

↑もしかしたら内容間違っているかも、でも気にしない、なぜならローカルメモだから
このような勉強を行いますと、紫本・黒本を1周したころには大抵のことは理解できるようになります。なお、私の場合はこの勉強法が良かったのか、紫本・黒本ともに各章すべて1周だけで勉強を終えました。2周~3周したのは、黒本の総仕上げ問題だけでした。
黒本の総仕上げ黒本の総仕上げ問題(巻末とダウンロード版)は、必ず理解した方がよいです。前述もしましたが、本番の試験は黒本の総仕上げの酷似しています。
私は黒本の総仕上げ問題を「試験直前の実力試し」としてではなく「
今まで通りの問題集」として勉強しました。一問一問をコーディング・コンパイルして、正解を見て納得するまで理解。おそらくですが、85問解き終わったころには150分はゆうに超えていました。時間切れもいいところですね。
ちなみに紫本の巻末問題は挑戦していません。Silver試験のときも紫本の巻末問題があまり出題されなかったので、おそらく黒本だけで問題ないだろうと思ったからです。
公式サンプル問題Oracleの公式サイトには、Goldの「サンプル問題」が20問ほど公開されています。また、Upgrade試験の問題も20問公開されており、こちらもGoldの問題と類似していることから、二つ合わせて40問の公式サンプル問題が無料で体験できます。こちらも試験前にぜひ受けることをお勧めします。
・Java SE 8 Programmer II (1Z0-809)
・Upgrade Java SE 7 to Java SE 8 OCP Programmer (1Z0-810)
Upgrade試験の20問の中には「選択肢から当てはまるもの全てを選んでください」といった、選択肢の中に存在する正解数が隠された問題がありました。通常のGold試験では、そういった問題は存在しませんのでご安心していただきたいと思います。これらの40問で8割以上の正解を導き出せれば、本番でもほぼ合格間違いナシだと思います。
…なんて言いながら、私は通常のGoldサンプル問題では90%の正解率でしたが、Upgradeサンプル問題では75%でした…。
試験本番繰り返しですが、試験本番では黒本の総仕上げ問題に類似した内容が多数出題されます。ですから、黒本の巻末問題+ダウンロード問題を繰り返せば、基本的には合格できると思います。
出題傾向としましては、やはり「ラムダ式、ストリームAPI、関数型インターフェース」に関する問題がたくさん出ます。あとNIO2の問題がわりと多かった印象でした。とはいえ、NIO2のコードの中にもラムダ式が混ざっていることがありますので、基本は
ラムダ式とゆかいな仲間たちは常に出題されると思って差し支えないかもしれません。
その他の技術については、小出し小出しに出題されました。インナークラスやJDBCの問題は3問前後出題され、「アサーション」の問題は3問出ました。なぜか「アサーションの問題が3問出題された」ということだけは鮮明に記憶に残っています。ふしぎ!!
あとSilverに比べて、Goldは全体的に設問のコードが長いと言われており、たしかに長いです。ですがよく読んでみると「
Getterが記述されただけのクラス」を扱った設問が多いゆえに、設問のコードが長くなるだけですので、あまり構えなくて大丈夫かもしれません。またGoldでは全体的に「ひっかけ問題」が少なかったように思えます。そういう意味ですと、Silverの方がよっぽど引っかけが多かった印象があります。
こうして私は、試験時間は40分を残して試験を終えました
結果、正解率「87%」で合格いたしました。
最後に私はこのGoldの勉強期間中に、知り合いのエンジニアさんから
「一緒にプロジェクトをやりませんか?」とオファーを頂きました。
その方は「社会人は利益を求めず、世の人様に貢献すべきだ!」という独自の哲学と、確固たる信念を強く持った方でした。そういう方から個人的なプロジェクトのお声をかけていただいたことを、私は大変光栄に思いました。
ところが、そのプロジェクトに参加させていただいたものの、Gold資格の勉強中ともあってプロジェクトに費やす時間がとれず…。結局なにも貢献できていない自分がいます。
こういう経験をしてしまうと
「資格とは何のために存在するのか」と考えさせられてしまいます。
資格とは「スキルの証明」であり、
それがゴールではないと思っています。大事なのは「
スキルを証明し、それからなにをするか」ではないでしょうか。それなのに私は、誘われたプロジェクトをそっちのけにして、Goldの取得に必死になってしまいました。
本末転倒とは、まさにこのことでしょう。
資格を取る真の意味について、私は今回ほど考えたことはありませんでした。
もしこの記事を読んでいる方の中で、Gold試験に挑戦されている方がいらっしゃいましたら、ぜひGoldに合格していただいて、そしてその後に続く「
Goldをどう活かすか」までを意識されていただければと思います。
それでは皆様、Gold試験がんばってくださいましw!!! d(^ω^)b
スポンサーサイト