VIMはシステムが人間に近づくための手段だ

人間が当たり前のようにできること。近くにあるものを手に取るとかいうことを、システムの中でも出来るようにする。

つまり僕らが人間になるための手段なのだ。

pecoなども同じだと思う。

非エンジニアにとってはマウスの登場がそうだった。エンジニアの手足はvimだ。

寝ながらでもプログラミングは出来る

というより、寝ている時、うつらうつらしている時こそがプログラミングだとさえ言える。

着想は休息と睡眠の中にあり。

日曜日の18:30、いつものカフェ、ようやくプログラミングを美しく感じられた

いつもいつでもうまくゆくなんて保証はどこにもない。いつもいつでもプログラミングを最高に美しいと感じられるとは限らない。僕は近寄る努力をするけれど、感じられないこともある。たぶんうまく手を動かせていないからだ。

恋愛だって常に二人が向き合っているとは限らない。常に最高の状態が存在するとは限らない。だからこそ最高が戻ってきた時には手を叩いて、いや違う、やわらかな空気が壊れないように、ただただ穏やかに祝福したい。

必要なのはプログラミングへの情熱や、テーマというよりも、周りの環境かもしれない。周りの環境というよりもプログラミングへの興味やテーマかも知れない。僕には複雑すぎて分からない。いくつかのヒントなら持ち合わせている。すべてのピースが組み合わさった時、そこに美は現れる。

決してプログラミングコードには刻印されない美しさの背景。体験。いや、もしかしたらコードにさえそれが表れるかもしれないけれど。「きっとこのコードの作者は、最高にリラックスできるカフェでコーヒーの一杯でも飲みながらプログラミングをしたのだろうな」というような。

 

IMG_8418

 

ところでとあるライブラリに小さなPull Requestを送ることも出来たし、今日はやりきった感がある。打ち込んでいた仕事が一段落するというのは良いものだ。

エンジニアだけどデザイナーになりたい願望がある

たとえば「デザイナーだったけどエンジニアになった」という人がいるように、「エンジニアだったけどデザイナーになった」という人がいてもおかしくない。

デザイン関係の記事を読んだり、本を見たりすると、心の中の3%ぐらいが「いいなぁ」と動く感じがする。ただ、それはずっと3%ぐらいの衝動なので、いつまで経っても本格的に手を付けるどころか、何らかの絵筆をとることすらままないのだ。

ちなみに他の事柄に対しては0.1%も心が動かなかったりするので、3%というのはすごいことなのだ。

ということでエンジニア以外にひとつ好きな仕事を選べるとしたら、きっとデザイナーの道を選ぶことだろう。

そういえば昔はたまに紙に絵を描いたり、4コマ漫画を描いたりしていたものだ。子供の頃は、美術の授業が好きで、わりと褒められていた気がする。理科の授業で植物のデッサンを描いたりするのも好きだった。

だからなんだというわけじゃないが、三つ子の魂百までというか、デザイン的なものに惹かれる「種」は、昔から備わっていたのかもしれない。

 

エンジニアと給与

上場企業、勤続3年、35歳のエンジニアとしては安すぎる気もする。

30代で人生初の会社務め、業務エンジニア3年としては、そんなに悪くない気もする。そもそも今働けているということが幸福でしかない。

仕事自体は非常に面白い。別に給与のために働いているわけではない。人生を楽しむために働いているだけだ。

だけど仕事を満喫するにあたって「どんなに腕を磨いても、認められないし、給与は上がらないんだよなぁ」という思考がふとよぎり、楽しむことの邪魔をしてくるというのが嫌だ、というなんだか複雑な感情。

給与という洗脳にとらわれたくない。お金の幸福度への影響は、僕らの想像よりもはるかに少ない。お金に深々と洗脳されている僕らでさえそうなのだから、お金の洗脳から逃れた人間にとっては、なおさらそうだろう。

きっと仕事の楽しみ方が足りない。もっと深々と、全身を捧げるように仕事を楽しめたのなら、きっと給与のことなんかは、頭をよぎるまでもなくなるはずだ。

給与のことばかり考えながら働くほど寂しいことはない。

なんてことを記事に書きながら、これもまた、給与について思い出してしまう要因の一個となるのだろうか。給与についていくら考えても、その先で洗脳から解かれることはないし、なにか答えが見つかることもないだろう。だけど考えずにはいられない。まったくというのは無理だ。

 

プログラミングの中でも楽しい時と、楽しくない時がある

ということに改めて気付いた。

楽しい時

  • キーボードを叩いて実際のプログラミングをしている時、つまりトライアンドエラーが出来ている時
  • 言語の仕組みが分かりかけてきた時
  • プログラミング言語が家族や友だちのように感じられ、対話をしているように感じる時
  • キーボードを離れて、ソファに座って目を閉じながら、言語理解を深めるために自問自答を浮かべている時

楽しくない時

  • コミットの積み方やブランチの切り方に迷っている時
  • プログラミング言語を他人のように感じている時、無機物のように感じられる時
  • 良いエディタや環境が見つからなくて、メインのプログラミングまでたどり着けていない時
  • ひたすらドキュメントやStackOverflowを読み漁るだけで、理解が遠く感じられる時

僕が好きなのはプログラミングだ

ひとくちに「プログラミング」という大まかなくくりの中にも、プログラミングではない要素はたくさんあって、雑然とした周辺要素に追われているときなんかは、本当に楽しくない。

そして「楽しい」と「楽しくない」は、一見とても分かりづらい形で、数秒後ごとに入れ替わりながら、僕のもとに訪れたりするのだ。

もしこの世界に自分とプログラミングしか存在しなかったら

理解が遅くてもプログラミングは出来る

単に予習をすれば良いし、復習をすれば良い。

たとえば僕は今、Golangの channel と buffer と goroutine の相互の働きが本当に分からなくて苦戦している。

  • go言語 channnel とは
  • golang channel buffer
  • goroutine deadlock

色々なキーワードでググってみたり、手元でスクリプトを動かしたりしてみるが、どうにも腑に落ちない。

その理由は?

僕が細かい部分にこだわりすぎなのかもしれない。確かに自分でもディティールにこだわる傾向はあると思う。

そもそも要領が悪いのかも知れないし、物分りが悪いのかも知れない。

もしくは、似た言語を触った経験がないので、勘所がつかめていないのかもしれない。誰もがつまづきやすい箇所なのかもしれないし、僕だけがつまづいているのかもしれない。確かな理由は分からない。あまりの理解の遅さに嫌気がささないでもない。

人との競争

だけど自分の意識を操作して、なるべく気にしないように努める。

脳が「競争」にハッキングされそうな時は、まずは呼吸を整えて、脳の状態を整える。頭に浮かんだイメージを確かめ、身体感覚を確かめて、何が僕とプログラミングとの関係をブロッキングしようとしているのかをモニタリングする。

そして分かる。人と比較しても仕方がない。自分の理解の遅さに苛立つのは、いつでも「他の人の顔」が浮かんだときだけだ。時にそれは仕事の仲間だったり、架空の優秀なエンジニアだったり、どこにも存在しない「平均的なエンジニア像」だったりする。

プログラミングと僕だけしかいない島

だけどいまじんおーるざぴーぽー。もし仮に、この世界に自分とプログラミングしか存在しなかったとしたら、人と競争する必要さえなくて、本当にゆっくりとプログラミングを学び、愛することが出来るだろう。

だから僕はプログラミングを愛する。つまづいて、分からなくて、手を動かして理解する苦い工程の中にも、味わい深い甘さが隠れていることを知っている。そして見つける。

プログラミングは時に、現実逃避の手段

たとえ嫌なことがあっても、キーボードを触っているだけで、心が落ち着き、夢の世界に近づくことが出来る。脅かすものは何もない。あたたかな世界だ。(コンパイラに怒られることはあるけれど)

プログラミングは時には、現実の問題解決の手段であり、時には、現実から自分を守るための盾でもある。

なんて重宝するやつだろう。

プログラミングは食べるもの

「食べる! SSL!」という本がある。この本のタイトルは良い。

スクリーンショット 2018-07-16 18.30.30.png

プログラミングって「食べている感覚」がある。果実のようで、カフェラテのようで、ステーキのようで、お米のようでもある。

たとえば長いドキュメントを読む時だって、ドキュメントを食べ物のように感じているなら、食べている時間は長ければ長いほど嬉しい。噛みごたえがあるのも良い。美味しいものはずっと味わっていたい。

どんなに食べても太らない食べ物。それがプログラミング。むしろ食べれば食べるほど美味くなるし、味わいは増すし、たぶん頭もちょっとだけ賢くなる。いや、逆に馬鹿になるかもしれないけれど。

こんな風にいつまでも、プログラミングを食べ物のように感じていられたら幸せだなと思う。