Javaの指導にて

最近、新人に偉そうにもJava未熟者の私が教育する場がありました。
そこでわかったことを書いておきます

  • なぜJavaオブジェクト指向であったり、マルチスレッドであったり、例外処理に強かったりするような特徴を備えることになったか?を過去の改善から生まれてきたことを説明する。
  • オブジェクト指向の説明は抽象的な階層関係よりも保守容易性の観点から説明する。
  • 半導体を組み合わせて電子機器を作るように、APIコンポーネントといったプログラム部品を組み合わせて作るイメージを図を使って説明する。
  • String s = new String("hoge"); のようなインスタンス生成と参照に対して実際メモリ上にどんな風に変数やオブジェクトが割り当てられるか順を追って説明する

ちなみにメインは「オブジェクト指向でなぜつくるのか?」で、歴史的な背景は「Javaの10年」、若干細かいことは「SunJava2認定ガイド」を一部参考にさせてもらいました。

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

オブジェクト指向でなぜつくるのか―知っておきたいプログラミング、UML、設計の基礎知識―

Javaの10年

Javaの10年

Sun Java2認定ガイド 310-035&310-027対応

Sun Java2認定ガイド 310-035&310-027対応

まぁ、これだけだと実務を使う上では全然足りないのですが、「Javaがよーわからん!」という人の悩みをいくらか解決してあげられると思います。そこから先は自分でガンガンやってもらえればいいわけですし。

で、反省点はメモリ周りの改善ポイントをうまく説明できなかったこと。
「Cだとメモリを壊す恐れがあるけど、Javaはその心配がない」という説明に対して、
「メモリを壊すという意味がわかりません」という返答が。
そこでアドレスがうんたらかんたらって説明したからいきなり?モードになったらしくそこから行き詰ってしまいました。でもメモリ云々を突き詰めていくとハードウェアに関しても説明しないといけないんですよねー。
何かうまく説明できる資料をみつけないと。

S2でのお仕事が決まった!!

人生初めてお仕事としてS2を使うことができるようになりました(ぱちぱち)。
3週間で設計・製造・テストを15画面に対して実装する必要があります。
リリースは3末。納期は絶対に延期できません。
環境は、S2+S2JSFS2Daoで、DBはPostgreSQL、APはTomcat5を予定しています。
当初、要件定義と外部設計はGoyaを参考にマジカや操作マニュアルという形で私が全て片付けておいたので、大丈夫かなとタカをくくってたのですが、思わぬところに落とし穴が。
Java初心者の新人にS2のよさ、仕組み、プロダクツの使い方の説明が結構大変そうなんです。
やっぱりJava開発経験がある人にDIとかを説明するのは結構楽だと思うんですけど、Javaのプログラム自体を組んだことがない人に説明するってなると「なんでそんな面倒なことをするの?」と思われちゃうんです。というのも今日購入したSeasar本を読ませたら、まったく理解不能だったようでそういう質問がたくさんありました。まぁ、仕方がないといえば仕方ないんですけどねぇ...。
# でも一番きついのは実は僕自身がJavaとS2の初心者ってところかもしれない(爆)

さぁて、道のりは険しいぞぉ(ToT)

今からやるのならプレゼンテーション層はS2JSFとMayaaのどちらがいいか?

S2JSFのほうがEclipseプラグインもあるし、書籍もネット上の情報もたくさんあるのでS2JSFでいこうかな思ってるんですが、最近のはてなやWeb+DBプレスVol.31を見るとMayaaも捨てがたいので迷い気味。