もっともっとプログラミングが楽しくなる魔法

# 「楽しいことを見つけましょう」

メリークリスマス！
今夜は皆さんへのクリスマスプレゼントに、「もっともっとプログラミングが楽しくなる魔法」をかけます！
楽しく仕事ができればもっともっと仕事が捗って、お給料も増えるかもしれません！

## プログラミング大好き

私はプログラムを書くのが好きで好きでたまらなくて、寝ても覚めてもプログラムのことを考えているくらい好きで、それでプログラマーになりました。

だってプログラマーって何か頭良さそうだし、魔法使いみたいにすごいもの作っちゃうし、なんかもうすごいな！　カッコイイな！　と思いました。

そう信じてプログラミングの勉強を始めました。
「猿でも分かる」と銘打った本の意味が分からなくて自分が猿以下なんだと再認識したり、
「C言語から入った方がいいよ！」という話を鵜呑みにしてポインタ、構造体あたりでパニックになったり、
変数が何かもわからないのにオブジェクト指向の本を読んだりデザインパターンの本を読んだりしてさらにパニックになったり、
挙げればキリがないほど、当たらなくても良いような壁にぶち当たりながらもなんとかプログラミングというものが分かるようになって、プログラマーになりました。

私の初めての仕事は、「ある形式のCSVファイルを出力できるようにする」という仕事でした。

今思えばとても簡単な仕事、でも当時の自分にとってはとても難しい仕事。
出来上がったときにはまるで電撃に打たれたかのような気持ちよさが体中を駆けめぐりました。

ある企業様から頂いた案件だったのですが、希望通りの形式のCSVファイルが取得できるようになったと大変喜んでくださりました。

入社したての私が出来る限りを尽くして納品したものに対してお代を頂いて、私は、「あぁ、本当にお金って貰うんだ」と思いました。

今まで趣味でやっていて「ありがとう」と言われたことはありましたが、私の仕事に対して決して安くはない料金を払ってくださる方がいるのだということを再認識し、同時に嬉しく思いました。

そして、それが私の趣味が仕事になった瞬間でした。

## あれ、プログラミングって……

好きなことでお金をもらうのってこんなに気持ちいいんだ、と思い、それから私は一生懸命仕事をしました。
様々な事情で無茶なスケジュールで作業しなくてはならず、キツいときもありました。
しかし、それでもプログラムを書くのは好きでした。「キツいけど好き」でした。

ですが、それは、「キツイけど好き」「キツイから少し疲れた」「キツイから嫌」とだんだん病状が悪化し、挙げ句の果てには「全然仕事は楽だけど嫌」と言い始めます。

なんでだろう？　もっとプログラミングって楽しいものじゃなかったのかな？
もっとワクワクして、ドキドキして、気持ち良いものだったはずなのに。

そして私は「もう自分はプログラミングが大体分かったから、新しいことがなくなってつまらなくなったんだ」と考えることにしました。

## なんで楽しくないんだろう？

「学ぶことがなくなったからつまらなくなった」というアイデアには正しいように思いました。
だってたくさん勉強してきたし、たくさん自分が作ったものを世に送り出してきたし、実際それでお金ももらえているし。

しかし、納得はしたけど結局つまらないのは変わっていないので、解決になっていません。
むしろ「やっぱりつまらないからプログラミングをやめるしかないんだ！」という変な方向に前向きになってしまい、自体が悪化しています。

最初は楽しかったはず。でもいつの間にかつまらなくなってしまった。
この差は何？

しかし、考えても昔の気持ちはよく思い出せません。
それに、思い出したとしても、今を楽しくしないと意味がありません。

そこで私は、最近自分がどんなときに「楽しい」「気持ち良い」と感じるのか、考えるようにしました。
とても小さなことでも良いから、仕事だけじゃなくて、もっと生活全てまで広げて。

月曜日
・ミーティングが思ったより早く終わった
・ゲームセンターで新しい音楽ゲームを見つけて、やってみたらすごくしっくりくるものだった
・温泉に行って受けたマッサージが最高だった

火曜日
・ミーティング中一度も「えーと」と言わずに終わらせることができた
・趣味でやっているボクシングで、良いパンチがきまった
・お昼に初めて入ったレストランが完璧なまでにすごく美味しかった

水曜日
・完璧に納得のいくソースコードが久しぶりに書けた
・月曜日に発見した音楽ゲームで初めてパーフェクトが出た
・私のアイデアがプロジェクトで採用された

木曜日
・コーヒーを上手く入れることができた
・トイレが完璧に掃除されていて気持ちよかった
・ゲームをしていたら心にしみるセリフがあって、グッときた

金曜日
・温泉に行ってとても気持ちよくてリフレッシュできた
・デザイナーさんが作ってくれたデザイン案が期待以上の出来だった


これが私が今週「楽しい」「気持ち良い」と思ったことです。

一見取り留めのない感じ、ただ、よーーく考えると、私が「楽しい」と思うこと、「気持ち良い」と思うことが見えてきます。
色々な視点から分類してみたところ、3つに分類するとうまくできそうです。

①「キマった」系

一番わかりやすいのは「私のアイデアがプロジェクトで採用された」ですね。
あとはゲームでパーフェクトが取れた、とか。

自分がした何かが、納得いく感じになったときは、とても気持ちいいものです。

② 「期待以上だった」系

レストランが美味しかった、トイレがきれいだった、デザインが良かった、などがこれです。
期待していた以上のものが目の前に顕現すると、大変嬉しく思います。

③ 「そうそうそれだよ」系

木曜日の「ゲームをしていたら心にしみるセリフがあって、グッときた」は上のどちらにも当てはまりませんね。
でも、これは私にとって、とても大事なことなので、無理やりどちらかに押し込めないようにしました。

「辛いより楽しい方が良いに決まってる」とか「仕事は辛くなくちゃいけないなんて誰が決めたの？」とか
当たり前すぎることを「ここぞ」というときに言われると、名言として響き、グッと来るときがあります。
たいてい私は、アニメ、ゲーム、マンガ、ドラマから、そういった言葉を拾います。
「今まで自分の中に抱えていたモヤモヤした何か」を誰かが言語化してくれると、とても感動します。

さて、ここでプログラミングをもう一度見てみましょう。
「プログラミングつまらない、やめたい」と言っているくせに、「完璧に納得のいくソースコードが久しぶりに書けた」で結構喜んでるのが私です。

なんだ、やっぱり好きなんじゃん。

これ、分類するなら、①②③全部当てはまります。
「キマった！」はもちろんのこと、「期待以上」も当てはまりますね。
しかも、他の②と違って、自分発信の「期待以上」なのですから、気持ちよさもひとしおです。
そして、「そうそうそれだよ」にも当てはまります。なんかソースコードが気持ち悪いな、と思っていたけど、何が気持ち悪いかわからない、「モヤモヤしていた何か」をプログラムとして落とし込むことができたらそれは気持ち良いものです。ちなみに、具体的にはGoFデザインパターンが今作業しているものにうまくハマったときでした。

では、なぜ「つまらない」と感じることの方が多かったのでしょうか。

まず、今週は、ここに書くためになるべく楽しいことに巡り会えるように意識していました。
ですから、普段より「気持ち良いセンサー」が敏感でした。
なので、普段見逃してしまう「キマった」に気づくことができましたが、逆に言えば、いつもは「キマった」と思っても「ふーん」と流してしまいます。
そこで提案1つめ。

## 提案1. 「キマった」ら喜ぶようにする

変にストイックにならずに、「良い！」と思ったときに、こまめに喜んでみると良さそうです。
ぜひ「やった！」と声を出してみてください！　必ず変な奴だと思われます！（でも明らかに喜んでるからきっと目線は温かい）

次に「期待以上だった」についてみていきます。
私はゲームをパーフェクトが出るまでやるように、案外完璧主義なところがあるようです。
しかし、「仕事がつまらないな」と思い始めてから、だんだん、「バグもなくて要件通りちゃんと動くし、保守性も極端に低いわけじゃないから誰も文句は言わないけど、個人的には納得の行っていないソースコード」を量産するようになりました。
初心者の頃は、「精一杯頑張ったけど、誰かに指摘されてしまうソースコード」を書いていました。しかし、それは精一杯頑張っているし、指摘箇所を直せば、少なくとも私の中で完璧なソースコードに思えるものになっていました。

ところが今、すでに手に入れたものの組み合わせで、一応はなんとかなってしまうため、新しい書き方だとか、新しい技術をいつしか学ばないようになっていました。

だって勉強するのめんどくさいし、ゲームやってたいし。
そしてその思考が一日の大半を使う仕事の時間をつまらなくするのです。

だから、誰がなんと言おうと自分の納得のいくものにするのが良いのです。
もしそれを採用して納期が遅れるというのであれば、それは優れた方法ではありません。
たとえば、本当に優れたデザインパターンを使うと、工数の削減が期待できます。
なので、

## 提案2. 納得いくまでやる

そして、それがしっくりハマると、「そうそうそれだよ！」感が出てきて、「楽しい」の連鎖になるはずです。


## 最後に

今回話した内容は、「どうしたら楽しくプログラミングができるか」という話でした。
「つまらない」と思った原因は、私の場合はここに書いた内容でした。
しかし、「つまらない」原因は、私以外の人の場合は、違うかもしれません。
なので、ぜひ「楽しいこと探し」からやってみてください。
楽しいことを探すのは楽しいですよ！

では、またお会いしましょう！

メリークリスマス！