matsumotory さんの 僕がOSSを作り続ける理由 - 人間とウェブの未来 の記事を読んで、自分もたまにはポエム。「僕がOSSを作り続ける理由」というか「僕がプログラミングをする理由」について。
自分は元々、将棋やオセロのようなパズルゲームが好きで、テレビゲームのジャンルでいうと戦略シミュレーションが好きな子供だった。 プログラミングはそれに通じるものがあると感じていて、問題(パズル)を問くことそのものが楽しい。これが自分のプログラミングに対するモチベーションの根源になっている。 難しい問題をシンプルなコードに落としこめた時や、新しいテクニックを身につけて解決した時などは最高である。
パズルゲームが好きならば、例えば将棋をやっていればいいじゃないか、となるかもしれないが、 プログラミングにはさらに、「成果物が残る」、「誰かに利用してもらえる」という副次的な要素があって(むしろ、ここが根源になっている人もいると思う)、そこも第2、第3のモチベーションになっている。 将棋などは、成績は残るし、自身の能力は高まるが、成果物が残るわけではないので、学生時代にプログラミングをやり始めてからは全くやらなくなってしまった。そういう意味で、競技プログラミングも自分はあまりハマらなかった。
この「誰かに利用してもらえる」という点は裏側でも全然問題ないというか、むしろ直接カスタマーに届くレイヤーよりも裏側のミドルウェアであったりとか、基盤の共通的な部分のほうがモチベーションが高まる。 そのほうが、間接的にでも利用される範囲が広がるからである。影響力を持ちたい。
まぁとにかく、こういう人間なので、問題が難しいほどモチベーションが高まる。作ったサービスをカスタマーに「使ってもらう喜び」ももちろんあるが、こちらの方が強い。 サービスよりも基盤寄りの人間だと自分を分析していて、もっぱら基盤の部署で問題解決をしている。 他の人には難しいだろ、みたいな問題を解きたいし、解けるようになりたくて日々修行している。
いつか技術志向よりもサービス志向になる可能性もあるが、今の所はこういう感じ。
解くのが難しい問題を探しているので、何かあればお声がけください。
自分のユーザーマニュアル(出典: http://logmi.jp/172149)みたいな話になったな。