0326「プログラミングセラピー」
昨日は抹茶のおかげですごく攻撃的にいろいろこなした一方で非常に生産性が低かったので(抹茶のそんなところも聞くところの覚醒剤によく似ている)、今日は昨日できなかった頭を使う作業をやる。昨日敢えてスキップした20分の勉強も、繰り越して40分やる。例の比嘉了さんのTouch Designer講座が終わってしまってから、書いていた通りReact Nativeをやっている。Touch Designerは、もっと自分でバキバキなものをつくって使いたいのだが、全然時間がないので来世になるかもしれない。やりたいことが多すぎてわりと困る。1日が48時間あったら、とか思うが恐らく増えた24時間は増えたら増えたでゴロゴロしているだろうから、結果として何が起こるかというと、たぶん太るだろう。
React Nativeの講座の基本の最初のへんが、「ちゃんとHTMLの基礎を学んでから本編に行ってね」という内容で、図らずも、HTMLとCSSとjavascriptの基本を復習しているのだが、復習も何も、HTMLとかjavascriptとか、20年前にライブドアになる前のホリエモンの会社でバイトしていたときからやっているわけで、いまさら復習かよ、と思いきや、Chromeの開発パネルの知らない使い方とか、あと、前から人のコードで良く見るけどあんまりよくわかっていなくて適当に読んでいた構文とか、意外に勉強になってしまって、ああやっぱりこういうのは適当に学習するとダメだなあと思った。
こんなん書くとバカにされると思うのだが、下記の構文の使い方をよくわかってなかった。
a > b ? c = true : c = false
これ絶対基本だし、たぶん20年近く、漫然と「なんか『?』とか『:』って書いてあっていつも良く見るけど、これたぶん条件分岐だよなー」とか勝手に理解して読んでいたのだが、初めて、「a>bがtrueだったらc=true、a>bがfalseだったらc=false」ということですよ、と明示的に教えてもらって、「なんだよこれめっちゃ便利じゃん!」となって盛り上がっている。要するになんとなく意味はわかっていたのだが、確固たる意味を自分に教育していなかったので、自分でプログラムを書くときに使っていなかったのだ。英語とかで、なんとなく相手の言っていることがわかるけど、自分でその単語は使わない、みたいな感じだ。20年前にちゃんと勉強しなかったおかげで今までの仕事人生の中でたぶん20時間くらい損していたような気がする。毎回
if (a > b){
c = true;
}else{
c = false;
}
って書いていた。
それでいうと、VRChatで有名な坪倉輝明さん(私にとってはその前からずっとお世話になっている開発者さんだが)が、こないだこんなツイートをしていた。
あの坪倉さんですら、いろんなプログラミング言語のわりと基本なような気がするforeach文を使ったことがなかったりする。たぶんみんな結構そういうのあるのではないか。逆に言うと、全然褒められたことではないが、使いこなせない構文があったりしてもプログラム書いて仕事にすることはできなくもないということでもある。が、さすがに私の上記のやつはひどいなと自分でも思った。
上記はすごく低レベルな話だが、プログラミングというのはとても楽しい。私も本当は四六時中プログラミングだけして生活したいし、絶対にそっちの方が健康に良いのだが、プログラミングだけだとまだ一流になれないので、仕方なく他の能力(それを総合してテクニカルディレクションとか言っている)と組み合わせてどうにか仕事をしているところがある。本当は、自分の全リソースをプログラミングに突っ込んでそれだけで生活できたらどんなに楽しいだろうと思う。
何か書いて実行したら動いて何か出てくる。プログラミングなんて基本そんなようなものだが、この、書く→動かすのプロセスの繰り返しが甘美なほど気持ちいいと思う。自分で組んだカラクリが動いて、何か出力してきたとき、少量ながら麻薬物質が出る。それをずっと続けていると、すごく幸福になってしまって、気づくと朝まで何か書いていたりする。「a > b ? c = true : c = false」を適当に理解していた人間が言うことではないが、あんなに楽しいものはない。
ので、最近、将来について悩んでいる方に、「プログラミングセラピー」的なものをおすすめしている。よく、ランニングが好きな人とかは「走っている間は何も考えなくていいから気持ちいい」みたいなことを言うが、要するにどこかのタイミングで目的とかが吹き飛んで、今この瞬間に走っていることに没頭できるシンプルさというものがランニングの良いところなのだろう。プログラミングも同じで、書く→動かすのプロセスを繰り返していると、単純に気持ちよくて、いろいろな悩みがどうでもよくなってしまう。このとき、「こんなアプリをつくりたい」とか、目的を設定してしまうとうまく行かなくなったときに落ち込むので、とりあえず参考書でも何でも良いので写経しては実行して、変数変えて実行して、みたいに砂場で砂と戯れるようにコードと戯れると、かなり自覚的に精神が健康になる気がする。
Touch Designerみたいなものでもたぶん良くて、「組む→実行する」の形になっていれば良い。時間があったら、「健康のためのプログラミング教室」みたいのをやりたいが、時間がないので来世にする。