読者です 読者をやめる 読者になる 読者になる


プログラミングのスピードを上げる方法3


いやもう、タイトルとは全然関係ないところまでいっちゃうけどね。
一応続き物なんで。



僕も書きながらですが、
登さんの摩訶不思議言霊を解析していきたいと思います。

2007-03-24 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記

僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。
その結果、多い月で 10 万行 / 月くらいである。
なお、言語は書くソフトウェアの性質上、大半が C 言語である。


また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。


略、


このようなことは、僕が大学に入学してから現在までの 4 年間ずっとやってきたことだが、
同時にソフトウェア開発だけでなく、大学の単位の履修 (大学では普通に進級し特に留年等することなく卒業できた)、
学術活動 (4 年間で、学会で 4 件の招待講演、1 件の受賞、5 件程度の他大学での招待講演を行った)、
ベンチャー起業と経営などいろいろなことを高い密度で行ってきた。
同時に多数のことを行っても、能力不足による支障はほとんど出なかった。


これから、誰でも少し考え方を変えるだけで、上記のような能力・作業効率を獲得することができるのだということを伝えたいと思う。

wktk( ゚∀゚)o彡゜フウゥッ♪ フウゥッ♪


中略

上記のような方法は、恐らくプログラミングだけでなく、
色々な物事の設計や、文章の執筆、自動車等の運転などおおよそほとんどの作業で活用することができるのではないかと思う。


しかもこの方法は、一切努力をしたり苦労したりする必要が無く、とても気楽である。


なお、何人かの、作業効率が良いコンピュータ関係のことをやっている人と話したところ、
大体は上記のようなことを (表現は異なるが) 普段から実践しており、
それによって、平均的なレベルと比較して遥かに高い能力で作業をしているようである。


そういやid:kogaidan氏も、脳の処理に出力が両手じゃおっつかないから
「早く脊髄に電極差したい」とか変態発言してましたね。
(仕事しながらもあの読書とエントリー量は超変態)


最大の問題点は、


せっかく上記のようなことを読んでも、大抵、まずは頭の中にある論理的思考が、
「上に書いてあるようなことは論理的に有り得ない」というように論理的に考えてしまい、
いつまでも論理的に考えてしまうことがあるということである。


論理的に考えないほうがうまく行くと聞いても、それが正しいかどうかやってみずに、
論理的な正誤判断をしようとして、
「論理的に考えた結果、まさかこんなことはないだろう」という論理的な考えに従い、
いつまで経ってもやってみないということがある。それはとてももったいないことである。


英語を何年も勉強しても英語がしゃべれない人というのは、
論理的思考で日本語にいちいち変換してるらしいですね。


聞くときは単語全てをいちいち日本語に解釈しなおして、
しゃべろうとするときも、日本語で思ってそれを英語に訳してはじめてしゃべりだす。
もちろんそんなスピードでしゃべれるわけがない。


日本人が言う「愛」と
アメリカ人が言う「Love」も
ニュアンスは違ってきますし、ほんとの意味で訳せるものではない。
「恋」が「like」かというとまた違いますし。


論理的に考えず、LoveはLove likeはlikeとしてそのまま受け取る。
(学習には英和辞典より英英辞典がよしとされてます)
赤ちゃんみたいに素直にね。


むしろ論理的にいちいち考えない、渋谷の女子高生とかのほうが
ずっとコミュニケーション能力高かったりしそうですw



この記事の現時点でのトラックバックを全部読んだのですが
さすがにトラバ送るだけあってか、意外と賛同意見が多かったのはビックリです。
「登さんほどとはいかなくても」と注釈があっても、
英語をしゃべれる人としゃべれない人ぐらいの圧倒的な違いがそこにはある。



で、僕もまだ理解し切れてない方なので、
凡人派のほうの意見をつぶしていってみましょう。
登さん的に、「それができない理由」を消していきます。



凡人派ではないようですが、個人的に一番具体的だった意見は

同時並列的な論理的思考 - fuzzy Weblog@hatena


言いたいことはわかるのですが、前提条件がいろいろとあるので読者の感覚とずれが生じるのかも。多分、


1. ソフトのクライアント(要求元)が本人で、


2. 開発に必要な基礎知識が習得済みで、


3. 実現に必要な技術の考案が容易で、


4. 他人(顧客や営業、上司など)に説明する必要がなくて、


5. 他のコーダーに指示・指導・教授する必要がないか、それぞれ独立して活動できる


場合には
「1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる」
は実現可能でしょうね。
そもそも、「1 ヶ月にわずか数百行 〜 3,000 行程度しかプログラムを書くことができない」
というのは登さんが取り扱いたいと思う仕事とは重ならないでしょうし(笑)。


もしこれが真なれば、とても話は簡単です。


1,自分発のアイディアであり


2,すでに開発の基礎知識を取得済みのレベルで(大学生並み)


3,技術の考案が容易な方法に的をしぼり(枯れた技術の水平思考


4,他人に説明する必要がないわかりやすいもので


5,ひとりでやるか、それぞれ独立して活動できる範囲にとどめる


ということですから、そうしちゃえばいいんです。
でも普通の会社でそんなことは無理だと思うでしょう。


でもこれは独立してやってもずっとおいしい話。
何せ月に数百行と、日に1万行では100倍以上の差があります。
会社のような事務や営業がいないから独立では生産性のかけ算ができないとしても
例え生産性給料が会社の3分の1にしても、
独立は100/3で、30倍にもなります。


なんなら20%ルールを適用してるGoogleにいけばいいわけですし
Googleは全然技術者を募集してるわけで。
3,4以外は満たせる人多いかもしれません。


でも、もしかして僕が知らないプログラムの世界というものは


「月数100行が、月30万行に劣るとは限らない」


のかもしれません。
コメントや、トラバで「行数では一概に比べられない」という意見を多数見ました。
まあ、30日毎日プログラム漬けってわけでもないでしょうし、
それでも1行1円で、月900円と、月24万円とか言われたらもの凄い桁違いに思えますが
実はどっちも24万円の価値があるのかもしれません。
プログラマでそんな生産性が違いすぎたら、
凄い人、4,5人ですむ話ですしね。
(あれ? でもそういう少人数がいつもとんでもないWebサービスとか開発してるのか?)



でもそれじゃ面白くない。
「登さんは行数多くても結果は全然普通」
「登さんは天才すぎ」
の結論では解析にならないです!


コメントから

”単純な経験量・向き不向きの差” ではありません。

努力しようとするから、苦労することになり、しかも期待していた成果が得られないことがある。
努力しようとしなければ、苦労することはなく、かつ常に期待していた成果を得ることができる。


このことは実際に試してみないと分からないが、
多くの場合、努力しないことによってさらに悪い結果が生じるという恐怖心から、試すことができないことになる。
また、「努力しないこと」を「楽をしようとすること」「何もしないこと」と同じであると誤解するとうまくいかない。

論理的思考は完全にゼロということにはできないけれども、可能な限りゼロに近づける、これがコツです

何かを習得するために、最初は ”努力する” ことから入るのが良いのかも知れません。
その結果、努力することによって習得することは不可能であるということに気付き、努力するのを止めることになります。
このとき、大抵の場合は習得することを諦めるようなのですが、そうではなく、努力しないでその対象物の本質を知る、
即ち自分の思考プロセスにおいてその対象物への関数ポインタを獲得して保持するというとても簡単な作業を行えば、
習得したことになると思います

まるで武道や宗教の世界w


肯定派の意見も集めてみましょう。

メイブルストリート・blog日記 - プログラミング時の思考回路


若い時に、会社の飲み会で上司から、


「xxx(私)は、超ピーキーなレーシングマシンみたいなんだよなぁ。」
「パワーバンドに入ると物凄いけど、ちょっとでも外れるとスカスカ(w」


なんて事を言われた記憶があります。
それを言われた私は、「あぁ〜、それは上手い表現だなぁ(w)」と思いました。


パワーバンドに入っている日は、
「ここのコードはこう言う意味を持ってるから、こうあるべき」
という、論理的に考える思考方法では無くて、
「頭に浮かんだイメージを、実装する言語用に変換するだけ」
てな感じの「直感的なプログラミング」をしていたように思います。
そういう日は確かにコードの量は増えてましたが、バグも結構ありましたね。
でも、そういう時に作りこんだバグは、「感覚的に」見つけれる事が多かったのも事実です。


そういえば、今現在でも難解なバグを見つけた時には、
「何となくだけど、多分あそこじゃねぇ?」という感じの「直感」が働いてた事がほとんどですね。


自分の場合は、プログラミングに限らずスポーツなどでも、
「何となくイメージしてみて、出来そうなイメージがはっきりと掴めた」
時には、初めてのトライであってもそれなりに出来てしまう事があります。
今では長年の趣味となったスノーボードなども、最初はそんなパターンでした。


ただ、そういう時には「自分の姿がイメージできてるだけで、論理的なことは全くわかってない」事がほとんどです。
なので、「何故にすぐ出来るのか教えて!」と言われても、上手く説明できないんですよ(w


仕事としてのプログラミングにおいても、触ったことの無い言語でのアプリ製作で、
その言語の入門やサンプル、リファレンスをさらっと見て「何となくこんな感じかな?」
というスタイルでコーディングに入ると、結構上手く出来たりするのです。


そういえば、昨年の春に体調崩して休職したのですが、休職直前の打ち合わせで取締役から、
「入社間もない頃に、今までに触ったことが無いはずのJava言語で、何故あんなに早くモノが出来上がるのかと、正直驚いた」
と言われたのを思い出しました。


自分では驚かれるようなことをやったという意識は全く無くて、
「何となく出来そうなイメージがあったので、やってみたら出来ただけ」なんですけどね(; ̄▽ ̄)


こんな感じで昔のことを色々と思い出して見ると、「感覚的に捉えて何かを実行する」時には、すんなりと物事が進んでいましたね。
逆に、仕様書作成などのように「論理を組み立てて実行する」のは、非常に苦手でした(; ̄▽ ̄)
ちなみに、今現在でも仕様書を書くのは物凄く苦手です(orz


そういえば、会社で「新人が使えるようになるのは3年後から」とか
「まず研修で3ヶ月通して、、」なんて前置きがありますよね。


そういう会社では3年とか、3ヶ月通してはじめて
現場の舞台で任せられるってことでしょうけど
これが、「いきなり実践投入!」とかいうOJTを超えた
現場主義の中小企業とかも結構あって、
もちろん丁寧な仕事にはなりえませんが、
圧倒的に後者の成長が速いんですよね。


いきなり現場投入しても右も左も分からなくオタオタする人が多いですが
中には、初めての現場でスッと入って
いきなり活躍しちゃう人とかもいます。
その場合、「君何か似たよな仕事やってたの?」って聞いても全然そんなことはなくて、
「いや、なんとなくできそうに思えたので」っていう
かなりなめた口をきくわけですww


そういう人はひどく仕事の予測イメージが高い。
イメージトレーニングの抜群なスポーツ選手とでも言うのでしょうか。
3ヶ月や3年の下積みがまるで無駄に思えるぐらいです。
(蛇足として、そういう「天才」を論理的思考で矯正して「普通の社員」にしてしまう上司も多々います)

論理的にプログラムしないプログラマー ネットに花を咲かせましょう。 会社作りました。


まさにその通り、私もそう思う。
同じように感じている人がいることがわかってちょっと嬉しい。


論理的にプログラムするのは間違いだと思う。


でも、職業プログラマーでそう思ってる人は、少数派だと思う。


私は、小学生だった頃からプログラムをしていたけど、
職業としてのシステム屋になったのは最近なので、
みんながどうやってプログラムを作っているのか良くわからなかった。


職業としてシステム屋になった時に、
SEについてとか、設計についてとかの本を読んだり、
先輩方のやり方をみて、同じようにやってみようとしたけれど、
システムを作るときに、頭で論理的に考えてから作ろうとすると、
ほとんどの場合、生産性は落ちるし、バグだらけになる。


なんとなく、「こんなのつくりたいなぁ」と心の中で念じて
数日ぼーとしてからおもむろに書き始めるのが一番まともに作れる。
物心ついたときには、既にそうだった。


スポーツとかだったら、どんな三流のプロでも絶対に論理的に考えてから
体を動かすとかして無いと思う。


スポーツでラケットの位置がどうとか、体重の載せ方がどうとか
考えながらやってるのは、それこそはじめてやる入門者ぐらいで
プロじゃなくても、論理的に考えるより感覚で動く事の重要さを理解している。


なんでシステム屋は論理的に考えるべきとかなっちゃうんだろう?


これって考えかたの問題だけなので、やろうと思えば出来ると思うし、
出来ないなら出来るまで訓練すべきだと思う。


そうしたほうが絶対にいい物が出来ると思うんだけど、
世間では論理的に考るのが正しいとされている。


これでは、感覚で作るプログラマーは出てこない。

Cagylogic: 一日に何行のプログラムが書けるか


これは非常に賛成。


500行くらいの他人のコードをデバッグするために、
読みづらいからと、テンポラリにさくさく書き直してたら、100行くらいになっちゃった。
てなことはよくある。


んで、問題個所を見つけて、ピンポイントで元の500行のコードを修正する。
せっかくなので100行のコードもコメントとして添付してあげる。
ここで、100行のコードに置き換えることは、やっていいときと悪いときがあるので注意。
テストなどを考えると、なんでも置き換えていいってもんじゃない。


基本的に僕の書くコードは短い。単純に言えば、僕が覚えられないから。



大学生のときなどは、若くて体力もあって、記憶力も集中力もあったので、
長いコードを一気に書いても全体を記憶していられた。
最近は、覚えられないので、覚えられる範囲のコードしか書かない。
でも、できあがりは、あんまり変わらなかったりする。


新卒の人のコードをレビューしたりすることもあるけども、わざわざこんなに難しく書かなくてもいいのに。
って思うのと同じ。

まず、だいたいこういうソフトウェアがあればいいなあとか、このような機能を付ける必要があるなとかいった、
とても抽象的なことを思い浮かべる。
この際、「絶対に論理的に考えないこと」が必要である。
論理的に少しでも考えてしまうと、途中までうまくいっても、それが壊れてしまい、
最初からやり直しになるので注意する。感覚的な思考でもってこれを行うのである。


次に、だいたいイメージができたところで、
心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。
ここで注意するのは、「絶対に論理的に考えて設計をしないこと」である。
徹底して、感覚的な思考でもって設計する。


あぁ、こんな感じ、こんな感じ。
ここでは「感覚的な思考」って言葉を使っているけど、僕がよくいうのは、「匂いがする」って言葉。


この、匂いがするポイントってのが重要で、なんとなくややこしくなりそうな部分だったり、
バグが出やすいだろうなぁって部分だったりになる。


このやり方には僕にとって欠点がある。


ひとつは、この設計図がある程度の規模を持ってしまうと、僕の記憶力では足りなくなる点である。


ある一点のイメージが出来上がると、そのイメージが元となって、そこから先の設計は必然的に決まってくる。
まさに、デザインがデザインを作り上げていく状態。
でも、このような状態になっても、いくつかの地点ではやっぱり、
なんとなくつじつまが合ってないような匂いのするポイントがあって、
そこにふっと意識を集中すると、元イメージがどっかに行ってしまう。
また、つじつまが合ってないポイントが複数個所あると、1箇所考えているうちに、もう1箇所のことを忘れてしまう。


ということで、でっかいホワイトボードなりに、ごりごり書いていくことになるのだが、それでも、やっぱりわけがわからなくなってしまう。

論理的に少しでも考えてしまうと、途中までうまくいっても、それが壊れてしまい、最初からやり直しになるので注意する。

たぶん、ここがポイント。
匂いがする部分ってのは、やっぱり論理的に考えたくなっちゃうところで、
それをやっちゃうと記憶が飛んでしまうので、やり直しになってしまうんだと思う。


本音を言えば、どこかに書いてしまうのではなく、力いっぱい集中して、全部を記憶の中に入れて、
うんうん考えた方が、最終的にはいいスタイルになることが多いんだけど、そこまで体力が続かない。


設計のあとに、あとはなんも考えないで、記憶の内容をそのままコードに落としていくだけの作業となる。
ただ、どこかのメモを見ながらコードを書くことは難しい。
結局覚えきれなかったことは、メモを見て、もう一度頭の中でイメージを作りなおして、コードに落とす。


集中しているときは忘れないので、一気にコードに落ちていくが、記憶力が足りないので、
手を止めて、メモを読んで、あぁそんなこと考えてたわ、って頭の中で再構築せにゃならん。


全部覚えているときは、頭の中でステップ実行ができたりして、便利だぞ。



次の問題は、このやり方で集中して一気にコードを書くと、集中が途切れたときに、みーんな忘れてしまうこと。



あれ?俺こんなコードなんで書いたんだろう?いや確かにつじつまあってるけど、なんで?って頭の中がはてなマークでいっぱいになる。
これを避けるために、設計の内容を自分自身があとから思い出せるようにしておく必要がある。



このことは次の問題にもつながっていて、この設計の内容を未来の自分を含め、他人に伝えるのが非常に難しいこと。



最近は、一人でコードを書くというよりも、複数人でコードを書くことが多いので、頭の中で描いたイメージを他人に伝えなくてはならない。



他人に伝えているくらいなら自分で書いた方が早いんじゃないかと思うくらい、これを他人に伝えるのは面倒である。
とくに、その匂いのするポイントなんてのは、もう、びっくりするくらい人には伝わらない。



人に伝えるときには、全体を一気に説明するわけにはいかないので、順番に説明することになるのだが、
この順番ってのが曲者で、大雑把に説明しても伝わらないし、細かすぎてもわけわからないし。



まぁこの辺がデザインドキュメントを書く腕の見せ所なんだろうけど、まだまだおいらでは難問です。



と、ここまで書いておいてなんだが、プログラマのコードを書く速度も重要だけど、それ以上に、他人のコードを読む速度も重要である。



結局のところ、新規で作ることよりも、既存のコードをどうにかやっつけることが多いわけで、
それも自分の書いたコードはもとより、他人のわけのわからないコードも攻めなければならない場合、
他人のコードを読む速度ってのは、コードを書く速度よりも飯の種になるんじゃないかと思う今日この頃。


まぁコードなんて短ければ短いほどいいわけだし。


怠けるために努力しましょう。


ああ!!
そうか。。
そういえば僕も、基本的にうまくいってないときは「途切れたとき」。
イメージが、論理的思考に変わったときに大きく減速してしまう。


イメージだけで進めるのは簡単で快適なのに、
途中でいろいろひっかかって論理的思考のスイッチが入ってしまう。
こうなるともうだめ。
プログラマでいう月数百行程度の出力に陥る。


例えばデートで好きなライブコンサートいって興奮したときとか
尊敬する人の講演やセミナーや勉強会に出席したときとか、
このときの良い興奮とイメージは2〜3日続く。
仕事もプライベートもすこぶる調子がいい。


それが4日目、いつのまにか論理的思考にはばまれてる。
あれこれ悩んでる。w
「おかしい、イメージ通りにはいかないぞ」って。。
そこで絶対、論理的思考にはまっちゃだめなんだ。
don't thik feel



池谷氏によると夢と現実は本来区別がつかないもの。
夢と現実を区別しないで望むとおりに人生を歩む人はおかしいといえばおかしいのだが、
それがみんなどこでその純粋な心をなくしたかというと
「思い悩んだ瞬間、思い悩む現実を実現させてた」のか。


逆にうまくいったときはほとんど
「根拠のない自信」から発生していた。
絶対なんとかなる。うまくいく。でも根拠はゼロ!
こういうのはわりとすんなり通った。
すんなり通ったのは「思い悩む前に実現した」ことだけど、
もしかして時間のかかる望みだったとしても
「途中で思い悩まなければ」うまくいってたことだったのかもしれない。

プログラマの生産性って - oldriverの日記


僕は会社に入ってから本格的にプログラミングをするようになった職業プログラマだけど、
これは感覚的に理解できる。
職業プログラマの多くも身に覚えがあるんじゃないかな。
半ばトランス状態でコードを書き続けるような経験。
こういう時にはガッツリ高速に大量に高品質のコードを書くことができる。
10,000行も書くのは無理だけど。


「こういう時」には共通点があって、それは深夜か休日に仕事をしてる場合に限られるということ。
普段の仕事時間にこの集中力を発揮することができた試しは無い。
日本のプログラマの標準的な作業環境は、平均的な能力のプログラマに集中することを許さないようです。
(うるさ過ぎ。割り込み仕事多過ぎ。)


あと、出来るだけ自分の裁量で設計からコーディングまで一人で担当してる状態であること。
チーム化して分業すればするほど、文書化だったり言語化だとか、調整だとか、壁がはだかります。


もう一つ条件を挙げるなら、得意な分野のプログラミングであること。
当たり前ですけど。
平均的な日本のプログラマは、個人の適性とかあまり考慮されずに、
とりあえず来た仕事に突っ込んどけばいいだろう、みたいな話で売られたり。
やあねえ、もう。そういうことも稀に無くはないらしいので。


とにかく、僕が言いたいのは、普通のプログラマだって小規模ながら同じことが出来る(条件さえ整えば)、
ということです。
てゆうか、プログラミングに限らないよね、多分。


昨日の記事からここまで。
かなり問題の共通点が多いです。
僕にとっても、自分がどのステップでつまづいていたのか、、、



最後に、トラバ見てたら登さんのmixi記事を見つけました。
1年前の最初の記事とほぼ同時期のエントリーですね。
クローズドSNSの引用はちょっと気が引けますが、
mixi規模の全体公開設定で、「広めて役に立つようにしたいと思っている。」と書いてあるので
ちょっとだけ引用。

[mixi]欲しいものをすべて入手する方法


この世界を構成している仕組みを知っている。


「すべて思いどおりになる」という仕組みである。


これはここに生きている人であれば、誰にでもあてはまることである。


これは当然のことで、誰でも知っていることだと思っていたが、
どうやらそうではないらしいということがわかったので、広めて役に立つようにしたいと思っている。



「すべて思いどおりになる」という仕組みは、すべてのことがらについて当てはまる。


上記のようなことを読むと、大抵の人は、
「すべて思いどおりになるわけがないじゃないか」
というように思うようだ。


「すべて思いどおりになる」から、
「すべて思いどおりになるわけがないじゃないか」と思うことで、
「すべて思いどおりになるわけではない」ということが現実となる。
まったく思いどおりになっているのだ。


き、、既視感が、、、、

ザ・シークレットをやっても願いがかなわない人のための、本当の実践の仕方。 - teruyastarはかく語りき


さきほどのセリフ。
「イメージしてるだけで願いがかなうわけない。
努力という行動に移してこそこのシークレットは価値がある」


書評の人が何度も本を読み返してたら気づいたと思うのですが
本に出てくる一説、ヘンリーフォードに代弁してもらうと


『あなたが「できる」と思おうと「できない」と思おうとそれはどちらも正しい』


そう、「イメージしてるだけで願いがかなうわけない」
そう「願った」のですから、
「願いがかなうわけない」がまさにかなったわけですよ。

しかしここまできたら僕が書いたこのエントリーも、結構修正が必要ですねw
微妙におかしな事書いてるw
(最初からおかしいって?w)



まあいいやmixiです。

ここで重要なのは、欲しいものがあるとき、
本当にそれが欲しいのであれば、欲しいと思ってはならない、ということである。
これは逆説 (パラドックス) である。論理的思考では受け入れることができず、無視される。
言葉でこの本質を理解しようとしてもうまく伝わらないかも知れないが、できる限りのことを書く。


「○○が欲しい」と考えると、それは入手できなくなる。
なぜならば、「考える」ことと「思う」ことは別のことだからである。


考えるとは、脳の中の働きである。
これと比較して、思うとは、心の中の働きである。


ここで、脳 = 心 として考えている場合は、また混乱に陥る。
何かを考えるとき、それは脳で考えている。
思うには、心で思わなければならない。
しかし、心が脳の一部であるという論理的な固定観念によって、
本心で "思う" ことができなくなってしまっていることである。


このようなことは、本来、文章として書くべきことではない。
なぜならば、文章化する作業は脳で行うため、
その時点で、本当に伝えたい意味が大幅に欠落されてしまう
(脳は、自分がすべてを支配していたいと思っているので、心の存在を認めない) ためである。
しかしそれでも若干のニュアンスを伝えることはできるかも知れない。

「○○が欲しい」と脳が考えるとき、心の中ではどのようなことが「思われる」のか。
「現在、私は○○を持っていない。したがって、○○を欲している。」ということが思われるのである。


心で思っていることが現実となるので、「現在、私は○○を持っていない。」が直ちに現実化し、
結局、それを入手することはできない。
考え方を変えない限り永遠に入手不可能である。


ところが、「○○が欲しい」という考えを忘れていてしばらくすると、それがもらえたりすることがある。
それは、考えを忘れることによって、心の中で「現在、私は○○を持っていない。」という部分が消滅したためである。

このように解説すると、「結局、欲しいものが絶対手に入る方法を教えてほしい」
というように言う人がいるかも知れない。
そのようなことを言う時点で、欲しがるということを考えているので、
その逆の現実が発生し、いつまでたっても手に入れることができない。


このようにこの世界はパラドックスの世界であり、とても面白い。

昨今のマッチョ・ウィンプ問題みたいだなあw


んで、「気づき」は終わってても、疑念のままの方法論。

一応、以下に、誰でも知りたいと思う「欲しいものが絶対手に入る方法」というのを書くことにしようと思う。


欲しいものを絶対手に入る確実な、その「欲しい」という欲を完全に放棄することである。
すると、以前はいかなる努力をしても困難であったそれを、何の努力も無しに手に入れることができる。


ただそれだけのこれほどまでに単純な仕組みにもかかわらず、「欲しい」と思ってしまうから、手に入れられなくなる。


さらに、得た後、「失いたくない」という欲も放棄しなければならない。
「失いたくない」と強く思ったらそれが最後で、しばらくすればそれは本当に失われてしまう。
逆に、「失いたくない」などと思わない限り、それを失うことはない。
「失いたくない」という欲は、「失う可能性がある」という思いを創造し、それが現実となる。


このように、すべてのできごとは、一見逆のように動くように見えるが、
それは「思っていることが実現する」という、この世界を表現する、最も単純な、論理的であり、
同時に非論理的な仕組みから派生した現象だからである。


このようなことがあるのが、この世界の面白いところである。



ここで論理的に考える派の人からは、以下のような疑問が出るかも知れない。


「○○が欲しいという欲を放棄すると、○○が欲しいということ自体を忘れてしまうということになる。
だから、実は将来○○が手に入らなくても、それに気付くことができなくなるということで、
確かに○○が手に入らないということが無くなるが、結局○○が手に入ったことにはならないので、
騙されているのではないか。」


そのような懐疑的な思いを持っている時点ですでにその思いの内容が現実化している訳であるが、
それは置いておこう。
こういう疑問が出るのであれば、現時点で欲しいもののリストを文書に書き出し、
適当な書式にして、公証人のところへ持っていって公正証書か何かにしてもらえばいい。
そして、しばらくたったあとで、本当に「○○が欲しい」という欲望を放棄していれば、
それが入手できるので、その以前書いた欲しいものリストを見て、確かにすべて入手することができたということに気付き、
驚くのが良い。


このようなとても単純なことを「知る」だけですべて思い通りになる。


次の日の日記も面白いけど略。


さて。
んで結局シークレットに着地したわけ。
これは確かに文章で伝わるもんでもないから、
共感する人は最初から共感してるし、
そうじゃない人にはまるで意味がない。


んで、これを「広めよう」というなら「広めよう」という意識すら破棄せねばならぬし、
これを実践しよう、実現しようというならその意識すら破棄せねばならない。


なんというパラドックス
頭を使わないでこれを体得しえるすべはないのか?
映画マトリックスではないが、これは気づかないし、気づけない。
実現してることがわからないのだから。
公文書保管やる?w



ちょっとまて、意味が分からなくなってきたw
エントリーした上で自分で読み返してみるw
いや、それを読むほど論理的思考になるのか?


無限ループ突入(゚∀゚)


まと、、まらないw

最大の問題点は、


せっかく上記のようなことを読んでも、大抵、まずは頭の中にある論理的思考が、
「上に書いてあるようなことは論理的に有り得ない」というように論理的に考えてしまい、
いつまでも論理的に考えてしまうことがあるということである。


論理的に考えないほうがうまく行くと聞いても、それが正しいかどうかやってみずに、
論理的な正誤判断をしようとして、
「論理的に考えた結果、まさかこんなことはないだろう」という論理的な考えに従い、
いつまで経ってもやってみないということがある。それはとてももったいないことである。

これか。
結局僕は論理的部分で理解しつつも、
論理的であるがゆえ、完全に信じきれてなかった。


そして、こうやってブログに書くことが論理的なので
やはり信じきっていないのだ。


自分を信じきれてない?
そりゃ物理的肉体だもの。
物理的論理的に考えたら不可能だよねえ。


他人を信じればいい?
他人も同じ事か。


ああ。
だから形のない「宗教」ってのが偉大なのかもしれない。
あれは未知の力を信じきる良い洗脳だw


信仰はとくにないので、
天に任すとか、宇宙に任すとかもうそんな感じかなあ。
誰かの期待に応えようってのも違うのかもしれないし。



ああ。わかったわかったw
つまり、

まず、だいたいこういうソフトウェアがあればいいなあとか、
このような機能を付ける必要があるなとかいった、とても抽象的なことを思い浮かべる。


この際、「絶対に論理的に考えないこと」が必要である。
論理的に少しでも考えてしまうと、途中までうまくいっても、
それが壊れてしまい、最初からやり直しになるので注意する。
感覚的な思考でもってこれを行うのである。


次に、だいたいイメージができたところで、
心の中に、ソフトウェアの設計図やデータ構造といったものを思い起こす。
ここで注意するのは、「絶対に論理的に考えて設計をしないこと」である。
徹底して、感覚的な思考でもって設計する

これだけやればいいんでしょ。
絶対論理で考えないで。

ここまではすべて頭の中で処理することができるので、別にコンピュータがなくても良い。
電車の中でも授業中でも運転中でも行うことができ、便利である。


上記までで、ほぼすべての作業は完了している。
残された仕事として、最後に、コンピュータに対して、プログラミングを行う必要がある。
これには物理的なコンピュータとキーボードが、どうしても必要である
(紙にペンで書くと手が疲れるし、
キーボードを打たなくてもコンピュータに入力することができる便利で高品質なデバイスはまだないためである)。


プログラミングの目的は、コンピュータに処理を実行してもらうことなので、
コンピュータにプログラムを入力しないと意味が無い。そこで、仕方無くコンピュータの前に座る。


コンピュータの前に座って、キーボードの上に両手を置けば、後はあまり考える必要はない。
自動的に手がキーボードを打ち、プログラムを入力して完成させてくれる。
この処理は一切、論理的思考では行われていないので、
途中で論理的思考を行うことは厳禁である (作業の邪魔になる)。ひたすら何も考えない。


入力エラー無く手を動かせる速度には、物理的な限界があるようだ。
多くても 1 日 1 万行程度くらいである (それでも、入力エラーは頻繁に発生する)。
この作業は、エネルギーが必要なので、食事をちゃんと採ることや、
好きな飲み物 (100 % オレンジジュースが良い) 等を机の上に用意しておくことが推奨される。


ほんっっっっっとに、最初から最後まで徹底的に論理的思考を排除したらいいんでしょw

論理的思考は完全にゼロということにはできないけれども、可能な限りゼロに近づける、これがコツです


らじゃ(゚∀゚)



でさ。
もちょっと簡単にシンボルイメージが必要だと思うんだ。
僕には完全に信じきる、神も、自分も、他人も、宇宙もないのだから、
そのシンボルを演じる。


例えば、自分が魔法使いになったように。
ハリーポッター」でも、自分が好きなもの凄い漫画キャラクターにでもなったつもりで
人生の「ごっこ遊び」をはじめる。


魔法使いや、超能力者や、未来人なら、なんでもできるでしょ?


魔法使いはプログラムで言うポインタをのっけるように、
なんでも能力を引き寄せる。
どんな魔法ででも実現させてしまう。



自分自信のイメージでは不可能だけど、
「ごっこ遊び」であれば無理なく論理的思考の破棄ができる。
またそれを忘れるのに「ごっこ遊び」が最適かもしれない。
もちろん、電車の中で杖を振ったりはしないけどね( ゚∀゚)o彡゜♪ ♪_彡☆



どんなウィザードがいいかなあ。。

おまけ


オタクに非モテが多いのは、オタクに「論理派」が多いからかもしれない。
頭でっかちでそれゆえ恐怖を覚えて固まってしまうよりは、
実行に移すバカが、おいしいってか。



プログラミングのスピードを上げる方法 - teruyastarはかく語りき


プログラミングのスピードを上げる方法2 - teruyastarはかく語りき


Doingリストの拡張版、「Movingリスト」の紹介 - teruyastarはかく語りき


大事な話があるんだ - teruyastarはかく語りき