ループの内側から最適化する

読書

『最速の仕事術はプログラマーが知っている』を読んでいます。

「プログラマーはどのように効率化を考えるのだろう?」と考えていたときに出会えた本です。仕事術の本の中でも、プログラマーが書いているものは少なく貴重です。考えていた通り、示唆に富む内容となっています。

【本書から得られる示唆】
1.ループの内側から最適化する
2.情報発信が、最も効率の良い情報収集方法
3.事前に行動計画を立てる(プリフェッチ)
4.行動基準を明確にする

上記のうち、「1. ループの内側から最適化する 」について書きます。

「ループの内側から最適化する」とは、「繰り返し処理(ループ)のステップ数を減らす」ということです。例えば下記のような感じです。

・毎日送るメール
 →1週間に1回まとめて送る(「毎日」のループから省く)
・依頼の度に、請求書と送付書を作成しなければならない
 →請求書を作ったら同時に送付書も出来上がるようにする

たとえ1ステップにかかる時間が5分だったとしても、毎日、毎回と重なれば、年間で数十時間を削減できます。それだけ自分の大切なことに時間を使うことができます。

最も良い方法は、ループそのものを無くしてしまうことです。
本書の中では、数学者ガウスが「1から100まで足す計算」を「1回の足し算、1回の掛け算、1回の割り算」にしてしまった例でわかりやすく解説しています。

これは「どれだけ処理する数が増えても、ステップ数が増えないこと」が素晴らしいのです。効率化を求めた結果、ステップ数が増えるということはよくあることですが、本当の効率化はそうではないのです。これは非常に重要なことです。

なにか効率化を考える時に、一度自問してみるといいでしょう。
「今自分がやっていることは、ステップ数を増やさない効率化だろうか?」と。

本書の一部から、私が気づきを得た部分を書いてみましたが、いかがでしたでしょうか?
他にもプログラマーならではの視点があって、興味深い内容となっています。
次回もこの本から得たことについて書きます。

コメント

%d人のブロガーが「いいね」をつけました。
タイトルとURLをコピーしました