at posts/single.html

日経ソフトウエア5月号に入門記事を書きました

タイトル通りですが、明日発売の日経ソフトウェア5月号にプログラミングの入門記事を書かせてもらいました。 ちょっと前に、プログラミングへの適性とか勉強方法とかという日記を書いた時に、「どうせなら少しでも多くの人にプログラミングを楽しんでほしい」と考えることがあったので、ちょうどいい機会と思って今回のお話を引き受けさせていただきました。

題材は WiiFit でもおなじみの「BMI指数」を計算するプログラムです。 身長と体重から BMI 指数を計算したり、 BMI 指数を元に「やせ気味」、「太り気味」などと判定したりします。 シンプルなプログラムですが、基本的な演算から条件分岐や繰り返しまでを一通り使うのでちょうどいい題材でした。 メジャーな環境ということで、 Java と Eclipse を使っていますが、基本的な考え方は他の言語でも通用すると思います。

本当にプログラムを書いたことが無い人でも読めるように、基本的なところに重点を置いています。 例えば、 BMI 指数から体型を判定する時に、普通はこう書きます。

if (bmi < 18.5) {
  // やせ気味
} else (bmi < 25.0) {
  // 標準
} else (bmi < 30.0) {
  // 太り気味
} else {
  // 肥満
}

でも多分、初めての人はこう書いちゃいます。

if (bmi < 18.5) {
  // やせ気味
}
if (bmi > 18.5 && bmi < 25.0) {
  // 標準
}

そういう場合に、例題でいきなり前者の例を提示するよりも、最初は後者の例を出してあげた方がいいと考えました。 この後者の例だと、 bmi == 18.5 の時にルートを通らないという、よくある境界条件のバグがあるのですが、こういう失敗例と、そのバグの見つけ方を説明してから、最後に else 文を使った例を出した方がより理解が深まると思うのです。 そんなことを考えながら、丁寧気味に書いてみました。 これを読んで、プログラムの面白さを少しでも感じてもらえたら嬉しいです。

執筆にあたっては、編集の矢崎さんに色々とお世話になりました。 ありがとうございます。

https://www.amazon.co.jp/dp/B0015IQ776

そうそう。昨日、見本誌を頂いたのですが、koizuka さんが書かれているように「プログラマになりたいあなたへの手紙」というコーナーがあります。 小飼さん、まつもとさん、天野さん、結城さん、よしおかさん、戀塚さんが手紙を寄せられていますが、それぞれプログラマに対する考え方が違っていて、とても興味深く読みました。 インターネットとオープンソースが当たり前のように存在することが、とてもいい時代なんだな…と。 特に、インターネットを受け身で使う(ググっておしまい)のではなく、そのインプットを自分で消化して、アウトプットを出すことが大事だな、と。

うーん。ですます調で書くと、ちょっと新鮮な感じです。