プログラマのダイエット

結城浩

2004年7月10日〜8月29日

最近私も年齢相応にお腹まわりが気になってきているので、 「プログラマのダイエット」というのを自分で考え、実行してみています。

ここ1ヶ月2週間ほど続けてみて、それなりに効果が出ているようですので、 みなさんとアイディアをシェアしたいと思います。 ただし、以下の記述を参考にしてダイエットしようと思う方は、 どうか自己責任でお願いいたします。 結城はいかなる責任も負いません。

プログラマのダイエットとは何か。

プログラマはプログラムを作るのが仕事である。 プログラムを作っていて、しばしば「もっと高速化しなければならない」という局面にぶつかる。 「プログラムを高速化する」というのは複雑な技術だけれど、そこにはいくつかの鉄則がある。 私はその鉄則が「自分の体重を減らす」という技術にも応用できるのではないか、と考えた。

「プログラマのダイエット」というのは、 「プログラムの高速化技術」を「体重の軽量化」に応用する方法のことである。

ポイントは3つある。

  • 鉄則1. 計測ツールを使え
  • 鉄則2. やたらに直すな(主要因を見極めてから直せ)
  • 鉄則3. 度を越した改善を約束するな

鉄則1. 計測ツールを使え

プログラムの高速化では、プロファイラなどの計測ツールを使って実行時間(や頻度)を計測する。 ソースコードをちらっと見ただけで、高速化のポイントは決してわからない。 また、改善したとしてもどれだけ改善したのかがわからない。 計測ツールを使って、客観的な数字にするのが極めて重要である。

ダイエットも同じだ。まず体重計を用意する。 そして、毎日それに乗る。そしてその数字を記録する。 頭で覚えていて「何キロ増えた・減った」と一喜一憂しない。 体重計の数字を、日時と共に淡々と記録することが肝要である。

私の場合には、 基本的には朝と晩に服を脱いで体重計に乗った。 そしてその数字を自分の「一人Wiki」に記録した。 YukiWikiの「コメント機能」を使うと、自動的に日時が記録できて便利。 そして、ページ内の数字をピックアップして棒グラフ化するプラグインを作って、 即座にグラフが表示されるようにした。 頻繁に体重計に乗ってみて、人間というものは一日の中でもずいぶん体重が増減していることが分かった。 だから、ピンポイントでの数字で一喜一憂しても意味がないと分かった。 グラフ化して、自分の体重の変化を見極めることが大切なのだ。

鉄則2. やたらに直すな(主要因を見極めてから直せ)

プログラムの高速化では、やたらにソースを直してはいけない。 アドホックな直しを入れてはソースが汚くなりメンテ不能になるからだ。 きちんとボトルネックを見極めてから直すことが肝要である。

ダイエットも同じだ(と思う)。いろんなダイエット方法をやみくもにやっても無意味だ。 どんなによい方法でも、がんばりすぎて続かなくなっては意味がない。 主要因を見極めて、それを確実に取り除く。でもそれ以外はそのまま。ノータッチでいこう。

私の場合には、夜、 本を読みながら食べたり飲んだりするのがよくなかった。 夜中にビールを飲んでいた時期があって、そのころにめっきり体重増加したからだ。 そこで、このたびは「ビール(お酒)を飲まない」「夜中に食べない」 ということを守ることにした。 もちろん、そのほかにもやれば効果的なことはたくさんあるだろうけれど、 そんなにきつく縛っては、長期間にわたって続けるのは難しい。 だから、上記の二点だけはしっかり守り、 あとはまったくいままでどおりでかまわない、ということにした。 実際には、ストレッチをしたり、意識的に体を動かすことも心がけた。 でもそれはオマケであって「やってもいいけれど、やらなくてもいいんだよ」と自分に言い聞かせた。

鉄則3. 度を越した改善を約束するな

プログラムの高速化では、プロファイルを取って主要因を取り除く最初のステップだけは、 とても効果が上がる。でもその後、同じペースで高速化が達成できるわけではない。 しりすぼみというか、だんだん労力に見合った効果は望めなくなる。 だからうっかり「○○%は確実に改善できます」などと請け負ってはいけない。

ダイエットも同じだ(と思う)。 まだ何もやっていないところから、主要因を取り除くと、きっとぐぐっと体重は下がるだろう。 そしてそれを実感できるだろう。 でもその後、ペースは落ちていくだろう(その変化は、きちんと数値化していれば見ることができる)。 だから、過剰な期待をせず、度を越した改善を約束しない、ということにしよう。 それよりも、ダイエットを1つのきっかけとして、 自分の生活を長期的に改善するのだ、と考えるほうがよいだろう。

私の場合には、まだこのダイエットを始めたばかりなので、 いま、ぐぐっと体重が下がっている途中である。 これからどういう風に進むかは実はよくわかっていない。 でも、数字が目に見えて変化するのは楽しいものだ。 体重が減っていくことだけを目標にするのではなく、 広い意味で自分の生活が改善できたらよいなあ、と思っている。

以上。

繰り返しになりますが、 上記を参考にしてダイエットしようとする方は自己責任でお願いします。 結城は何の保証もしませんし、責任も負いません。

追記:ちなみに、2004-07-10 21:32 現在、 Googleで「プログラマのダイエット」を検索すると0件。

17日目

プログラマのダイエット、17日目。

  • 17日間で1.3kg減。(max-minは2.8kgなのだけれど、こちらはあまり意味のない数字)。
  • 体重はあまり減らないけれど、姿勢がよくなった。
  • 体を意識して動かすようになり、体を使うのが楽になった。
  • 体に取り入れるもの(食べ物、飲み物)を意識するようになった。
  • 在るものを食べる、ではなく必要なものを食べる、という感覚になってきた。
  • お酒を飲まなくなった。
  • 油っぽいものを食べたり甘い飲み物を飲んだりすると、てきめんに体重が減らなくなることを数字で実感した。

毎日体重をはかるだけで、ずいぶん意識が変化するものだなと思います。 無理をしていないので、ぜんぜんつらくはないし、数字が見えるのでゲーム感覚で楽しいです。 体を動かしたくなってくるので、ちょっとした空き時間にストレッチもしています。 ちなみに空き時間というのは10秒とか、1分とかそういう単位です。

コンパイルしている間にストレッチ。

21日目

プログラマのダイエット、21日目。

  • 21日間で2.0kg減。
  • 体重の記録はほとんど毎日つけている。
  • 体重は本当に少しずつ減っている。
  • ストレッチは気が向いたときにしているが、気分的にはだいぶだれている。
  • お酒は打ち合わせのときに一回飲んだけれど、あとは飲んでない。
  • 夜中に食べる習慣はなくなったみたい。よかったよかった。

ちなみに、2004-07-31 22:16 現在、 Googleで「プログラマのダイエット」を検索すると77件。

25日目

プログラマのダイエット、25日目。

  • 25日間で1.8kg減(あれ、ちょっと増えてる)。
  • 体重の記録はほとんど毎日、朝晩つけている。
  • 体重はあまり減らなくなってきた。
  • 自分の体重が、朝何キロくらいで、夜何キロくらいか大体分かるようになった(いままでは覚えてられなかった)。
  • ストレッチは思いついたときにやる程度(でも、ほぼ毎日やっている)。
  • 夜中の飲み食いはやってない。これはやっぱり習慣なんだね。
  • 最近、バスに乗るときに走っても息切れしなくなった。というか、以前は息切れしていたことに気づいた。

ちなみに、2004-08-04 22:00 現在、 Googleで「プログラマのダイエット」を検索すると58件。

2004-08-09 02:00:00 - [diet]プログラマのダイエット(31日目)

プログラマのダイエット31日目(8月9日でちょうどひと月)。

  • 31日間で2.4kg減(お、ぐっと減ってる。楽しい!)。
  • 体重の記録は毎日、朝晩つけている。
  • 体重はあまり減らないんだけど、増えもしないのでゆっくり下降中。
  • ストレッチは何だか楽しくて毎日やっている。
  • ストレッチをやっていると、自分の体がいかに硬いかわかるね。
  • お腹のまわりのぷくんとした脂肪ってなかなか取れないもんですね。
  • 夜中の飲み食いはやってないけれど、ぜんぜんつらくない。
  • 昼間は特に食事は意識していない。この間はソフトクリーム食べたし。

いま考えているnext stepは…。

  • 口に入るものの記録をとる。これも、義務ではなく記録をとるだけ。
  • 腹筋とか腕立て伏せなどの運動記録をとる。これも、義務ではなく記録をとるだけ。

35日目

35日目。

  • 1ヶ月+5日間で2.4kg減。
  • 体重の記録は毎日、朝晩つけている。
  • 体重は1ヶ月目から増えたり減ったり。平均すると変化なし。
  • 食事にラーメンを食べるとてきめんに減らない。というか、増える。
  • ちょっとした待ち時間にストレッチをやっている。

51日目

プログラマのダイエット、 51日目。

  • 51日間で2.7kg減。
  • 体重の記録をつけるのは最近ときどきさぼりぎみ。でも二日に一回は必ずつけている。
  • ストレッチもさぼりぎみ。
  • 夜中に食べる習慣はなくなった。食べ過ぎたときには次回セーブするなどの調整をしている。
  • ラーメン食べたりビール飲んだりすることもある。てきめんに体重は増える。でもセーブすると、すぐ戻るようになった。これはとてもうれしい。