SSブログ

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

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

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

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

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

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