俺たちはプログラミングしてるとき
どこまで自分で「論理的に考えて」
どこまでをコピペやおまじないイディオムやパターンを「信じて」
使っているのだろうか。
自分の頭で論理的に組み立ててることを認知科学の分野で「アルゴリズム」
という。
これはコンピュータのアルゴリズムとは別に、「人間の頭の中で組みたてられる
アルゴリズム」という意味。「演繹」といってもいいだろう。
すべてアルゴリズム的にプログラミングを考えるのは無理だ。
すべての命令名をCPUの0と1の処理に変換してアセンブリレベルとかで
プログラム考えてるやつはまずほとんどいない。
一方「何らかの名前」を信じて「そういうものだ」として使うことを
「ヒューリスティクス」という。「帰納」に近いものの考え方だ。
大量にコードを書くときは人間はヒューリスティクスに頼らざるを得ない。
ヒューリスティクスの究極系が「丸コピペ」だ。
ただし丸コピペすると「勘違い」が発生して目標が達成できないことが多い。
プログラミングしているときの思考ついて話そうぜ
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/12/29(金) 17:26:40.19ID:qm74VhKk2デフォルトの名無しさん
2017/12/29(金) 17:33:32.94ID:qm74VhKk この2つの思考方法をどう配分すれば適切なんだろうか?
例えば「System.out.println();」はかなり「信じられる」メソッドだろう。
おれはJavaの「System.out.println()」以外の「System」クラスの
他の機能はあまり使わないし、「System.out」以外に「System」が「out」
以外のオブジェクトを持っていることを知らない。
どうように「System.out」のメソッドの内、「.println()」か
「.print()」メソッドぐらいしかほぼ使わないし、ほかにどんな
メソッドがあるかも知らない。
しかし「System.out.println();」という「一連の名前」だけ
つまみ食いで覚えて(ほかのオブジェクトやメソッドを網羅的に覚えずに)
使っている。
ただ言語のリファレンスドキュメントを調べる場合「網羅的に」
説明が載っているから「どれだけつまみ食いで覚えればいいのか」が
迷うことがある。
結局手探りで、いろんなコードをコピペして試しに使ってみて、
「使えたもの」だけ覚えていく感じで、プログラミングを覚えていく。
でもそれでは困るときがある。
それは「高度な設計上の技術」を学ぶ時で、
「あと後になってからそのメリットがわかる」タイプの技法は
その場で「使えた感」が得られないとき。
「おまじない系」「読み込み系」も「なぜそれが必要なのか」と悩む。
例えば「#include<stdio.h>」とか
「public static void main(String[] args){} 」は最初
「そういうものだ」と受け入れるしかないだろう。
「読み込み」は「それ自身で何か実行している」訳じゃないが、
「間接的に何かの実行の前提」となっているから厄介だと思う。
あと「例外処理」みたいな「何かあった時の予防処理」も覚えるの
が大変だと思う。何か「実行できた感」が得られないから。
例えば「System.out.println();」はかなり「信じられる」メソッドだろう。
おれはJavaの「System.out.println()」以外の「System」クラスの
他の機能はあまり使わないし、「System.out」以外に「System」が「out」
以外のオブジェクトを持っていることを知らない。
どうように「System.out」のメソッドの内、「.println()」か
「.print()」メソッドぐらいしかほぼ使わないし、ほかにどんな
メソッドがあるかも知らない。
しかし「System.out.println();」という「一連の名前」だけ
つまみ食いで覚えて(ほかのオブジェクトやメソッドを網羅的に覚えずに)
使っている。
ただ言語のリファレンスドキュメントを調べる場合「網羅的に」
説明が載っているから「どれだけつまみ食いで覚えればいいのか」が
迷うことがある。
結局手探りで、いろんなコードをコピペして試しに使ってみて、
「使えたもの」だけ覚えていく感じで、プログラミングを覚えていく。
でもそれでは困るときがある。
それは「高度な設計上の技術」を学ぶ時で、
「あと後になってからそのメリットがわかる」タイプの技法は
その場で「使えた感」が得られないとき。
「おまじない系」「読み込み系」も「なぜそれが必要なのか」と悩む。
例えば「#include<stdio.h>」とか
「public static void main(String[] args){} 」は最初
「そういうものだ」と受け入れるしかないだろう。
「読み込み」は「それ自身で何か実行している」訳じゃないが、
「間接的に何かの実行の前提」となっているから厄介だと思う。
あと「例外処理」みたいな「何かあった時の予防処理」も覚えるの
が大変だと思う。何か「実行できた感」が得られないから。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性に共通点が★2 [Hitzeschleier★]
- 日本語が話せない「外国籍」の子が急増中、授業がストップ、教室から脱走も…先生にも大きな負担「日本語支援」追いつかず [七波羅探題★]
- 【芸能】デパートで見つけたランドセルが衝撃価格! つまみ枝豆「どこかで規制しないと」に共感の声殺到 「全て同感」「高すぎますね」 [冬月記者★]
- 自ら「パンセクシュアル」だと明かし、東由貴・東京都議(立憲民主)が「パートナーシップ」施策の充実求める:東京新聞 [少考さん★]
- 「暖房が使えない」「食費が高くて子どもの栄養が…」 物価高に苦しむ子育て世帯、政府に期待する支援は [蚤の市★]
- 【女子カーリング】五輪出場決定!女子日本代表の「フォルティウス」チーム名は「より強く」の意味 [征夷大将軍★]
- お高いホテルの朝食ブッフェで働いてるけど質問ある?
- VIP過疎りすぎて9人くらいの同じメンバーがローテーションして書き込んでるだけじゃね?
- 【画像】こじはるシコシコ💕︎
- 高市を支持する日本人さんはなにが理由なの?円安進行、国債金利爆上げ、最大貿易国との摩擦とたった1ヶ月で国益を棄損してるのに [472617201]
- Twitter医師ら「死ぬほど勉強して博愛精神求められるとかそらみんな美容外科なるわ。嫌なら普通の医療も保険診療廃止しろ!」 [762037879]
- エナジードリンク、危険だった。飲酒喫煙もせずランニングが趣味の54歳の若者が毎日たった8本飲むだけで脳卒中に [742348415]
