どうしてプログラミングは楽しいのか?

この時期は毎年、『何故、公務員になって(実家に)戻れないの?』と聞かれることがあります。
そんな時にはいつも決まった通りの答えを返しているのですが、今年は例年と違って、実家に帰らなかったので、問われることはありませんでした。
が、逆にそんな時だからこそ、ゆっくりと考えることが出来るとも考えました。
動機の言語化というのはあらためて自らに問うてみると案外答え易くないものです。

何故、プログラミングは楽しいのか? 何故、何度も辛い目にあいながらも、プログラミングに携わる職種から離れることが出来ないのか?

一つ目の要素は、プログラミングには、“モノ”を作り出す楽しみがあることです。子供が砂で砂の城を作って楽しんだりするのも“モノ”を作り出す本当の楽しみを得ている一つの例です。プログラミングは、自分自身による設計で自分だけの(もちろん他人に使ってもらうことは可能です)“モノ”を作り出すことが出来ます。

一つ目の要素を満たすものはこの世に数多く存在します。

二つ目の要素は、プログラミングには、様々なパーツを組み合わせることで全く新しいものを生み出す楽しみがあります。まるでパズルを解く様な楽しみがあります。途中で倒れない様に、そして、途中で止まらない様にドミノ牌を並べ上げる達成感や牌が倒れる様の美しさなどを楽しむ遊びであるドミノ倒しも同じくこの楽しみを持っています。

一つ目と二つ目の要素を満たすものもこの世に数多く存在します。

三つ目の要素は、プログラミングには、常に学びの楽しみがあります。プログラミングをしていく中で遭遇する課題は常に新しく、課題を解くことで常に何かを学んでいます。誰もやったことないことに挑戦すること、例えば、ギネスブックの新記録に挑戦することも同じくこの楽しみを持っています。

一つ目と二つ目、三つ目の要素を満たすものもまたこの世に数多く存在します。

四つ目の要素は、プログラミングには、自分自身も含め、他人にとっても、有益であるものを作り出す楽しみがあります。私たちは常に自分が作った“モノ”を他人にも使ってもらい、それが役に立って欲しいと思っています。大工が他人の為に立派な家を作るのも、子供が親の為に便利になる“モノ”*1を作るのも同じくこの楽しみを持っています。

一つ目と二つ目、三つ目、四つ目の要素を満たすものもまたこの世に数多く存在します。

五つ目の要素は、プログラミングには、加工し易く、非常に安価で、とても扱い易い媒体で作り出せる楽しみがあります。立派な家を作るには、残念ながら高額の費用がかかりますが、プログラミングにはそういったことはありません。そして、一度作り出したものを簡単に何度も修正(改善)することが出来ます。

一つ目と二つ目、三つ目、四つ目、五つ目の要素を満たすものを私は残念ながらプログラミング以外に知りません。

これらの五つの要素を全て持っている為に、プログラミングは非常に楽しく、何度辛い目にあってもプログラミングに携わる職種から離れることが出来ないのだと私は考えています。

*1:親からすれば大したものでもなくても