Java試験」カテゴリーアーカイブ

オラクル認定資格試験 Java SE8 Gold 受験してきました。

oracle-certified-java-programmer-gold-se-8

オラクル認定資格試験 Java SE8 Gold 受験してきました。

実は受験したのは今年(2019年)の1月でしたが、いろいろあって忙しく今の投稿となりました。
昨年8月にSilverに合格してからなんやかんやあって、だいぶ経っていました。
受験数日前にインフルエンザにかかり、当日は病み上がり状態でまだお医者さんからも外出許可が出てない状態だったのですが、こっそり出かけてササっと受けてきました。

感想としては全体として「相変わらず難しいな」です。
私は試験勉強は集中してやりたい方なので、本格的に試験対策の勉強を始めたのは受験の1カ月半ほど前でした。
勉強方法はシルバーの時と同じ「紫本」と「黒本」の徹底攻略です。

今回実際に受験してみて「おやっ?」と思ったのは上の教科書問題集類で目にしたことのないパターンの問題が3つほどあったことです。
多くの受験経験者の方たちがネットに書かれているように「紫本」と「黒本」を何周か行って完璧にしておけば十分であるというのが通例で、シルバーの時も特に目新しいパターンの問題というのはなかったと思います。
しかし今回は本番で「紫本」「黒本」には載っていないあきらかに新しいパターンの問題に出くわすことになりました。

ご存じのように、ゴールドの試験になると普通にソースコードや問題文をイチから読んでその場で理解し考えていたのでは絶対的に時間が足りなくなります。
(150分で80問を回答しなければならないので、単純計算でも一問当たり2分掛けていることはできないということになります)
ではどうするかというと「紫本」「黒本」をやりぬいて問題を記憶するレベルにしておくことが実際問題として必要となってきます。
本番では各問題の最初の何行かを読み、念のためささっと全体を見渡す程度で過去に経験した同じパターンの問題を思い出しながら対応していくといったテクニックが必要になります。
しかし、本番でまったく過去に見たことのない問題に遭遇してしまうとそういった手法が使えません。これらを初見の問題としてまともに解いていこうとすると大変な時間がかかってしまうことになります。
今回記憶する限り3問、このような問題が出てきて面喰いました。
最初はやはり、まともに問題コード⇒問題文を読んで考える、という対応で頑張ってしまいましたが、おそらく1問目で15分以上かけてしまった感じがします。
ここで我に返り、受験の基本「わからない問題は後回し」の鉄則を思い出し、この手の問題を後回しにして他の問題に注力する方針に切り替えました。
結果としてこの方法が功を奏し、時間いっぱい使いましたが、終わってみれば「ほぼできたんじゃないか」という実感を得ることができました。

そして結果は合格。

ただ思ったより正答率は低く84%にとどまってしまいました。(合格ラインは65%)
配点の問題か(どの問題が何点か、という情報は公開されておらず、高配点の問題を間違っていれば大きな減点になります)、内心焦ってて凡ミスを少なからずやってしまっていたんだと思います。

ちなみに、今回私が感じた「新機軸」(新傾向)の問題が出た?という感想について、試験後にネットで調べると同じような感想を表しておられる方が何人かいらっしゃいました。

結論としては、
(この試験に限らない)基本的受験テクニックとして
「わからない問題は後回し(あるいはあきらめる)」
という方針をあらかじめ再確認して現場で臨機応変に対応できるよう、心がけていただきたいということかと思います。

また細かい注意点として、出題される問題のソースコードは平均して20~30行くらいある場合が多く、出題パターンとしては同じでもクラス名・変数名・メソッド名など(識別子名)は当然のように変更されているので、上のような読み飛ばすテクニックを駆使しても読解にはそれなりに時間がかかると思います。
このためそういったどうしても時間がかかる問題以外の問題で時間を節約しなければなりません。
選択式の問題(数個の選択肢から1~3個を選ぶ、など)は本当に10秒~数十秒程度で完了できるものが多いため、ここで確実に時間を節約するとともに絶対に取りこぼすことの無いよう、十分対策しておくべきです。
(選択式問題は問題集をやっていればほぼ「そのまま」のものがでます。10秒で「回答」するではなく「正解」しなければなりません)


余談ですが、
ここでこの業界における資格取得について考えてみたいと思います。

資格や試験そのものに対して評価しない立場の方がいらっしゃいます。
自分自身も過去に取得した資格がこの業界で役に立ったという経験がほとんどないので、それほど資格について大きな期待を持っているわけではありませんでした。
また、実務経験や実績が資格より何十倍も重要視される実態を何度となく見聞きしてきました。
実際、私自身もそういった見方は正しいというように思っていて、資格自体は「無いよりはマシ」程度のモノかなと考えていました。
そして基本的には今もその思いは変わりません。
ただ本資格については取得後のこの数カ月のあいだに、お仕事のオファーをはじめとして、思いもかけない方面からの反響があったりして、すでにその効果について実感することができています。

そして試験勉強を通じてJavaの新しい技術を知ることができたり、今までの知識をクリアにできたり、明確に整理することが出来たりで、シルバーからこのゴールドに至るこの試験の受験をして本当に良かったと思っています。
受験勉強から合格、そして今日場での経験は「無いよりはマシ」というレベルをはるかに超えています。


皆さんもトライしてみてはいかがでしょうか?

※ 2019年6月、SE11対応の試験が開始される旨がアナウンスされました。現在受験を検討しています。また経験談を書いてみたいと思います。

JavaGold試験対策教科書の紫本11章(JDBC)サンプル使用の際の注意点

JavaGold試験対策教科書(紫本)11章のサンプル(Sample11_1.java)を実行する場合、ローカルにMySQLサーバーをインストールする必要がありますが下記の点に注意が必要です。

11章の説明に(442p)
”本書の開設は、接続するデータベース製品を「MySQL Communication Server 5.6」として進めます。”
とありますので、
間違えずに正しいバージョン5.6の製品をインストールする必要があります。
新しいバージョン(2018.8.20現在、8.02)がリリースされていますが、そちらをインストールしても本書のサンプルソースに付属しているJDBCドライバが使えないようです。

下記ページを開き、
Download MySQL Installer
下部のリンクボタンから正しいファイル(バージョン5.6)をダウンロードしてインストールします。
MySQL Communication Server 5.6

私は最初深く考えず、「新しいもの」のほうが良いと思い、最新版をインストールしてしまって実行時にエラーが発生し動きませんでした。
(もちろん事前にサンプルソースに付属しているJDBCドライバ(mysl-connector-java-5.1.26-bin.jar)をCLASSPATH環境変数に登録しておくなどの準備も必要です)

Javaのアクセス修飾子について

親クラスのメンバー(フィールド、メソッド)が子クラスから
アクセスできるかどうかの判断について記します。

1.4つの「アクセス修飾子」
  • public
  • protect
  • 空白(何もつけない)
  • private
    • 識別子:
    • public
    • protected
    • 空白
    • private
    • 公開範囲:
    • 広い
    • 狭い
    覚え方は「ぱぶ(pub)/ぷろ(pro)/でふぉ(def)/ぷり(pri)」で(順番が重要)。

2.「アクセス修飾子」の意味を覚える
public
他のクラスからアクセスできる
public		int	num3; // public修飾子を付ける
protected
子クラスからアクセスできる
protected	int	num2; // protected修飾子を付ける
空白(何もつけない)
同じパッケージ内の子クラスからのみアクセスできる
            int	num1;		// まったく修飾子を付けない
private
そのクラス内でのみアクセスできる
他のクラスから見えない
private	int 	num;		// private修飾子を付ける

3.使用例1 ー 別のクラスからの参照

ファイル:Super.java

    package smplepkg; //サンプルパッケージ

    public class Super {

        private    int 	num;

                   int	num1;

        protected  int	num2;

        public     int 	num3;

        public int getNum() {
            return this.num;
        }

        public void setNum(int n) {
            this.num = n;
        }

    }

ファイル:Sub.java

    import smplepkg.*; //サンプルパッケージのクラスをインポート

    class Sub extends Super {

        Sub() {

            //System.out.println(num);  // numはprivateなので見えない
            //System.out.println(num1); // numはデフォルトなので他のパッケージからは見えない
            System.out.println(num2);   // num2はprotectなのでSuperを継承しているため見える
            System.out.println(num3);   // num3はpublicなので無条件に見える

          }

      }
SuperクラスとSubクラスが別のパッケージの場合です。
ファイルSub.javaの先頭でsamplepkg.Superをインポートしていますが
Subクラスはsamplepkgには属していません。
なぜなら、ファイル冒頭で以下のパッケージ宣言、

package samplepkg;

が行われていないからです。

ファイル冒頭にpackage宣言がない場合、
そのファイルで宣言されているクラスは
デフォルトパッケージ(標準のパッケージ)に属していると判断されます。

したがって、この場合、

samplepkgパッケージのSuperクラス

デフォルトパッケージのSubクラス

は別のパッケージに属していることになります。
ファイル冒頭のpackageに関する宣言は注意深く確認する必要があります。

4.使用例2 ー 同じクラスからの参照

ファイル:Super.java

      3.と同じ
      ...

ファイル:Sub.java

    package smplepkg;	// (1)

    class Sub extends Super {

        Sub() {

            //System.out.println(num);	// numはprivateなので見えない
            System.out.println(num1);	// num1はデフォルトなので同じパッケージからは見える
            System.out.println(num2);	// num2はprotectなので同じパッケージからは見える
            System.out.println(num3);	// num3はpublicなので無条件に見える

        }

      }
SuperクラスとSubクラスが同じパッケージの場合です。
今回はファイルSub.javaの先頭で以下のパッケージ宣言、

package samplepkg;

が行われています。 行(1)
親クラスであるSuperクラスのメンバーnum1(アクセス属性がデフォルト)にアクセスが可能になりました。


†メンバーには他に「ネステッドクラス」などありますが本稿では割愛します。
†「アクセスが可能」などの表現については「継承している」「参照可能である」「見える」「可視/不可視」など、違った表現が用いられることがあります。

オラクル認定資格試験Java SE8 Silver受験してきました

オラクル認定資格試験 Java SE8 Silver 受験してきました。

Javaを始めたのは一か月ほど前からですが、
もともとC言語のプログラマとして経験がありましたので
Javaはとっつきやすく、今回の試験対策のための勉強期間は
・3週間ほど前に約一週間、
・その後いろいろあって一週間ほどあいだをあけて、
・本当に真剣に集中して学習したのは試験直前の一週間
実質合計
約二週間
です。

最初に紫本を見た印象で「いけそう」な気がしたので
Bronzeは飛ばしてSilverからの受験を決めました。

教材は定番の
紫本(教本)
黒本(問題集)
の2冊です。

たくさんの人が経験談を公開しておられるので詳しくはそちらのほうを参照していただくとして、
今回の受験を通して感じたこと、見聞きしたこと、を書いてみたいと思います。

まず結果は、、、

合格しました。

正直言うと、試験が終わった瞬間は「満点いったんじゃないか」と思いました。
それくらい問題自体はやさしかったです。
紫本や黒本で勉強していると、いろいろ難しいことが書いてあるし、載っている問題もややこしいのがあって、
「こんなに難しいのか」と不安になるかもしれません。
しかし、実際はそこまで難しい問題は出ず【とりこし苦労】に近いものを感じました。
それでも、紫本・黒本の問題はひととおりやっておいたほうがいいと思います。
まったく同じ問題が何問か出てびっくりしました。
(もちろんクラス名やメンバ名などは違っています)

試験は一台のパソコンに向かって画面に表示される問題を読み、その下に表示される選択肢から適当なものを選ぶという方式です。
各問、ラジオボタン(1つ選ぶ場合)またはチェックボックス(複数選ぶ場合)があって
チェックボックスのほうは例えば「2つ選びなさい」といった場合に、誤って3つ選んでしまうと
「選択した項目が多すぎます。他の項目のチェックを外してから選択してください」みたいな警告をしてくれます。
(「選んだ項目が少ないとき」のケースは経験しなかったですが、たぶん警告してくれる?)

思ったより”フレンドリー”だと感じました。

試験終了後20分くらいで合否通知が来ましたが正解率は94%と微妙な感じです。
オラクルの「試験結果レポート」に間違った問題に関して教えてくれます。
私の場合、
(1)「クラス」「パッケージ」「多態性」に関する問題
(2)「break, continueの使用」
で間違いがあったとのことでした。

(1)はC言語には無いトピックなので、「そういうこともあるか」という感じですが、
(2)はC言語にあるものと同じ用法で、よく使う表現なのでここで間違ったのは俄かには信じられないです。
「どの問題を、どういう風に間違ったのか」知りたいと思いました。

試験時間に関しては、問題の数が77問と多く、あまりゆっくりやっていると150分(2時間30分)は気が付くとあっという間に終盤となってしまうかもしれません。
「2時間半は長くて、時間は余る」という方も多いようですが、私の場合は全部回答した段階で残り30数分、見直しをしてたら丁度よい感じで終了時間になりました。
画面の上のほうに「残り時間」と「今何問目か」が表示されているのでペースを調節するようにして下さい。

基本的に一問回答するごとに前の問題は消えてしまい順々に次の問題が表示されていきますので前の問題は見れません。(戻るボタンがあって戻ることはできます)
「気になる問題」にチェックをつけておいて後でその問題だけ見返すことができるという機能が付いていますので、あとで見直ししたい問題は忘れずにチェックしておきましょう。

コンピュータの画面は普通のPCモニター(それほど高解像度ではない)なので、比較的長いソースコードが含まれる問題になると、問題のソースコードが全部その画面一枚内に入りきらないので「下の選択肢を見て、上にスクロールしてソースコードの該当箇所を見る」という操作が必要です。
ちょっと不便ですので覚悟しておきましょう。

カンニング対策(?)は厳重です。
持ち物、時計、スマホ(電源オフ)、はカバンに入れて指定されたロッカーに収納することになります。水さえ持ち込めません。今回、
カッターシャツの長そでをロールアップしていたら(その中に何もないか)伸ばして見せるよう言われました。
ズボンのポケットも前後ろともチェックされました。
メガネは可です。

・受付が済むと写真を撮られます。「試験結果レポート」などに後々表示されることになりますので気を付けてください。

・今回は何も言わなくてもホワイトボード・ペンを貸してくれました。

最後に、
試験直後に合否判定を確認したい方は試験日当日までにCertViewに初回認証しておく必要があります。
しかしこの認証画面で正しい情報を入力してもエラーになることがあるようです。
Oracle Testing IDとメールアドレスを入力するのですが、正しいものを入力しているのにエラーになり、そのエラーが3回続くとロックされて自分では認証できなくなります。その場合はオラクルにメールで個別に認証してもらうしかありません。
私も今回このケースにはまり、オラクルにメールすることになりました。
試験前夜にこの現象に直面し依頼メールを送ったところ翌日(受験当日)の朝にアッサリ認証完了の連絡をいただき、事なきを得ました。
依頼メールに書いた情報は入力画面に入力していたものですのでそれで問題なく認証できたということは入力していた情報に間違いがなかったことになります。
今回は平日で営業日でしたが休日なら次営業日の対応になっていたのかもしれません。
試験直後に合否判定を確認したい方は念のため余裕を持って認証しておくと良いでしょう。

参考:
手続きなどについて親切に解説してくださっています
初心者の方向け

次は、Goldです。


出撃~

私に期待しないで♪

梅田のコンコース

いつものカレー屋で早めの夕食

ダイソーで電池買う

あやしい・・・

マクドで休憩

ヨドバシ前からWINSに向かう道

このビルか?

あやしい...

終わった。

おみやげに551の豚まん買う