ホームページ >バックエンド開発 >PHPチュートリアル >プログラマーのように考えるにはどうすればよいでしょうか?

プログラマーのように考えるにはどうすればよいでしょうか?

WBOY
WBOYオリジナル
2016-06-17 08:30:42984ブラウズ

プログラマーの思考ロジックについて話してもらえますか?

返信内容:

ある日、先生は授業中に生徒たちのIQをテストしたいと思い、男の子に「木の上に10羽の鳥がいます。1羽を撃ち殺したら、何羽残るでしょうか?
」と尋ねました。 少年は「それは銃ですか、それとも音のない別の銃ですか?
」と尋ねました。 「いいえ。」
「銃声の大きさはどれくらいでしたか?」
「80~100デシベル」
「耳が痛くなるということですか?」
「はい。」
「この街で鳥を狩ることは違法ですか?」
「悪気はありません。」
「あの鳥は本当に殺されたのですか?」
「そうですね。」 先生はすでに焦っていました。「あと何個残っているか教えてください。
」 「わかりました。耳の聞こえない鳥はいますか?」
「いいえ。」
「銃声を聞いても飛び方が分からないほど愚かな知的障害を持った鳥がいるでしょうか?
」 「いいえ、彼らの IQ は 200 を超えています。
」 「檻の中に何かいる?」
「いいえ。」
「近くに他の木はありますか?その木に他の鳥はいますか?」
「いいえ、半径 10 マイルはどうでしょうか?」「木は 1 本だけです!」
「障害がありすぎたり、お腹が空いて飛べない鳥はいますか?」
「いいえ、二人ともとても健康です。」
「それは妊娠中のお腹の中の赤ちゃんとしてカウントされますか?」
「彼らは全員男性です。」
「妊娠することは不可能ですか?」
「……、絶対に無理です
」 「鳥を撃つ者の目には花があるだろうか? 必ず10本ある?
」 「花はありません。10 個だけです。」 先生の額にはすでに汗が流れていました。
ベルが鳴ったが、少年は続けて尋ねた、「死を恐れないほど愚かな人がいるだろうか?
」 「死が怖い。」
「恋人が殴られたので、残ったことがありますか?
」 「バカ、前に全員男だって言ったよね?
」 「ゲイでも大丈夫ですか?
」 「…………、性的指向は正常です!」
「一撃で二人殺せるか?」
「いいえ。」
「一撃で三人を殺す?」
「いいえ。」
「4人はどこ?」
「そんなことないよ!」
「5人はどこ?」
「絶対にダメです!!」
「その6はいつでも可能ですよね?」
「クソ豚から生まれてない限り! 一発で殺せるのは一匹だけだ!」
「...それで、すべての鳥は自由に動くことができますか?
」 「全然大丈夫です。」
「離陸するときにパニックになって衝突しませんか?
」 「いいえ、すべての鳥には衛星ナビゲーション システムが装備されており、自動的に飛行できます。
」 「そうですね、あなたの答えが欺瞞的でなければ、」と学生は自信を持って答えました。左。"
先生は失神するのをこらえながらメガネを押し上げ、震えながらこう言った。「君はプログラマーになれるよ…」 プロセス指向:
最初のステップは、2 番目のステップは、3 番目のステップは
さて、最初のステップから 3 番目のステップに直接ジャンプできるショートカットを見つけました

オブジェクト指向:
最初に誰々を見つけて、次に誰々を見つけて、それから誰々を見つけます
エージェントを見つけました。あとは彼を見つけるだけです。彼に残りの人々を見つけさせてください。 プログラムは決して誤ることはなく、常に私のコマンドを忠実に実行します。プログラムが正しく動作しない場合は、私が何か間違ったことをしたに違いありません。 出所は不明です、私は単なるポーターです -

[1] - 燃えている草の山とその横に水の入ったバケツがある場合はどうすればよいですか?
- バケツの水を草の上に注ぎ、火を消します。

[2] - 燃えている草の山とその隣に空のバケツがある場合はどうしますか?
- バケツに水を入れると、[1] の状況が得られます。

[3] - 草の山とその隣に空のバケツがある場合はどうしますか?
- 草の山に火をつけて状況を把握します [2]。 プログラマーは同じように考えるわけではないので、どうすればプログラマーと「同じように考える」ことができるのでしょうか? when~then~
if~else~
do~ 抽象的な一般化?さて、彼は考えていました... 数学の問題を解くときにさまざまなアイデアがあることを想像し、それらのアイデアを一般的なアイデアでまとめます。このときチューリングマシンの原理が分かります。次に、チューリングマシンとは何かを見て、頭の中で装置を想像してください。この装置は、チューリングマシンの装置のパラメータを既存のさまざまな装置のパラメータに置き換えることによって得られます。つまり、脳内仮想マシン (ブラック ボックス内) が得られます。その後、最下層で問題が発生した場合は、仮想マシンを持ち出して、その問題が最下層でどのように実装されているかを考えることで解決できます。


このようにして、アセンブリ言語、C 言語、オペレーティング システム、その他のさまざまな高級言語を仮想マシンで実行することもできます。
ただし、脳の計算を問題に集中させ、不要な場所をブラックボックスとして扱う必要があることに注意してください。 500 を超えるアセンブリ言語のバグを見つけたい場合は、「デバッグ」を使用してください。 5次元操作、問題の分析と解決 すべてはオブジェクトです。

プログラムにエラーがある場合、それはあなた自身にあるはずです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。