プログラマは考えるのが仕事 | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

私の職場では2つ穴のパイプファイル(リングファイル)をよく使う。そのため、私はデスクの上にハンディタイプの2穴パンチを置いている。紙の縁に噛ませてパチンと鋏むだけの、よくあるやつだ。

あるとき、若いプログラマがこのパンチを借りに来た。何気なく彼の様子を見ていると、紙の真ん中を決めるのに苦労しているようだ。私のパンチには紙の位置を合わせるためのガイドが付いていないので、うまくできないのだろう。バインダーに綴じられた紙は、縁が揃っておらず、ガタガタになっていた。

こういうパンチを使うときは、紙を半分に折って、折り目をパンチの真ん中(目印がついている)に合わせるのである。もちろん、折り目は紙の端にちょっとつけるだけでいい。デスクワーカーなら常識の部類かと思ったが、こうしたパンチを使った経験がない人が知らないのは仕方がない。そのときはそう思った。・・・しかし、本当にそうだろうか?


問題は、彼がこの手順を「知らなかった」ことではない。それを「考えつかなかった」ことである(※1)。世の中には、教えてもらわなければ絶対に分からないこともあるが、考えれば分かることもある。ましてや、彼はプログラマだ。考えることが仕事なのだ。

特に、この「紙の真ん中に穴を開ける手順」のような例は、一種のアルゴリズムだと言っていいだろう。アルゴリズムは勉強して覚えるものだと思っている人もいるかもしれないが、それは誤解だ。もちろん、よくある基本的なアルゴリズム(検索だの並べ替えだの)は本を読んで覚えればいいし、既存のライブラリ等を使って実装すればいい。しかし、何か新しいソフトウェアを作るとき、そのソフトウェア独自の処理については、自分でアルゴリズムを考えるしかないのである。

つまり、プログラミングという仕事は、アルゴリズムを考え、それをコーディングすることである。プログラマが、紙の真ん中に穴を開ける方法を考えつかないようでは困るのだ。


それでも、考えても分からないものは仕方がない、と思う人もいるかもしれない。しかし、残念なことだが、ガタガタのシステムを納品されて「しょうがない」で済ませてくれる顧客はいない。

冒頭の穴あけパンチの例のように、「考える機会」は日常のいたるところに転がっている。そういう機会に、ちゃんと頭を使っている人と、適当なところで諦めている人とでは、プログラミングという仕事の上でも、差が出てくるだろう(※2)。





※1
あるいは、ガタガタでも構わないと思っていたのかもしれないが・・・。

※2
つまり、よきプログラマはよきライフハッカー(LifeHacker)でもあるということだ。ライフハックも、誰かが考えた情報を集めて実践するだけでは、自分の全ての仕事が改善できるわけではない(人それぞれやっている仕事が違うのだから)。自分の力でハッキングできなければ、やはりライフハッカーとは呼べないのである。



■関連記事
プログラミングは体で覚えろ
ビジネス書を読んだ気になる



■関連リンク
A4用紙を手軽に三つ折りする方法(TImedia Biz.ID)



カール パンチ№35・ブルー №35-B
カール事務機
売り上げランキング: 21418


LifeHacks 楽しく効率よく仕事する技術
原尻 淳一 小山 龍介
宝島社
売り上げランキング: 1565
おすすめ度の平均: 5.0
5 いろんな方の仕事術を盗める本