C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: わかりやすい説明の仕方を伝授してください


(過去ログ 39 を表示中)

[トピック内 19 記事 (1 - 19 表示)]  << 0 >>

■20672 / inTopicNo.1)  わかりやすい説明の仕方を伝授してください
  
□投稿者/ 頭脳不明晰男 (1回)-(2008/06/13(Fri) 16:25:38)

分類:[雑談] 

私は、頭の悪い男で読解力にえらく欠けていますので色々おしえてください。
VC#2008でプログラミングをはじめて早8ヶ月、見よう見まねで、マネマネで
なんとか稚拙なものはつくれるようになりましたが、
よく考えてみると
基礎も勉強したつもりですが、他者にわかりやすく説明できない自分がいるのに
気づきました。
それは実際に自分も本当にわかっていないことがわかりました。

例えば引数って何ですか?ときかれたらそれなりにこたえられますが、
初めての初心者に例えを使ってわかりやすく説明するのは難しいです。

その点、下記のサイトの引数についての説明はとてもわかりやすさNO1です。
私も、これを読んでしっくりおちました。

http://www.h3.dion.ne.jp/~sakatsu/Excel_Tips01.htm

それで話は変わりますが、オブジェクト指向でいろいろな専門用語がでてきますが
例えを使って、初心者に極めてわかりやすくおしえるとしたら、どのような
例えをつかって説明しますか?

こちらの掲示板で回答される方は、本も出版されたり、その道ではエリート中のエリート集団ときいています。

時間があれば、ぜひ下記の用語について、ご自分が考え出したオリジナルな例えで
オブジェクト指向の用語を愚鈍な私に誰もが納得できるような説明の仕方をおしえていただけたら大変うれしく思います。


ポリモフィズム
カプセル化
インターフェイス
デリゲート

など…


引用返信 編集キー/
■20678 / inTopicNo.2)  Re[1]: わかりやすい説明の仕方を伝授してください
□投稿者/ επιστημη (1091回)-(2008/06/13(Fri) 16:31:43)
επιστημη さんの Web サイト
> それで話は変わりますが、オブジェクト指向でいろいろな専門用語がでてきますが
> 例えを使って、初心者に極めてわかりやすくおしえるとしたら、どのような
> 例えをつかって説明しますか?

「ビデオとそのリモコン」

delegateについてはつらいけど、ポリモーフィズム/カプセル化/インタフェースはこれで説明できます。

> 説明の仕方をおしえていただけたら

長くなるから勘弁して。
# 勉強会の後、腕ひっつかんでサテンに軟禁してください♪

引用返信 編集キー/
■20683 / inTopicNo.3)  Re[2]: わかりやすい説明の仕方を伝授してください
□投稿者/ ネタ好き (439回)-(2008/06/13(Fri) 17:00:12)
頭脳不明晰男さん に返信
プログラマには論よりプログラミング。私は元々VB出身でオブジェクト指向は2002年まで触った事ありませんでしたが、コーディングをしたら分かりました。
やっぱりどんな説明よりも一回のコーディングです。
ですから、非オブジェクト指向のサンプルプログラムと、オブジェクト指向のサンプルプログラムを見せたらいいと思います。

引用返信 編集キー/
■20684 / inTopicNo.4)  Re[3]: わかりやすい説明の仕方を伝授してください
□投稿者/ επιστημη (1093回)-(2008/06/13(Fri) 17:05:30)
επιστημη さんの Web サイト
> プログラマには論よりプログラミング。

それには同意。アナロジの通じる相手と通じない相手がいます。

引用返信 編集キー/
■20692 / inTopicNo.5)  Re[4]: わかりやすい説明の仕方を伝授してください
□投稿者/ 凪瀬 (55回)-(2008/06/13(Fri) 17:26:11)
凪瀬 さんの Web サイト
例え話をつかえば「分かった気にさせる」ことはできるんですけどねぇ。

どんな難しい事柄でも、言い方一つでたちどころに分かる!なんてのは幻想です。
何かを理解するためには、理解の前提となるステップがあります。
たとえば割り算の筆算を理解するには、そこで使われる掛け算、引き算という道具を手にしている必要がある。

例え話で理解できる場合、違うどこかからすでにパーツを手に入れているんですよね。
このパーツと、そのパーツは互換性があるからそっちを持っているなら大丈夫だよ、ってこと。
そもそも互換パーツをひとつも持っていない人にはどうあがいても理解させられません。
まずは、前提のパーツを手に入れてもらわないと。

そんなわけで実際に自分でいじるのが、面倒なようで一番近道。

> プログラマには論よりプログラミング。

というわけですね。
引用返信 編集キー/
■20693 / inTopicNo.6)  Re[3]: わかりやすい説明の仕方を伝授してください
□投稿者/ 頭脳不明晰男 (1回)-(2008/06/13(Fri) 17:26:29)
No20683 (ネタ好き さん) に返信
> 頭脳不明晰男さん に返信
> プログラマには論よりプログラミング。私は元々VB出身でオブジェクト指向は2002年まで触った事ありませんでしたが、コーディングをしたら分かりました。
> やっぱりどんな説明よりも一回のコーディングです。
> ですから、非オブジェクト指向のサンプルプログラムと、オブジェクト指向のサンプルプログラムを見せたらいいと思います。
> 
百聞は一見にしかず。おっしゃるとりだと思いますが、万人が万人同じように理解できるとは限らないですよね。
私、若いとき空手をやっていましたが、和道流の空手道場の先生は教え方が、丁寧で言葉も
大事にしていました。
例えば正拳中段突きという技がありますが、技術本などでは腕でなく
腰を入れて突けと書いてありましたが、私は??でした。
しかし、そこの道場の師範は「へそは真すぐのままで腰に巻いている帯が左右にふれて腰の部分にバシバシ当たるように腰を使って突け」といわれたときに合点がいき。腰をいれた突きができるようになりました。

ま、のみこみが早い人はこのような説明は不要でしょうが、少なくとも私のような人も少なからず
おられるのではないかと思います。

引用返信 編集キー/
■20695 / inTopicNo.7)  Re[4]: わかりやすい説明の仕方を伝授してください
□投稿者/ επιστημη (1094回)-(2008/06/13(Fri) 17:37:42)
επιστημη さんの Web サイト
> ま、のみこみが早い人はこのような説明は不要でしょうが、少なくとも私のような人も少なからず
> おられるのではないかと思います。

なので万人が理解できる説明はどだいムリ。
面と向かって話していれば聞き手の反応でフィードバックできますが。

引用返信 編集キー/
■20698 / inTopicNo.8)  Re[5]: わかりやすい説明の仕方を伝授してください
□投稿者/ ネタ好き (440回)-(2008/06/13(Fri) 17:41:05)
2008/06/13(Fri) 17:50:12 編集(投稿者)


頭脳不明晰男さんへ返信
武術家は決して理論だけではなく体をもって教えていると思います。
提示された例の先生も決して予め決めた言葉ではなく、貴方にあった言葉をその場で考えていったと思います。
ですから、初心者にオブジェクト指向プログラミングを教える際には、サンプルだけ渡しておしまいではなくて、初心者の人の傍らに居て理解できているかちゃんとチェックして、分かっていない時はどこが分かっていないかを本人から聞いて「本人に最適化された答え」を言ってあげればいいじゃないかな?

実例を追記
初心者「頭脳不明晰男先輩、カプセル化って何ですか?」
頭脳不明晰男さん「Publicで変数を定義してるの?」
初心者「はい先輩。」
頭脳不明晰男さん「仕様が変わって、この変数の範囲をチェックしたい場合どうしますか?」
初心者「えっと、関数を用意します。」
頭脳不明晰男さん「でもさっきの変数を直接呼んでいる人のコードはチェックできないよ」
初心者「えっどうしよう。大変だ!この変数を使っているプログラム全部変更しなくっちゃ。」
頭脳不明晰男さん「そのためのカプセル化なんだ。変数ではなくてプロパティを定義しておけば、この様な場合チェックプログラムを簡単に追加できるよね。こうすれば後で仕様が変わっても自分のプログラムを変更するだけでいいんだ。」
初心者「あっそうか。先輩ボク分かりました。」
引用返信 編集キー/
■20700 / inTopicNo.9)  Re[1]: わかりやすい説明の仕方を伝授してください
□投稿者/ じゅで (54回)-(2008/06/13(Fri) 17:58:40)
No20672 (頭脳不明晰男 さん) に返信
デリゲート

・子供の喧嘩に親が出てきて喧嘩する。
・親が稼いだ金で、子供が豪遊しお金を使い切る。

class 父
{
private int 寿命・・・
public delegate void お金を使う()
public Delegate 誰が使うの?

public Delegate お金使う人の設定
{
Set{ 誰が使うの? = value; }
}

public decimal お金を稼ぐ()
{
お父さん頑張って稼いじゃうぞぉ〜

return 給与・・・
}

public void いつのまにか()
{
誰が使うの?
}

}

class 息子
{
public void お金を使う()
}

class 母
{
public void お金を使う()
}


・・・いかん頭が腐ってきた気がするorz

けど、今ちょうどラッキーなところにいると思います。
自分がわかっていない事を説明しろといわれても、説明できないので、
今まで自分が、何処をわかっていて、何処をわかっていなかったかをはっきりさせるチャンスです。
せっかくなので、自分で調べてみて、理解する事もありだと思います。

そうすると、きっと自然と周りの状況にあわせて、説明ができるようになると思います。
引用返信 編集キー/
■20701 / inTopicNo.10)  Re[5]: わかりやすい説明の仕方を伝授してください
□投稿者/ やじゅ (451回)-(2008/06/13(Fri) 17:59:50)
結局、プログラムも体で覚えるのが一番です。

一応、わんくま勉強会で使用したネタをリンクしておきます。
「ドラえもんの世界をオブジェクト指向で」の資料公開
http://blogs.wankuma.com/yaju/archive/2008/02/27/125078.aspx
引用返信 編集キー/
■20702 / inTopicNo.11)  Re[1]: わかりやすい説明の仕方を伝授してください
□投稿者/ シャノン (475回)-(2008/06/13(Fri) 18:01:41)
No20672 (頭脳不明晰男 さん) に返信

# 読み飛ばし推奨。

これまでに出た話だと、「オブジェクト指向は非オブジェクト指向に比べて何が嬉しいか」という質問の答えをリストアップした際に、「プログラミングの段階で○○になるので嬉しい」だけになってしまう気がする。
たとえ話はあくまでたとえ話に過ぎず、プログラミング上の利点を説明する以上の意味は持たないのか?
これは「否」だと思いたい。
「プログラミング上の利点を、現実の○○になぞらえるとわかりやすい」というのは確かにそうなのだけど、「現実世界がこうだからオブジェクト指向ってのはこうなってるんだ」という方向があると信じたい。
引用返信 編集キー/
■20703 / inTopicNo.12)  Re[2]: わかりやすい説明の仕方を伝授してください
□投稿者/ επιστημη (1095回)-(2008/06/13(Fri) 18:05:36)
επιστημη さんの Web サイト
> 「現実世界がこうだからオブジェクト指向ってのはこうなってるんだ」

「ビデオとリモコン」はかなりいいセンいってませんかしら♪

引用返信 編集キー/
■20704 / inTopicNo.13)  Re[2]: わかりやすい説明の仕方を伝授してください
□投稿者/ ネタ好き (441回)-(2008/06/13(Fri) 18:07:44)
>「ビデオとリモコン」はかなりいいセンいってませんかしら♪
私はこれでインタフェースプログラミングが分かりました。

引用返信 編集キー/
■20711 / inTopicNo.14)  Re[1]: わかりやすい説明の仕方を伝授してください
□投稿者/ Jitta on the way (112回)-(2008/06/13(Fri) 19:07:18)
No20672 (頭脳不明晰男 さん) に返信
> 私は、頭の悪い男で読解力にえらく欠けていますので色々おしえてください。

頭がいい悪いより、納得できる落とし所が何処にあるか、ではないかと思います。



> 基礎も勉強したつもりですが、他者にわかりやすく説明できない自分がいるのに
> 気づきました。
> それは実際に自分も本当にわかっていないことがわかりました。

それに気付けるということは、頭が悪いわけではないと思います。



> 初めての初心者に例えを使ってわかりやすく説明するのは難しいです。

それは、掲示板で「回答」をはじめて5年になりますが、未だにわかりません(苦笑)




> 例えを使って、初心者に極めてわかりやすくおしえるとしたら、どのような
> 例えをつかって説明しますか?

既出ですが、それは難しいです。空手の話をされていますが、「腰を使え」というのは、それを言った人にとってはわかりやすい例えだったのではないでしょうか。
私はサッカーでキーパーをしていましたが、やはり「腕で投げるな。腰で投げろ」と言われました。野球でも、テレビで「腰が入った投げ方」のようなことが言われることがありますが、やったことのない人にとっては、なんの事だかわかりにくいのではないでしょうか。
しかし、空手で「腰を使って打て」と言われ、それが腑に落ちたことがあるなら、腕に対して入る力加減を想像して、関連させて、何となくでもわかることができるのではないでしょうか。
例えを用いることの長所と短所は、同じような経験がある人、他の経験に結びつけることができる人には通じやすい、ということだと思います。




> ポリモフィズム
> カプセル化
> インターフェイス
> デリゲート
>
> など…
>
>

あ、消してしまった。
何か、「自分で考えたオリジナルな例え」と書いてありましたが、なぜ、「わかりやすいと思った例え」ではないのでしょう?

私にとっては、「プレイヤー」の例が、良かったです。カセットやレコード、CD、DVD等に派生し、場合によっては録音もできる。
それぞれ再生の方法は違うが、使う人はそんなところまで知らなくてよい。
メディア プレイヤーと絡めることで、プログラムが想像できる。
よく、動物や工芸品が例えとして用いられますが、プログラムが想像できない。プログラムが想像出来ることが、私にとっては分かりやすかったです。
引用返信 編集キー/
■20733 / inTopicNo.15)  Re[2]: わかりやすい説明の仕方を伝授してください
□投稿者/ 無呂愚(ブログ) (1回)-(2008/06/14(Sat) 10:25:15)
*軽く読み流し推奨します。急がしい方は無視してください。

オブジェクト指向に対する極めて独善的な私的見解です。
わたしは、オブジェクト指向は、大規模なプログラムを作るときに有効な方法であって
個人が趣味のレベルで作るプログラムに取り入れても、メリットは少ないと考えています。
例えれば、ワープロしか使わないのに3Dゲームがバリバリ動くモンスターマシンを購入
するようなものではないかと勝手に思っています。

プログラム言語は、コンピュータよりの低級言語から、より人間よりの高級言語になったことに
よって、容易にプログラムが作りやすくなったといわれていますが、これはとらえ方の問題では
ないかと思うのです。
低級言語は、扱いが簡単ですが、作業量が膨大で生産性に欠けます。しかし、時間が無尽蔵にあれば
何とか作成することは可能でしょう。

それに比べて高級言語は、作業量は少なくなり、生産性の面では飛躍的に向上しましたが
反面、知的な抽象化、論理的解釈力、発想力、問題解決力など主に数学的な力が必要とされ
難易度は、あがってきていると思います。誤解をおそれずにいえば、誰もができるようなシロモノではなくなってきています。

また、簡潔性、洗練性、可読性の高いプログラムを作るのは、ある意味プログラマーの醍醐味なの
かもしれません。そこに知的な楽しみを見いだしていける人しか続けていけないと思います。

オブジェクト指向を学ばなくても、無駄が多くても、冗長で可読性の低いプログラムでも動けば
よし、とするのは駄目でしょうかね?

以上 挫折かかってる無呂愚



引用返信 編集キー/
■20734 / inTopicNo.16)  Re[3]: わかりやすい説明の仕方を伝授してください
□投稿者/ ネタ好き (446回)-(2008/06/14(Sat) 11:32:56)
No20733 (無呂愚(ブログ) さん) に返信
コードの保守性は?
引用返信 編集キー/
■20736 / inTopicNo.17)  Re[4]: わかりやすい説明の仕方を伝授してください
□投稿者/ 公 (1回)-(2008/06/14(Sat) 12:08:28)
No20733 (無呂愚(ブログ) さん) に返信
自分しか使わない、自分しかメンテナンスしないプログラムなら何でもありだと思いますが、
外に出す、誰かが利用する、誰かがメンテナンスする可能性があるならば、絶対に避けたい考えだと思います。

「人を殺すにゃ刃物は要らぬ、汚く書いて去れば良い」ってことです。
残念ながら冗談じゃないんです…。


オブジェクト指向でなくとも、保守性や可読性を得るための工夫が沢山あるはずです。
そういった工夫を全くしないのであれば、パラダイムや言語を問わず問題なのではないかと思います。
引用返信 編集キー/
■20737 / inTopicNo.18)  Re[5]: わかりやすい説明の仕方を伝授してください
□投稿者/ 頭脳不明晰男 (2回)-(2008/06/14(Sat) 13:10:58)
みなさま たくさんのご意見ありがとうございます。
やじゅさんへ
「ドラえもんの世界をオブジェクト指向で」の資料
 参考にさせていただきます。
解決済み
引用返信 編集キー/
■20759 / inTopicNo.19)  Re[3]: わかりやすい説明の仕方を伝授してください
□投稿者/ επιστημη (1100回)-(2008/06/15(Sun) 02:33:06)
επιστημη さんの Web サイト
> オブジェクト指向を学ばなくても、無駄が多くても、冗長で可読性の低いプログラムでも動けば
> よし、とするのは駄目でしょうかね?

いいんじゃないですか、個人のお遊びなら。

# あたしゃ個人のお遊びなればこそ思う存分凝りますけどね。
# 何百行も書いて完成間近になってから"こんなの書きたかったわけじゃねえっ"
# で全部捨てたことは数知れず。仕事でコレやったら怒られますから。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -