開発も佳境
最近ハマっている言葉
「飛び降りてから飛行機を組み立てる」
海外に行ってから、英語を喋れるようにする。みたいに、とりあえず後に引けない状況になるよう行動してから、学び始めるみたいな意味で、Windows 95を作った日本人技術者の言葉ですね。
今の仕事の状況も、コンセプトありきでこういうものを作ります。ってさもできるふうに社長に宣言してから、勉強をスタートしてる状況で、こういう状況を最近作りがち。カッコいいじゃん技術者として。(失敗したら傍迷惑だが)
とはいえ色々知識が足りなくて、移動時間を利用してC#の構文を一から学んでいました。
Linqが凄い
C# を書いていると、至る所でp ⇒ p % a みたいな構文が出てくるんですよね。
「これってなんなんだろう。」「文脈から考えると、こういう動作をするための構文なんだろうなあ」と思いつつ、まあいっかと無視して開発していましたが、今日学習して初めてこれがLinqと呼ばれる構文であることを知りました。
配列操作(というかデータベース操作ですねこれは)が簡単にできるようになる機能なので、データベースアプリではとにかくLinqが出てきます。
EF Coreの公式ドキュメントでもCRUD操作に対応するLinqみたいな感じで急に出てくるもんだからさ、マジで頭に入ってこなくて、LinqはCRUDのように僕が知らないだけのデータベース操作の略語だと思ってたし。ようやく分かったよ。君は単なるIf文であり、For文でもあるんだね。
知らない事を誇る
不幸にも僕らは想像力が豊かなので、地上で飛行機を組み立てていると、空にいるわけでもないのに様々な不安に支配され、あらゆる状況を想定して、本当にそれが役に立つのか分からない複雑なシステムを組み上げてしまいます。
しかし、飛び降りて地面が迫っている状況では、その機能が使えるか、どうか。でしかないというか。理解できるけど動かないものより、よく分からないけど動くものを採用していきます。
Linqはその典型で、選択処理と反復処理をいくら積み上げても動かないロジックが一発で動く、君が誰かも知らないのだけれど。仕事ができるならよし!採用!あとから聞く!みたいな感じでした。
そんで無様に着陸してみて、有用だったものはあとから調べてもやっぱりクールなんですよね。
蛇足にもLinq以外の例を挙げればstaticって書くと何故か正常に動作するんだよね。みたいな変数があって。staticが全く分かってないけど、とりあえず書くと動くから書いているみたいな状況を許容できるかどうかが、世界の捉え方の境界線だと思うんです。
僕としては許容できてしまう。それでいいし、それがいい。あとから聞くと君も優秀なんだねみたいな出会いの方が鮮烈で素敵。
知らなくても良い事は別に知らなくていいと思ってしまう。正義の話ではなく、好みの話だよ?
物事を関数化して抽象的に考えるのが好き、というか。電子レンジを水分振動マシーンではなく、ひねると中に入れた弁当が熱くなるみたいな感じの理解の方が有用だと思ってしまう。
この短絡さは悪なのか、棒なのか、氷なのか、神なのか?
あとから水分振動マシーンだと知って、飲み物を入れても良いって分かる方がドラスティックに記憶に残って感動的に見えるのが好き。
君のこと誤解してたみたいだ。今まで教えてくれなくてありがとう。
だからこの話は正義の話ではなく、好みの話だと言っただろう。
シンプルに生きる
とはいえ色んな人がいて、いろんなやり方で成功しているので、僕の考え方がベストプラティクスではないとは思います。
昔読んだ本に成長曲線が二種類あるって話が載っていました。
僕は色んな物事を抽象化して、短期的に成長できるけど、長期的には伸びないみたいなタイプ。
もう一種類はじっくり一つずつ理解を進めないと全体を理解できないタイプで、これは長期的に見れば、短期上達者よりも上達するみたいな話。
脳の構造が違うのだから、仕方ない。
僕にとってのシンプルと、他の人にとってのシンプルは違う。
理解しないことのシンプルさと、理解することのシンプルさは比べる必要なんてない。
そういうものだと理解する容易さが好きだと、自分を抱き締めて生きていくしかない。