So-net無料ブログ作成
検索選択
プログラミング言語Java教育 ブログトップ
前の10件 | 次の10件

第22期Java研修が終了しました [プログラミング言語Java教育]

2014年9月に開講した、私にとっては第22期となるJava研修が終了しました。6名の受講生で始まりましたが、5名が修了しました。その内1名は、派遣で来てもらっていた人ですので、リコーグループとしては4名が修了し、延べ94名が修了したことになります。

P1050451.JPG
第22期生と私

リコーグループ内での研修コース名は、「プログラミング言語Java基本技術習得」コースとなっています。コース名は、初心者向けコースという印象を与えるのですが、初心者向けではありません。

コース名が意味するのは、「業務でJava言語を用いてソフトウェアを開発するのであれば、最低限、これだけのことは学んで開発に従事する」ということであり、私自身からみた基準です。

第1期「Java 8研修」コース終了 [プログラミング言語Java教育]

P1050026.JPG
第1期修了生と私

Java研修の修了生を対象として、Java 8だけの社内研修の第1期が終了しました。テキストは、下記の書籍です。


全部で6回(半年)で終了する予定で開講したのですが、途中開催できない月が2回あり、最終的には8か月となりました。

毎月指定された範囲の章の内容に関する質問表の作成と、練習問題のプログラミングを行ってもらいました。提出に関しては、Google Driveで質問表を共有して記入してもらい、練習問題の解答については、各人がGitHub上にリポジトリを作成して提出してもらいました。

最終回は、従来のJava研修と同様に、最後にJavaFXを用いたデジタル時計をデモして終了です。そして、修了証書を授与して、記念写真。夕方は、懇親会を開催して、終わりとなりました。

第2期は、7月から開講する予定です。

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

4月18日(土)に、今年で第3回となるJava研修OB・OG懇親会を開催しました。昨年の第2回は、横浜キリンビール工場見学と懇親会でした。今回は、次のような2部構成としました。

  第1部 15:30〜17:20 技術セッションみなとみらい
  第2部 18:00〜20:00 懇親会(横浜中華街)

技術セッションでは、Java研修の修了生の一人が勤務しているAtlassianのオフィスで開催しました。
11146281_10206945743827513_5681683880949333336_n.jpg

Atlassian社のご厚意で場所を提供していただいたのですが、技術セッションが始まる前にオフィスを案内をしてもらい、0次会のビールも提供してもらい、ビールを飲みながら技術セッションを始めました。

技術セッションは、以下の3部構成としました。

[1] Atlassian社の技術・製品紹介(by Java研修修了生)
[2] Skeed社の技術・製品紹介(by Java研修修了生)
[3] Java研修の振り返り(私)

DSC_0064.JPGDSC_0084.JPGDSC_0129.JPG

第1部の終了後は、横浜中華街へ移動して、懇親会を開催しました。懇親会だけ参加した人もいて、総勢27名の懇親会でした。今回は、10年振りぐらいに会った受講生もいたり、今年修了生となった人もいたりして、楽しい交流会になったと思います。次回は、来年です。

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

2013年、2014年と開催してきましたJava研修OB・OG懇親会を今年も開催します。

【開催日】 
  4月18日(土)
【時間】
  第1部 15:30〜17:20 技術セッションみなとみらい
  第2部 18:00〜20:00 懇親会(横浜中華街)
【参加対象者】
  Java研修の修了生

参加を希望される修了生は、私宛にメールで問い合わせください。折り返し、登録サイトの情報を送ります。すでに登録サイトの情報を私からのメールで受け取っている人は、そのサイトで参加登録をお願いします。

第20・21期Java研修が終了しました [プログラミング言語Java教育]

2013年11月と12月に開講した(私にとって)第20期と第21期のJava研修が、1月17日に終了しました。最終成果発表会は、合同で行いました。

いつものように成果発表会では、最終課題としてGUIのデジタル時計を披露する必要があります。ただし、時計がどこかに出ているだけで良いという条件ですので、実際には、様々なアプリケーションだったりします。通常のJavaアプリケーションとして動作するものや、Androidアプリケーション、あるいは、GWTを使用したものと、様々でした。今回は、何らかのハードウェアを持ち込んで、それとの連携のデモが多く、見ていて楽しいものが多かったです。

成果発表会では、研修を振り返っての「プレゼンテーション」と「時計課題」で投票を行いました。結果は、社会人2年目である受講生がほとんどの中で、受講生の中で最年長の人が、どらちでも最高得票を獲得しました。

java20.png
第20期生


java21.png
第21期生


Java研修(7) [プログラミング言語Java教育]

2010年1月から第11期として、リコーで開講したJava研修(過去の実績はこちら)ですが、明日で、第20期と第21期が終了します。成果発表会を2コース合同で行いますので、18名が修了します。

第20期と第21期は、主に2013年度の新卒新人を対象としてきましたが、新卒新人以外の人もおり、最年長は57歳(第21期)の人です。リコーグループとしては、第11期から第21期までで、のべ90名が修了することになります。そのうち、5名はすでに転職しています。

現在はJava 8が登場しており、今後はJava 8が主流となっていくでしょう。Java研修は、Java 1.4および1.5の内容となっていました。今までテキストとして使用してきた『プログラミング言語Java第4版』は、Java 8に対応して改訂される予定はありません。そのため、リコー内でのJava研修は、第21期で終わりです。

現在、リコーITソリューションズ主催の第22期が開催されています。今後も、古い内容で続けるとしても、こちらのコースのみ残ることになります。リコー内では、開催しません。

Java 8に限定した研修は、トライアルとして現在開催しています。ただし、受講資格は、従来のJava研修を修了した人だけとなっています。

デザインパターンを学ぶ [プログラミング言語Java教育]

一年間のJava研修では、最後の3、4回で『Effective Java 第2版』を学習するのですが、その質問表に「XXXXパターンとは何ですか」とデザインパターンの質問をする受講生がかなりいます。デザインパターンに関しては、書籍もありますし、ネットで検索しても色々と見つかるはずです。

そもそも、Java言語は学んでも、デザインパターンを学んでいなければ、『Effective Java 第2版』でパターン名に言及されている部分を理解するのは難しいでしょう。しかし、大学や会社の研修できちんとデザインパターンを学ぶ機会は非常に少ないようです。

2000年前後から2005年頃までは、デザインパターンのブームがあったので、書籍も色々と出版され、勉強しなければならないという雰囲気がありました。しかし、今日、デザインパターンは、知っていて当たり前になってしまい、新たなパターン本が書かれることもあまりなく、その結果、勉強しなければならないと感じることもなくなっているのではないかと思います。

大学や会社の研修で習っていなくても、デザインパターンは自己学習してください。

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

  • 作者: エリック ガンマ
  • 出版社/メーカー: ソフトバンククリエイティブ
  • 発売日: 1999/10
  • メディア: 単行本

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

Head Firstデザインパターン ―頭とからだで覚えるデザインパターンの基本

  • 作者: Eric Freeman
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2005/12/02
  • メディア: 大型本

増補改訂版 Java言語で学ぶデザインパターン入門

増補改訂版 Java言語で学ぶデザインパターン入門

  • 出版社/メーカー: SBクリエイティブ株式会社
  • 発売日: 2014/02/14
  • メディア: Kindle版

コメント(0) 

スキル向上の場としての練習問題(3) [プログラミング言語Java教育]

(「スキル向上の場としての練習問題(2)」からのつづき)

Java研修の練習問題(書籍プログラミング言語Java第4版』の練習問題)でもそうですが、先に実装を書いて、後で、簡単なテストをmainメソッドに書いている人の場合、テストケースが漏れていることが多いです。

解答のコードを見ると、明らかに間違いがあるにもかかわらず、テストはパスしましたと言われることが多いのです。そこで、実際に、書かれたテストを見ると、テストケースが非常に単純な場合しか書かれていなかったりします。

テストコードをどこまできちんと考えて書けるかも、ソフトウェアエンジニアのスキルとして重要です。しかし、その前に、テスト対象のコードのAPIをどれだけきちんと考えられるかが、さらに重要です。

練習問題では、特に、防御的プログラミングを含めたAPIを設計するという視点から、自分ならこのように設計して、ドキュメント(Javadoc)を書くということを行ってもらう必要があります。しかし、練習問題できちんとAPI設計をできなければ、本番のソフトウェア開発できちんとできる可能性は低いです。
ソフトウェア開発では、私達は仕事で練習しています。だから、仕事で誤りを犯すのです。専門的職業から練習を切り離す方法を見つける必要があります。練習の場が必要なのです。
Dave Thomas
初心者は、講義を通してではなく、練習することで学習するのです。初心者は一に練習、二に練習、三に練習です。同じ課題を何度も何度も繰り返すことで、スキルを磨き、テスト駆動開発(TDD)とシンプルな設計の原則に反応するように、体と心を鍛えます。正しく反応するように、脳のニューロンを結び付けて、結び付け直して、さらに、結び付け直すのです。
Robert Martin
会社でのソフトウェア開発は、練習の場ではありません。練習は自分の時間で行う必要があります。
コメント(0) 

スキル向上の場としての練習問題(2) [プログラミング言語Java教育]

前回の記事「スキル向上の場としての練習問題」では、単体テストを作成することが可能な練習問題では、JUnitなどを使用して、単体テストを作成することでリファクタリングまでのスキル向上のための練習をするのがよいと述べました。特に、テストファーストということで、「Red-Green-Refactor」を実践するのがよいです。

ただ、練習問題の中には、「単純にログを出力して(目視で)確認するだけでよい」と述べられているものもあります。その場合でも、普段から単体テストを作成してリファクタリングをしている人の解答は、それなりの品質になっていたりします。

マーチンファウラーの書籍『リファクタリング』では、「リファクタリング」は、リファクタリング対象のコードをテストするテストコードを書いてから行うのがリファクタリングです。その定義に従えば、テストコードなしでは、単なる「書き直し」となります。

リファクタリングを開始するとき、最初にすることは常に同じです。対象となるコードについてきちんとしたテスト群を作りあげることです。リファクタリングは非常に順序だっていて、新たなバグを生み出しにくくなっていますが、人間が作業する以上、間違いを犯す可能性があります。このためテストは大切で、きちっとした一連のテストを用意するべきなのです。
書籍『リファクタリング』より

普段からきちんとリファクタリングしている人は、テストコードがないコードでも、動作確認が終わった後に、「習慣的に無意識にコードの見直し」を行うことになります。したがって、ログによる確認でよいとされる練習問題でも見直して修正することになります。

たとえ小さな練習問題であっても、その解答のコードを見ると、作成者の思考パターンとエンジニアとしてのスキルが、ある程度分かってしまうものなのです。


新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)


書籍『リファクタリング』については、拙著でも紹介しています。

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

ソフトウェア開発の名著を読む 【第二版】 (技評SE選書)

  • 作者: 柴田 芳樹
  • 出版社/メーカー: 技術評論社
  • 発売日: 2009/10/21
  • メディア: 単行本(ソフトカバー)

コメント(0) 

スキル向上の場としての練習問題 [プログラミング言語Java教育]

業務としてのソフトウェア開発で、テストファーストリファクタリングを必ずしも経験できるとは限りません。業務で扱っているソフトウェアが、いわゆる(テストコードがない)「レガシーコード」だったりすると難しかったりします。私自身の経験からしても、2000年に書いた雑誌記事「リファクタリングの勧め」(「Java PRESS, Vol.12」2000年5月)でも、業務以外のコードで練習することを勧めています。

そのような練習の場の1つとして、私が行っているJava研修の課題の練習問題があります。実際の製品開発ではないので、プログラミングの質は問われないのですが、それでも、かなり個人差が現れます。

テストコードが書けるような練習問題であっても、単純に結果を出力して目視で確認するだけの人もいれば、JUnitを使用してテストコードを書いてくる人もいます。mainメソッド内にテストコードを書いて、目視で確認するという解答も多いです。実装を見ると間違っているのに、テストは通りましたという場合には、そのほとんどがテスト項目不足となっています。

練習問題などは、テストファーストを経験する格好の材料ですし、テストに合格したあとにリファクタリングをすることで、「Red-Green-Refactor」を練習することもできるわけです。しかし、提出された練習問題の解答やテストコードを見るとがっかりすることが多いです。

一年間のJava研修を修了した人だけが受講資格がある「Java 8基本技術習得」コースは、一ヶ月遅れて10月から開講します。練習問題も多いのですが、GitHubへ提出されている練習問題の解答を見るとがっかりすることが多いです。新人ではないので、自分のスキルを向上させる練習の場だと認識して、もう少しテストファーストやリファクタリングを実践してもらいたいものです。
コメント(0) 
前の10件 | 次の10件 プログラミング言語Java教育 ブログトップ