ふつーの技術者が何を意識するとピリッとなるのか?

サーチマン佐藤です。
こんにちは。

さてさて。

今日はお勉強の話です。

この業界では、
起きている事象をとらえ、観察し、
「こっちが正しい」と推論する力が必要ですね。

この力はどうやって磨かれるのか?
何を意識すればいいのか?

天才は意識しなくても、
「直観」を駆使して、すぐに
「こっちが正しい」と推論できるようですが、

我々ふつーの技術者は、
「演繹法」と「帰納法」のどっちかを使うべきですし、
強く意識すべきです。

意識しないから、ぬるいことになってしまう。

少なくともどっちかを意識すれば、かなりピリッとした
いい技術者に変貌する可能性が高いので、
今日は、そのへんのこと話してみますね。

(私も、なるべく意識するようにしています)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【演繹法】正しい仮定の積み重ね
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

「演繹法」は、まあ簡単に言えば、

「A=B」「B=C」ならば、
「A=C」ってやつ。

例えば、
(仮定)「被害者の近くに、凶器の包丁が落ちていた」
(仮定)「包丁には指紋があった」
(仮定)「その指紋とAの指紋は一致した」

ならば、
→(結論)「犯人はAだ」とか。

こんな推論方法ですが、
納得できますよね。

上記の場合、当然ながら100%正しい「仮定」が積みあがることで、
100%正しい結論が導けるということになるし、
仮に、その積み重ねる「仮定」の確率が低くなれば、
結論の確かさは低くなります。

例えば、日本の有名なことわざに
「風が吹けば桶屋が儲かる」というのがありますよね。

・風で土ぼこりが出る
・土ぼこりが目に入って、盲人が増える
・盲人は三味線を買う
・三味線には猫皮が必要
・猫が殺されて減る
・猫が減ってネズミが増える
・ネズミは桶をかじる
・桶屋が儲かる

だから、(結論)「風が吹けば桶屋が儲かる」
となるわけですが・・・

全く正しくないです(苦笑)。

もちろんこれは、「演繹法」を模した
江戸時代の庶民の言葉遊びだから、
それはそれでいいんですけどね。

まあ、こんな感じで、とにもかくにも「演繹法」は
積み重ねる「仮定」の確率が重要ということを知っておいてください。

参考までに言えば、この推論方法は、
「左脳的アプローチ」でもあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【帰納法】経験則からの推論だけど・・・・・
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

かたや「帰納法」の話です。

こちらは経験則とも言われている通り、
たくさんの事象を観察し、そこから結論を導く方法です。

例えば、
「人間Aは死んだ」「人間Bも死んだ」「人間Cも死んだ」
「太古から生きている人間は一人もいない」ならば、

→(結論)「人間はいつか死ぬ」とか。

わかりますよね。

こんな推論方法だから、
小難しい論理は必要ないのですが、
多分に直感的なわけで、そりゃ、
危ない(間違った)結論を導く可能性も多分にあります。

例えば、さっきの話で言ったら、

「Aはいつも悪いことやってる」
「Aは被害者と知り合いだった」

ならば、
→(結論)「犯人はAだ」とか。

危ないでしょ?
どっかの検察みたいに。

そんな感じで「帰納法」は
経験即を積み重ねることで推論してしまう方法です。

これは、参考までに言えば
「右脳的アプローチ」でしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【技術者】このシステムはどう動くのか?と推論するためには
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

じゃあ、我々の世界で、例えば
システムがどう動くか?と推論する場合、

どういうアプローチをとるべきか?

という話です。

仮に「演繹法」でいくなら、
ソースを読むべきでしょう。

ソースこそ、100%正しい「仮定」の積みあげであって、
このインプットがあれば、こういうアウトプットが出ると、
正しく予想できるはずです。

例えば、Javaのフレームワークやコネクションプールだって、
そのソースを丹念に読めば、こういう結果が得られる
と正しく推論できるはずなんです。

でも、そんなの現実的じゃないですよね(苦笑)。
やってられません。

現実的には、「システムはどう動く?」と予想する場合、
「帰納法」で攻める方が簡単だし、実感できます。

具体的には、
まずシステムを自分で実際に動かしてみる。

「こうやって動くんだ~」

と確認できますよね。

次に重要なのは(ここ本当に重要ですよ!!)動いた後、

(結果に影響を及ぼしていると思われるところ)
「一か所だけを変更」してみること。

そして動かす。

そうすると、その一か所変更したところが、
結果にどう影響してくるのか?

それを「帰納的」に納得できるんですね。

よくやってしまう間違いが、
何か所も変更して、動かしてみて、
何の変更が何に影響しているのか意味不明・・・・

みたいなことをやっている人。

重要なので繰り返しますが、
とにかく動くシステムがあったら、
一か所だけ変更してみる、

そして結果を丹念に観察する。

この地道な繰り返しなんですね。
勉強なんて。

これが血となり肉となるための、
技術者の正しいアプローチ。

余談ですが、一番ダメなのは、

「教科書は、いつも正しい」
「教科書には、こう書いてあった」

ならば、
→(結論)「教科書に書いてあることを読めばいい」と、

「演繹法」だか「帰納法」だかわけわからないこと言って、
お茶を濁して勉強すること。

これじゃあ、血となり肉となりません。

(私も昔はよくやってしまいましたし、
今でもついついやってしまいます)

これじゃあ、ダメです。

勉強って、もっと地道だし、
技術者だったら、「演繹法」でも「帰納法」でもいいですが、
どちらかを強く意識して勉強すると、きっと力がつくと思います。

まあ、両方からアプローチするのが一番いいですけどね。

以上、今日は
自戒も込めて話してみました。

ではでは、
またお会いしましょう。

ありがとうございました。