Practice, Practice, Practice

The Passionate Programmer: Creating a Remarkable Career in Software Development (Pragmatic Life)
- 作者: Chad Fowler
- 出版社/メーカー: Pragmatic Bookshelf
- 発売日: 2009/07
- メディア: ペーパーバック
項目15「Practice, Practice, Practice」では、次のような内容のことが述べられています(サマリーです)。
音楽家は、日々練習をし、そして、その成果として聴衆の前で演奏します。そして、日々の練習では、自分の能力の限界を伸ばすための練習もする訳です。しかし、ソフトウェアの世界では、実際の開発で練習をしている。実際の開発ではなく、自分の時間で練習をする必要があり、それがプログラマーの責任です。残念ながら、ソフトウェアの開発現場では、本当に仕事の中で練習している人がほとんどではないでしょうか。したがって、その結果、良い品質とはならない訳です。
自宅にPCなど無くて、会社に行かないとプログラミングができなかった遠い昔と違って、今日ではほとんどの人がPCを持っていて、ほとんどのプログラミング言語の環境が無料で手に入ります。にもかかわらず、どれでけの人が自宅で練習しているのでしょうか?
自分自身を振り返ると、会社に入ってからは、業務で開発するソフトウェアとは別に、会社でツールを多く書いていました。それらのツールは、色々な機種に移植したりして、何度も書き直しをしていました。実際の開発業務の生産性を上げるためのツールがほとんどでしたので、業務中にツールを書くことそのものは容認されていました。実際、このツール作成が一種の練習の場だったのだと思います。
1996年夏にWindows 95を搭載したPCを購入したので、自宅でJavaでプログラミングをすることが多くなりました。実際、Javaでのプログラミングは、それ以来、ほとんどが自宅で行っているものばかりです。仕事で、Java言語を用いた開発業務をしたのは、数ヶ月程度しかありません。
プログラミング言語Java研修では、受講生に多くの練習問題やGUI課題を自宅で行ってきてもらっていました。テキストの予習に加え、それらのプログラミングを多くこなしてくる訳ですから、多くの時間を費やされたと思います。
この教育の中で一番大変な練習問題は、リフレクションを使用したInterpretプログラム※1の作成です。みなさん、年末年始の休みやゴールデンウィーク(年2コースだったの開始時期により異なります)を費やしてプログラミングされていました。
項目15では、練習の課題として、Code Kataが紹介されています。21個の課題がありますので、皆さんも挑戦してみてはいかがでしょうか。
※1 リフレクションAPIを駆使して、インタラクティブにオブジェクトの生成やメソッド呼び出し、フィールドの書き換えなどをできるプログラム作成の問題です。
この記事へのコメント