コンソールの標準出力はなんと美しいんだろう。メガネを外したメガネっ子か?

よく眺めると本当に綺麗だ。今までこんなに綺麗だとは思っていなかった。

メガネを外したメガネっ子が思わぬほど可愛かった。アニメで例えるならそんな感じだ。

そういえば仕事中は、じっくりと標準出力を眺めるような贅沢をしてこなかった。だけど今日は休日だ。この美しさにうっとりと出来る時間がある。余裕がある。素晴らしいことだ。

願わくはこの余裕を仕事中にも持てますように。きっと持てる。持てるはずだ。メガネを外せ。標準出力。

スクリーンショット 2018-06-23 9.32.25.png

エンジニアが休日に勉強するコツ。聖火リレーみたいに、火を絶やすな。

平日は業務をしていると、エンジニアリングの火が燃えている状態だ。これが休日に入ると、だんだんと火が小さくなってゆく。

「休日は思い切り勉強しよう!」。そう思っていたモチベーションもだんだんと下がってくる。「休日中に勉強なんて、そんなもったいないことはやめよう」。「もっと人生を謳歌しよう」。そんな意識に変わっていく。そして日曜日の終わりには、まるで勉強なんかしていなかった自分に気付く。こんなことを何週間も、何年だって繰り返す。

休日は脳を変える。平日脳から休日脳へ。あんなに輝いていたエンジニアリングの世界が急に色あせて見えるのは、きっと火を絶やしてしまったせいだ。

なのでエンジニアの勉強はマメにする方が良い。たとえば3時間に一度はコンソールを触ったりして、脳の火が消えないように、薪を継ぎ足すのだ。なるべくなら手を動かした方が良い。原始人が手で火を点けるみたいなイメージだ。手の動きは脳と直結しているので「火」を起こしやすい。

いちど消えてしまうと次に火を点けるのにはコストがかかる。消えてしまった火をまた点けるというのは、僕らが想像するよりも10倍は大変なことだ。だから火を絶やすな。エンジニアリングの魔法の中にい続けよう。夢を終わらせず、聖火をリレーしていくのだ。

エンジニアの勉強を邪魔する心理的ブロッカーたち

「エンジニアリングの勉強をしよう!」

意識がそう思ってモチベーションを上げた瞬間に、まったく逆の反応が起こり始める。

例えば次のような事柄が、次々に思い浮かび、勉強したい気持ちをブロックする。ほぼ無意識におこなわれる自動的な思考、そして反応の連鎖だ。

  • 今の年齢から真面目に勉強を始めても遅すぎるんじゃないだろうか。
  • 自分はエンジニアの勉強が本当に好きなのだろうか。もっと好きなことがあるんじゃないだろうか。
  • 勉強を始めても、どうせまたやる気をなくすんじゃないだろうか。モチベーションは一時的なもので終わるんじゃないだろうか。
  • 今日だけ勉強しても意味がない。生涯の習慣としなければいけない。つまり今日の勉強には意味がない。
  • エンジニアリングの勉強をするよりは、他の勉強をした方が実はコスパが良いんじゃないだろうか。たとえば英語の勉強とか。
  • 人生には勉強より、もっと大事なことがあるじゃないだろうか。貴重な人生の時間を、勉強なんかに費やして良いんだろうか。
  • オフの時間や休日を勉強に費やすのはもったいなさすぎる。休日は完全に開放された時間でなくてはいけない。
  • エンジニアリングなんて結局は人間が考え出したもので、勉強しても、実は全く人間として成長するわけじゃない。
  • 将来の仕事を確保するために、現在を犠牲にしながら生きるなんて、まっぴらごめんだ。
  • どんなに勉強しても、天才的なエンジニアにはかなうはずがない。超一流のエンジニアになるのは無理だ。
  • どんなに勉強しても、結局最後には人間は死ぬのだから、せめて気楽に遊びたい。

このブロッカーたちはあまりにも大勢でやってくるので、ものすごく手強い。

「考え方を変えれば良い」だって?

自己啓発的なメソッドは効果が非常に低いと思う。

意識的に考え方を変えようとしても、僕らの思考というものはほぼ自動化されている。自動化された思考と一瞬の心構えでは、自動化のほうが完全に有利だ。

思考を無理矢理に変えようとしても、それが逆効果になる場合も多い。身体反応のレベルが変わらなければ、いくら思考を変えても意味がない。なので考え方を変えようとするメソッドは効果が低い。そして危険過ぎる。

瞑想するエンジニア

僕の場合はマインドフルネスの技術 が助けになっている。瞑想を始めてから二年、少しずつではあるが、エンジニアリングの勉強を楽しめるようになってきた。

僕はブログを書きながら休日を過ごすのが好きだが、それとプログラミングの共通点も見え始めた。どちらもPCのキーボードを叩きながらアウトプットをして、自己表現をして、自分の脳と遊ぶ方法なのだ。言葉で言うのはたやすいが、これを身体レベルで理解できるようになってきた。

ブログを書きながら休日を過ごしても、プログラミングをしながら休日を過ごしても、本質は変わらない。どちらも今の瞬間に存在するというトレーニングなのだ。

人生を楽しむためのエンジニアリング

「エンジニアリングでは人生を楽しめない」「勉強は苦しいことだ」という景色を、少しずつではあるが塗り替えて行く。仕事を担保するための勉強ではなく、人生を楽しむためのエンジニアリングをする。

何か外部的な目的のために勉強をするのは、そもそも不可能だと気付いた。自分の内面に接続しなければ勉強なんて出来ない。つまり、エンジニアリングの勉強をしながら、自分に接続するトレーニングを積めばよいのだ。

「自分に戻ってくる」トレーニングを積めば、エンジニアの勉強は苦しいものでも、義務でも、将来のための投資でもなんでもなくなる。ただ単に、今に酔いしれるための手段になることだろう。カフェでコーヒーを飲むみたいに、新鮮なりんごを剥いて食べるみたいに。

そう僕らは実は、なにかすごいことをしでかしているわけじゃない。エンジニアリングというフィルタの下でダンスを踊っているだけなのだ。

 

エンジニアのモチベーションを上げてくれるのは他の人間、他のエンジニアの影響だ。

それに尽きるんじゃないだろうか。たとえば根っからのエンジニア気質の人と話し合うと、その炎が、自分の魂にも広がる感じがする。自分でやる気が出せないエンジニアこそ、すごいエンジニアに影響を受けるのが得策だ。と言っても「意図的に影響を受ける」ということ自体が難しいかもしれないのだけど。

なぜならたとえば、他のエンジニアに影響を受けてモチベーションを上げたエンジニアがいたとしても、それは未来から過去を鑑みた時の結論に過ぎない。過去から未来につながる再現性があるとは限らない。そもそもモチベーションが低い状態では「影響を受けたい気持ちになりたいと思おうとしたくない」といった気分だろう。

いや、だがしかし、とは言っても、最も有効な手段があるとしたらそれは、きっと人間の影響なのだ。この世の中のほとんどの物事と同じように、人間は実は他の何ものでもなく、他の人間に影響を受ける生き物なのだから。

エンジニアリングを好きになりたいなら、エンジニアリングのことを考えてはいけない。決して。エンジニアリングが好きでたまらない人間のそばに行って、話し合い、モチベーションの延焼を起こすのが一番良い。もしそれが可能ならばの話だけど。

そしてこれはモチベーションという浅い言葉でさえ片付けられない。エンジニアリングへの愛の話だ。テンションは上げられなくても、愛ならば深められる。愛は育むものだ。エンジニアリングを愛する努力を「うまく」続ければ、心に受け入れ体制さえ作っておけば。いつも愛する可能性を残しておこう。エンジニアリングには会いするだけの価値がある。

プログラミングは名前が9割というのは本当だと思う

名前に敏感なタイプの人と、そうでないタイプの人がいる。「名前感度」のようなものがあって、名前に対する引きずられやすさは人によって違う。

だけど多かれ少なかれ、意識しているにせよしていないにせよ、どんなエンジニアでも、実は名前には多大な影響を受けているんじゃないかと思う。よほどアセンブラみたいなエンジニアでもない限り。

僕といえば名前感度は高くて、名前に引きずられることが多い。感度が高いというと良く聞こえるかもしれないが、要するに引きずられがち。名前に影響を受けてコードに対する理解度が激しく上下する傾向にある。

自分が腑に落ちない、うまく理解できない名前が使われていると、コードの理解度がぐんと下がって、いつまでも理解しづらい場合がある。人生で何度も顔を表してはトラブルを引き起こしていく、悪い知人みたいに。(そんな知人はいないけれど)

ということで名前に引きずられがちな僕は、よほど名前を大事にしたいエンジニアだ。たぶん。

君は make install を味わうことが出来るか? 大量の標準出力と仲良くしよう。

大量コンソール出力を見るのは暇な時間ではない。コンパイラの気持ちになる時間だ。

大きく間違っている気もするが、ざっくりした言い方でコンパイラ。この言い方が気に入っている。コンピューター処理を理解するものは全て「コンパイラ」と呼んでやる。少なくともこの記事では。俺はやるぞ。

大量のコンソール出力が流れる時、僕らはそれを無視してコーヒーを飲んだり、あくびをしたりしがちだが、コンパイラの気持ちになれば、すべての標準出力も美味しくいただける、理解と勉強の時間になる。

「curlコマンドひとつ入れるだけで、Cとか色々使ってるんだな」とかざっくりとした理解でも良い。標準出力を味わってみよう。たぶんよく見れば、色々なことに気づくことが出来る。よく分からなくても見つめて。そして揺れる想い。

ところでコツは周辺視野かもしれない。あまり凝視しすぎると疲れるし無駄に脳のCPUを喰う気がする。まずはボヤっと眺めてみよう。

Screen Shot 2018-06-22 at 8.58.11.png

1on1ミーティングのセオリーは相手によって変わるのが面白い

四人の小規模チームで全員対全員の1on1ミーティングをやっている。

最近はだんだんと、相手に応じたリズムというか、色というか、流れがつかめてきた気がする。人間が根本から違うのだから、セオリーも変わって当たり前だ。

たとえば一人のメンバーは技術志向、開発志向なので、技術やコードベースやバージョンアップやチームのリソースの話をすることが多い。チームの未来の理想像、コードベースの理想像について考えていることを聞いて、1on1が終わった時には希望が道となって見えるような気がする。

1on1ミーティングを始めて良かったと思うのは、一対一で話さなければ絶対に出てこないような話題が出てくること。いや、もしかしたら話題自体はチームでいる時と変わっていないのかもしれない。だがもっと深く掘り下げることができる感じがする。ディグダグ・ディグダグと。

もっとエンジニアの勉強を好きになりたい。良いゆでガエル。

人生のほとんどの時間をエンジニアリングに費やしても良いような恍惚を感じてみたい。不勉強な自分はまったくその境地にまで至っていない。

だが業務中にはその感覚が少し分かる。特に慣れ親しんだ技術分野でちょっとだけ新しい情報や仕組みに触れる時は、まるで慣れ親しんだ作家の新刊小説を読むような感覚で、とても美味しい味わいがする。

エンジニアとしての「勉強」をじゃなくて、もっとエンジニアリングを好きになる方法はないだろうか。もっとエンジニアリングを愛する術はないか。僕が君を愛する術は。スベハスベハナイカ。たぶん心は無理矢理には動かせない。自分というものを少しずつエンジニアリング漬けにしていく必要がある。良いゆでガエルだ。

最高のチームって何だろう。エンジニアの仕事は音楽に似ている。

今のチームの状態は悪くない。冗談だって言い合える。

そんな話を今日、メンバーとの1on1でした。

本当に悪くない状態だと思う。大げさに言うのならば、お互いたお互いを尊敬しているとさえ表現できる。というか単純に居心地が良い。言葉上では矛盾するようだが、規律がある上に自由だ。この良さを言葉にすると難しいけれど、4つのピースが協働しながら動いている感じはする。

要するにチームの良さというのは、単純に個々の技術力や、ひとつずつの要素のかき集めではない。チームを一つの生き物として見た時に、いかに共震的な動きをしているかなのだと思う。小さな魚が何匹も集まって大きな魚のように動くみたいなもので。たとえば音楽家、特にジャズ演奏家がセッションをするように、言葉ではとても言いづらい部分にチームとしてのコアが存在して、音楽は目には見えない部分で流れ続けているのだ。

時には不協和音を奏でることもあるし、協和音を奏でることもある。全体が大きなシンフォニーのひとつで、もしくはミニマムな小曲の連なりであり、チームで働くということは、たぶん音楽にかなり似ている。そして今のチームは四人構成。バンドは四人組がちょうどいい。ビートルズも四人組だった。

エンジニアチームはドラクエパーティーの人数で組むのが最高だ。つまり四人組。

今のチームは四人構成だ。これはドラクエでパーティーを組む時の最大人数にして最適人数だ。勇者、戦士、僧侶、魔法使いだって仲間に入れられる。四人というのは小規模チームとしては最高の人数なんじゃないかと思った。

三人では心もとない。これが五人六人となってくると、コミュニケーションの糸の数は膨大に膨れ上がる。お互いがお互いのことを把握していられるギリギリの人数、それが四人なんじゃないだろうか。単純すぎず、複雑すぎることもない、チームの中心に良い輪郭が浮かび上がるちょうど良い人数。

ところで理由はないが、チーみ人数は奇数より偶数が良い。三人組では道を歩くと必ずはぐれる一人が出る。たとえば合コンでも男女二対三はアンバランスだ。ドラクエのパーティー最大数である四人か、もしくは多くても、WIZARDYのパーティー最大数である六人でチームを組みたい。バラモスを倒しに行くなら四人で、白黒のダンジョンに潜るなら六人だ。(何がバラモスで何が白黒のダンジョンなのかは各自の解釈に任せる。解釈しようとする人もいないだろうが)

ということで僕は今の四人構成というチームをかなり気に入っている。エンジニアの仕事はドラゴンクエストだ。きっとドット絵がよく似合う。