自分を救うプログラミング

naoya
·

子どものころは絵を描くのが好きだった。

学校の休み時間は、クラスメートはみな外にサッカーをしにいっていたが一人教室にのこってノートに漫画を描いている、そんな小学生だった。

自宅に戻っても、自室にこもってよく漫画を描いていた。

漫画と書くいっても、別に人を楽しませるために描いているわけではなかった。もちろん褒められると嬉しかったが、それが目的だったわけではなく、いま思えば、それは自分で自分を癒すかのような行為だった。自分を救うために絵を描いていた。

絵を描いているときは、それに夢中で没頭していて、ほかの何にも代えがたい時間を過ごすことが出来た。この時間が、どこか自分の救いになっていた。

中学二年生ぐらいになって思春期にさしかかった頃だろうか。教室で絵を描いていると浮いてしまうことに気づいて、恥ずかしくなって、描かなくなった。

それでもやっぱり絵を描いたりなにか作品を作ったりするのは好きだったので、美術の授業を楽しみにしていた。美術の先生は、授業が終わって放課後になってそのまま作業を続けていても、嫌な顔一つせず付き合ってくれた。

中学を卒業して美術の時間もなくなり、そういう何かに夢中になる時間というのを過ごすことがなくなっていった。

その感覚はしばらく忘れていたが、大学生になりパソコンを買って、インターネットに繋いで、そこで WWW のページを作るという作業を通じて、それを思い出した。

やがてプログラミングを覚えた。プログラムを書くという行為が、幼少のころの、自分を救うかのような時間を過ごすために絵を書く行為と、よく似ていることに気がついた。それで、プログラミングの勉強に夢中になった。とても楽しいと感じた。

社会人になり晴れてプログラマになった。Web サービスを作るのも、同じようになにか自分を救うようなところがあって楽しいと感じていた。

数年くらい経ってきてから変わって来た。

もともとはプログラムは自分のために書いていたし、ソフトウェアも自分のために作っていた。Web サービスを作るのも、どこか自己表現のようなところがあった。

Webサービスがヒットし、プログラムはチームで開発するようになり、いつしか、他人のためにプログラムを書くし、他人のためにサービスを作るようになっていた。プログラムの実装も、自分のことを気にして書くのではく、他人と一緒に実装しても大丈夫なように、ということが一番の関心事になっていった。

自分の書いたコードで他人が苦しむ、そんな場面を何度も目にして、他人を意識しないで書くことはもう出来なくなった。

開発の仕事は、仕事としては楽しい部類だと思う。だから、嫌なわけではなかったが、他人を意識したプログラミングをするようになってからは、自分を救うような時間を過ごすことはもうできなくなっていた。

そして加齢と共に、だんだんとプログラミングに対する情熱が少し冷めている自分にも気づいていた。当時のように、寝食忘れてプログラミングに没頭したり、新しいことを勉強するという内発的動機が沸いてこない。仕事もマネジメントが色々あったりと、数ヶ月プログラミングしないということも普通になった。

あるとき思い立って、Haskell で競技プログラミングを始めた。

これもきっかけは、仕事で使っている TypeScript の型システムが難しくて、その理解を深めるために Haskell をちゃんとやってみようと思ったことで、仕事のためという感じだった。競技プログラミングを題材にしたのは Haskell で他に実装したいものが特に見つからずに、無限に問題が降ってくる競技プログラミングなら、それを解いておけばいいかぐらいの気持ちだった。

こうして競技プログラミングをやっていたら、知らないうちに夢中になっていた。失いかけていたプログラミングへの熱量が上がっているのに自分でも気づいた。

なんでだろうか?

競技プログラミングで書いているコードは、まさに自分のためのプログラムだった。誰かに使ってもらうためのプログラムではなく、自分が問題を解くためのプログラムだ。そのプログラムはどんなに不格好でも、誰にも文句は言われない。うまく書くことが出来れば、自分のプログラムがより楽しくなる。

自分自身のためにプログラムを書くということを久しぶりに思い出して、没頭した。

ああそうだ、自分はこういう時間を過ごしたくてプログラミングを始めたんだった。それを思い出した。

プログラミングというのは自分を救うようなところがある。そしてプログラミングに限らず、一部の人間にとっては···かもしれないが、何かに没頭することは自分を救うところがある、そんな気がする。