SSブログ
プログラミング言語Java教育 ブログトップ
前の10件 | 次の10件

第22期Java研修を開講 [プログラミング言語Java教育]

私にとって、通算第22期になるJava研修を今日から開講します。研修の定員は12名なのですが、今回は受講生は6名です。22回の中で最小人数での開講となります。過去、最も多い時には、20名で始めたこともありますが、最後は10人以下になることがほとんどです。

今回もテキストは、従来通りです。『プログラミング言語Java第4版』『Effective Java第2版』、それに、拙著『Java 2 Standard Edition Tiger』です。内容としては、Java 5.0ベースとなります。

Java 8の時代に、いまさら5.0と思われるかもしれませんが、Java言語そのものは今までの18年間で段階を経て発展しているため、その発展に関する知識がないと、Java 8そのものをきちんと理解できなかったり、実際の開発業務では、古いバージョンによる開発を強いられたりもします。

6名で開始して、何名が修了するかは分かりませんが、第22期が終わる時には、リコーグループで延べ100名の修了生を送り出したことになるはずです。そして、第23期は、Java 8ベースの教育に衣替えすることになるでしょう。
コメント(0) 

Java研修の目的 [プログラミング言語Java教育]

2000年にJava研修を始めた時の目的は、社内の技術者が社内の技術者を教えるというコースを立ち上げるということでした。そのための、最初として、私が始めたわけです。

現在も続いているJava研修ですが、現在の目的は異なっています。現在の目的は、以下のことを学ぶことです。
  • Java言語をきちんと学び、将来、他の言語を学ぶ上での基礎を身につける(『プログラミング言語Java第4版』)。
  • API設計の基礎を学ぶ(『Effective Java 第2版』)。
これらを若い段階で時間を費やして学ぶことで、その後に、他の言語を学び・プログラミングする場合のベースを作るということです。

たとえば、最近の言語は、リフレクションの機構を持っているものが多いですが、Java言語のリフレクション機構をきちんと理解していれば、他の言語でも、何ができて、何ができないかを理解することが容易になります。また、他の言語で開発するとしても、Java言語でできる設計手法をなんとか取り込めないかと考えるきっかけにもなります(Programming into a language)。

Java研修の大きな欠点は、受講の強制力がないことです。ある意味長所でもあるのですが。研修のための予習は、平均すると月に50時間は軽く超えます。そして、その予習はプライベートで行わなければなりません。したがって、受講を希望する人だけを対象としており、会社として強制的に参加させることはないです(ただし、途中で脱落する人もいますが、私の部下になった新卒新人は、必ず参加してもらいます)。

予習は、プライベートな時間に行うので、受講生は様々な工夫をしながら予習しているようです。最近なら、スターバックスなどの外で予習する人が多いようです。人によっては、自宅がよいという人もいます。そして、一年間は、継続して学習するという習慣を維持し、一人では最後まで読み切ることはできない3冊のテキスト(合計で約1,000頁)を読み終わることになります。練習問題やGUI課題のプログラミングも合計するとおそらく10,000行以上書いていると思います。

最終回の成果発表会では、「デジタル時計が出ていて、Javaで書かれていること」という条件で、集大成となるGUI課題を作成してきてもらいます。みなさん、力作を作ってきます。研修の第2回目で簡単なデジタル時計を作成するのですが、なぜ、そんな簡単な課題に苦労したのかと思えるほと、素晴らしいアプリケーションを最後に見せてくれます。

今週の金曜日から第22期が始まります。第22期からは、年に1コースに限定するための期となります。まだ、終わっていない第20期と第21期が終われば、第22期だけとなり、月に1コースだけとなります。一方で、今月末から『Java8基本技術習得』コースを開講し、最新のJava8について学ぶコースとなります。ただし、受講対象は、今までのJava研修を修了した人達だけです。
コメント(0) 

第19期Java研修終了 [プログラミング言語Java教育]

私にとって、通算第19期になるJava研修が終了しました。19期は、一年の予定が14か月のコースとなってしまいました。最終回は、いつもの通り、研修の振り返り発表と創意工夫をこらしたデジタル時計をデモしてもらいました。

今回の修了生は、8名でした。これで、リコーグループで延べ72名が修了したことになります。現在は、第20期、第21期がまだコースとしてして開催されています。また、9月からは第22期が開講しますし、同時にJava 8のコースも開講します。今までの研修の実績は、こちらです。

本来は、12回で終了するコースなのですが、第19期は14回(つまり、14か月)で終了となりました。最後の『Effective Java 第2版』の第11章「シリアライズ」は、残念ながら十分に時間もなく途中で終了となってしまいました。

java19.png
第19期生(1名欠席)と私

コメント(0) 

Java 8の研修コース [プログラミング言語Java教育]

社内研修として、Java 8に特化した「Java 8基本技術習得Jコースを9月下旬から開講するのに先立ち、受講生の募集を社内で開始しました。定員12名に対して、募集2日目でほぼ埋まりました。

何回で終わるのか分からないので、トライアルとして今回は開講します。社内の「プログラミング言語Java基本技術習得」コースの修了生を対象としています。第1回目は、テキストとなる本の出版が間に合っていないので、第1回目分だけは、翻訳原稿を印刷して配布するという、ちょっと変則的な運用となっています。

使用するテキストは、下記の本の日本語版です。

Java SE 8 for the Really Impatient

Java SE 8 for the Really Impatient

  • 作者: Cay S. Horstmann
  • 出版社/メーカー: Addison-Wesley Professional
  • 発売日: 2014/01/24
  • メディア: ペーパーバック



コメント(2) 

9月から第22期Java研修を開講 [プログラミング言語Java教育]

第21期で最後にしようと思っていまがしたが、第22期Java研修を9月から開講することになりました。テキストは、従来通りのテキストを使用しますので、学ぶことはJava 6までの内容です。

Java 8に関しては、別途新たに研修コースを9月から開講する予定でいます。ただし、今までのJava研修を修了した人が対象です。基本的な事柄を学んでいる人達が対象となります。

社内では、Java研修のコース名は、「プログラミング言語Java基本技術習得」コースとなっています。ここでの「基本技術」というのは、「私から見て、このぐらいは最低限学んで日々の開発をしてもらいたい」という「私の基準」です。したがって、テキストである『プログラミング言語Java第4版』、『Effective Java第2版』、『Java 2 Standard Edition 5.0: Tiger』の3冊を全部学んでもらいます。

予習がかなり大変なコースであり、そのため、学習習慣を失った30代中以降のソフトウェアエンジニアの応募は、ほとんどありません。2014年度の新卒新人を対象としなかったこともありますが、第22期はわずか7名で開講します。

今までの研修実績は、こちらです。

コメント(0) 

会社での教育は、大学での授業ではない [プログラミング言語Java教育]

Java研修を2000年から始めた頃は、PC実習室で行っていました。ネットで何か調べものをした方が良い場合もありましたがが、その頻度は低かったのです。しかし、講義の内容を聞くことなく、キーボードを操作している人がいたりしました。

最近は、新人でもデスクトップではなく、ノートPCを業務用に配布されて、それを持ち出し可能になるように手続きしていたりします。そのようなノートPCの配布がなかった頃は、Java研修にノートPCを持ってくる人は非常に少なかったし、誰も持ってこないのが普通でした。しかし、やはり、持ってきたいという要望が強くなってきたので、持ってくることをOKにしていました。その結果、Java研修でも普段使用しているノートPCをほとんどの受講生が持ってくるようになっています。

しかし、自分が当てられないような状況だと、講義内容を聞くことなく、ノートPCを覗いていたり操作していたりする受講生が増えてきました。そして、質問すれば、ネットで検索して答えを探そうとしたりします。そういう受講生に限って、テキストの読み込みは浅く、理解していなかったり、テキストの内容を覚えていなかったりします。さらに、過去の講義中に説明したことも真剣に聞いていないから、「教えたでしょう」と聞いても、教えられたことさえ忘れているという始末です。

受講態度が悪いのは一部の受講生ですが、さすがに、この受講態度の悪さは目に余るので、第20期および第21期は、次回の講義から、全員が講義中にノートPC/タブレットの使用を禁止することにしました。

会社で行っている教育は、大学の講義のように授業料を払ってもらっているのではありません。したがって、受講態度が悪い人を、無理して受講させる必要はないと思っています。たとえ、それが、自分の部下であってもです。実際、過去には自分の部下であっても、受講継続資格なしと判断した人も何人かいます。
コメント(0) 

第18期Java研修終了 [プログラミング言語Java教育]

私にとって、通算第18期になるJava研修が終了しました。18期は、一年の予定が一年半のコースとなってしまいました。最終回は、いつもの通り、研修の振り返り発表と創意工夫をこらしたデジタル時計をデモしてもらいました。

当初は、12名で始まったコースでした。今回の修了生は、8名でした。これで、リコーグループで延べ64名が修了したことになります。現在は、第19期、第20期、第21期がまだコースとしてして開催されていますので、しばらく、金曜日はJava研修が続きます。

P1040860.JPG
第18期生と私

コメント(0) 

第2回Java研修OB・OG懇親会を開催します [プログラミング言語Java教育]

2013年8月13日に第1回を開催しました。第2回を予定通り4月5日(土)に開催します。詳細な案内は、Facebookの「Java 研修OB・OG」グループに幹事から投稿されています。Facebookのグループへ参加していない人は、直接私へ連絡をください。

第21期「プログラミング言語Java」コースを開講 [プログラミング言語Java教育]

今日から、おそらく今のテキストでの最後のコースとなる第21期を開講します。11名の受講生で、今年度の新卒新人が5名です。

第18期がまだ終わっていないので、第18期、第19期、第20期、第21期と同時並行開催となります。第18期は、2014年3月に終了見込みです。第19期は、2014年6月に終了予定です。

今までの研修実績は、こちらです。

『Effective Java 第2版』は、やはり初心者向けではない [プログラミング言語Java教育]

Effective Java 第2版 (The Java Series)

Effective Java 第2版 (The Java Series)

  • 作者: Joshua Bloch
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2008/11/27
  • メディア: 単行本(ソフトカバー)

Java研修では、『プログラミング言語Java第4版』と『Effective Java第2版』を学習してもらうのですが、基本的には、事前に予習してもらって質問を提出してもらい、それに答える形式で進めます。しかし、第18期は、受講生の希望により『Effective Java第2版』をきちんと読み進めていく形式で進めています。私自身も久しぶりに読み返していることになります。

読み返してみて、やはり初心者向けではないことを感じます。たとえば、次の段落は、項目12 「Comparableの実装を検討する」のp.63からの抜粋です。
この契約の数学的性質を取り去ってはいけません。equals の契約(項目8)と同様に、compareTo契約は、見かけほど複雑ではありません。1 つのクラス内では、どのような適切な順序関係であっても、compareTo 契約を満足します。equals と異なり、クラスをまたがっては、compareTo は機能する必要はありません。つまり、比較されようとしている2 つのオブジェクトが別々のクラスを参照しているのであれば、ClassCastException をスローすることが許されています。たいていは、ClassCastException をスローすることが、まさにcompareTo が行うべきことです。そして、クラスが適切にパラメータ化されていれば、ClassCastException がスローされます。契約は、クラス間の比較を排除してはいませんが、リリース1.6 では、Java プラットフォームライブラリーのどのクラスも、クラス間の比較をサポートしていません。
この「クラスが適切にパラメータ化されていれば、ClassCastException がスローされます。」の1文を読んですぐに理解できる受講生はいません。この1文を理解するのに必要な知識はすでに学んでいるのですが、その知識を応用して、すぐに理解するのは非常に難しいようです。

Comparableインタフェースがジェネリック型であるということ、ジェネリック型に対して「パラメータ化」するのとはどういう意味であるかということ、そして、実際にコンパイラがどのようなブリッジメソッドを生成するのかということを理解して初めてこの1文を理解できます。

教育の中では、この3点を誘導質問しながら、解説するのですが、そうやって解説されて初めて、受講生は理解できるようです。彼らは、『プログラミング言語Java第4版』をまるまる1冊学習済みなのでが、そのような状況です。したがって、いわゆる初心者本でJavaを学習しただけの人には、理解するのは困難だと思います。

追記(2014年1月4日):解説を書きました。
前の10件 | 次の10件 プログラミング言語Java教育 ブログトップ