当然楽しさもいろいろある。
今ちょっと考えてみたら、5つくらいある気がした。
まず一つ目。
問題を解くという楽しみ。
だいたい大学受験の数学と同じような楽しさ、と思ってもらって良い。
複数の解き方があって、ある解き方は良い解き方であり、ある解き方は冴えない解き方で
問題が解けた時は楽しい物だし、うまく解けた時はもっと楽しい。
この楽しさは比較的どの規模の開発でもあるような気がする。
大規模の方が余計なオーバーヘッドがあるけれど、まぁそんなに朝から晩までひたすら問
二つ目は、タスクを片付ける楽しさというのがあると思う。
スクリプトとかで自動化する時に味わいやすい。
手作業で出来る作業があって、それをどうにかしてコンピュータにやらせる事に成功する
これはなかなか楽しい。
この楽しさは、分からない人にあまりうまく説明出来ないが、確かに何かある。
この楽しさは、行っているプログラムの種類によっては全く存在しない。
極端な例では自分で使わないソフトウェアの場合はそういう楽しさは全く無いだろう。
また、そもそも手作業では出来ないタスクやゲームのような物でもこういう楽しさは無い
3つめは、物を作る楽しさ、というのがあると思う。
何もない所からだんだんと物が出来ていき、なんかちゃんと動いたり動かなかったりする
楽しい。
これは小さい規模の方が味わいやすい類の楽しさに思う。
日曜大工とかと似た楽しさ。
作っていく楽しさ、というのはプログラムの楽しさの一つだよなぁ。
4つ目は、暮らしをデザインする楽しさ、みたいなのがある。
暮らしといっても電子的な物の上での話な事が多いが、プログラマは画面の上で生活して
例えばWhiteBoard Castとか。ベンチとかでおやつとか食べつつちょろっと動画を作り、youtubeに
「一文戻って!」なんかも、ハンモックに揺られながらとかバスの長い移動とかで、手元
自分の例はモバイルに寄りがちだが、別にPCでもいろいろあるだろうし、ブラウザ拡張
アニメの録画の予約でもなんでも「うーむ、俺クール!」とか思ってるプログラマはきっ
これは部屋の模様替えとか、ホームセンターとか無印とかで変わった家具みたいなのを買
自分なりのオリジナルな何かで自分の生活を彩る。毎日使う物が自分の作った物であり、
楽しい。
3つめの作る楽しさと似ているように見えるが、この生活をデザインする場合、作るとい
理想としては誰かが自分の代わりに作ってくれる、というのが嬉しいのだが、作ってくれ
5つめは、プログラムをするという営み自体の楽しさがあると思う。
なんか画面の前に座ってがーっとコード書きたい!という思い。
うまい事言えないが、しばらくコードを書いていないとコードを書きたい!と思う事があ
ちょこっとちまちま実験する。よし、だいたい出来そうだな、後はぐあーっとコードを書
デスクトップでしかコードを書かない人でも、この「よーし!バリバリコード書くぜ!」
それはプログラムをするという行為自体の楽しさを含んでると思う。
以上の楽しさは、全てが全てのシチュエーションである訳では無い。
例えば昔は、怠惰さはプログラマの美徳と言われていた事がある。
そういう時には、暗に二番目とか四番目を仮定していると思う。
でも例えば問題を解きたい時に怠惰が美徳と言われても困ってしまう。例えばプログラミ
コードを書く事自体が目的の事がある。一つ目と5つめの楽しさはそうだ。
4つめの自分の暮らしをデザインする、という時に、明確にゴールがある場合がある。
そういう時はコードを書きたく無い事は結構ある。
欲しい物があるけど作りたいという訳では無い。
作るのはめんどくさいなぁ、誰か俺の代わりに書いてくれないかなぁ、とか思う。
こういう時には、一つ目と5つめは全く無い事が多い。二つ目と3つめはやり始めるとあ
コードを書きたいのでは無く、結果のソフトウェアに関心がある。コードを書きたい訳で
二つ目と4つめは、コードでは無く結果に興味がある。
1, 3, 5はコード自体やコーディングという事に関心がある。
結果に関心がある場合とコードに関心がある場合では大きく立場が異なる事がある。
例えば結果に関心がある場合、コーディングが嫌いな事もある。
プログラマはコーディングが好きな方が良い、とは限らない。
やらなくても良い事をやってしまうのは、プログラミングの世界では凄く良くある。
潰すべきプロジェクトを、まぁ俺のせいじゃないからいいか、とやってしまうのはあまり
コーディングが嫌いだと面倒な事を乗り越えてちゃんと潰すよう頑張る側に決断を倒せる
一方でやらなきゃいけない事を後回しにしてしまう、という問題もある。
面倒くさくても、結局はやらなきゃいけない、という事もある。
場合によってはそういう事ばかりというシチュエーションもある。
そういう時にコーディングが嫌いだと、ただ不幸なだけ、という事もある。
また、自分の創造性とかを発揮するのがあまり好きでは無い人、というのも居る。
別に欲しい物なんて既にあるし。
作りたい物なんて別に無いよ、みたいな人も居る。
でもそういう人でもプログラムの仕事は出来るし、プログラムを楽しむ事も出来る。
コーディング自体への関心が高ければ品質の高いコードを書くようになるかもしれないし
それぞれ個性がある人たちが集まる方が、たぶん良いチームになると思う。
一つの理想的なプログラマの性質、というのは無い、と信じている。
ただ、あまり一つのあるべきプログラマ像とかには縛られずに、状況に応じて違った楽し