むりせず♪なまけず? ~ぷろくらすてぃねいたーの言い訳雑記~

よた ときどき .NET  by 刈歩 菜良 CTP

目次

ニュース

C# VB.NET掲示板
C#, VB.NET 掲示板

わんくま同盟ブログ
わんくま同盟ブログ

Web アプリケーションを簡単編集できる無償ツール WebMatrix ダウンロードはこちら

あわせて読みたい

日記カテゴリ

書庫

Blog 利用状況

ご来場ありがとうございました&神々へのフォロー

ネタ元:教え方を教わる

東京勉強会#13 にご来場いただいた皆様、本当にありがとうございます。

そのときのフォローおば...

 

「デリゲートは?」とか「匿名メソッドは?」とか、色々な神々から突っ込みをいただいたのですが...

だ・か・ら、
初心者向けなのぉーーー
\(>_<)/

いや、でもですね。最終回まで完璧に理解できて、俺流メモリーの図がすらすら書けるようになれば。
「いや、実はメソッドも参照型と同じ仕組みになってるんよ。で、呼び出されるときにthisポインタ渡してるんよ。」
って、ぼそっとつぶやくだけで理解できるレベルに到達しているわけですよ。
# たぶん... (^^ゞ
# あ、あと、ここの部分、本当にそうなんかは知りません(えぇ(゜o゜)!! そう考えればつじつまがあうのではなかろうかと... )。

そもそも初心者にデリゲートを定義させるような開発作業は回ってこないような気もするので...

俺流メモリー図はあくまでも初心者が言語仕様を理解するツールであって、システム仕様書に盛り込む内容ではないので、完全に矛盾なくある必要はないと思っています。

たとえば、string型を毎回参照型として記述するとメモリー図がとてつもなく複雑になるので、string型部分は値型と同じような図を描いたりします。
string型はReadOnlyがゆえに問題はないです。
# でも、そんなのかんけーねー!
# そんなのかんけーねー!
# そんなのかんけーねー!
# あ、つまり、本当の初心者には「string型はReadOnlyだから」とかもいっちゃだめということです。

 

正しさを追い求めるあまり、複雑になりすぎて理解ができないと本末転倒なので。なんとなくの理解が先で厳密な正しさは本当にそれが必要になった段階でよいのではないかと思います。

そして、そのバランスとタイミングは勉強する側の飲み込みの速さと教える側の手腕しだいで幾通りもありえます。

投稿日時 : 2007年10月9日 12:43

Feedback

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 12:43 刈歩 菜良

やばい!
飯食う時間がないぞぉ!!
(>_<)

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 13:10 えムナウ

小学校の頃2から3は引いちゃいけないといわれていて、
中学校になって突然引くのが当たり前になって、「大人はきたねぇ。」と思った口ですが。

学校というのはそういうもんだとじゃまさんの話を聞いていて妙に納得しておりました。

文字列がReadOnlyという説明も感心しました。
アセンブリが持っている文字列リテラルのプールは実行時には使われなくなるのですが、この辺の動作はきっとなんとなくしか考えていなくて、知っている人は少ないのかなぁと思います。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 13:11 渋木宏明(ひどり)

当日「でりげーとは?」の時に横から口をはさみましたが、「初心者向け」なら struct も「使わん」で片付けます (^^; > じぶん

string 型は難しいですねぇ。頻繁に出てくるくせに特殊なふるまいをする曲者なので。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 13:18 επιστημη

>「いや、実はメソッドも参照型と同じ仕組みになってるんよ。
> で、呼び出されるときにthisポインタ渡してるんよ。」

そこらへんなんだよねー
つまりさ、Cだと:

struct Foo {
 int value;
};

int getValue(struct Foo* p) {
 return p->value;
}

ってやるわけぢゃん。インスタンスの参照情報を関数の引数
に与えるからそこ覗けばいい。んだから関数getValue()は
インスタンスとは別のとこに一個だけあればいい。

で、C++だとstruct Foo* p(すなわちthis)がメソッドの前に移動して
p->getValue() ってなる。

Cが分かったちゃんにはこれで十分わかってもらえるですわ。
一方C++におけるC を持たない Java,C#,VB.NET では
どないに説明すんだろねー。 ってことなんですけどね。

# ただ、この説明は自分の中でも気に入ってはいません。
# あまりに実装べったべたで"それは'からくり'だけど
# 'リクツ'じゃないよなー"てな。

初心者向けなのは百も承知二百も合点なんだけど、
腹を括れない自分にもどかしくもあるわけで。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 14:15 刈歩 菜良

みなさん、コメントありがとうございます。
今、モナカなので、コメントは夜改めて書きますね。
ご容赦くださいマセマセ。
_(_^_)_

# επιさんの元ねたのコメントも今晩書きますです。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 18:06 Ognac

せんせい教え方を請います
「デリゲートは関数ポインタみたいなもので、関数の位置を教えてあげれば、相手が勝手に呼ぶんだよ」と説明しても理解を得られないものなの?
ハリウッドの諺(?)「あなたは電話するな。私が電話する」が体得できない人には厳しいのかなぁ。
となると、Cの天敵とされるPointerと同じ道を歩みます? 名インストラクターとしての意見を拝聴したく。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 18:09 R・田中一郎

>小学校の頃2から3は引いちゃいけないといわれていて、
>中学校になって突然引くのが当たり前になって、「大人はきたねぇ。」と思った口ですが。

そして、電流はプラスからマイナスに流れるけど、電子はマイナスからプラスに流れるんだ。
見えないだけに、余計に訳が分からない。

a円のリンゴを五個買いました。答えは5a円ってなんじゃそりゃ。近所の駄菓子屋で行ったら無視されたぞ。


・・・・いかん脱線してる。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 19:09 刈歩 菜良

えムナウさん
> 小学校の頃2から3は引いちゃいけないといわれていて、
> 中学校になって突然引くのが当たり前になって、「大人はきたねぇ。」と思った口ですが。
>
> 学校というのはそういうもんだとじゃまさんの話を聞いていて妙に納得しておりました。
うまいこといいますねぇ。
まさに、そんな感じです。
(^.^)

> 文字列がReadOnlyという説明も感心しました。
実は、これは、str[0] = 'x';とかできないってとこから来た表現だったりします。

> アセンブリが持っている文字列リテラルのプールは実行時には使われなくなるのですが、この辺の動作はきっとなんとなくしか考えていなくて、知っている人は少ないのかなぁと思います。
おぉ、きちんと説明するとそうなるんですねぇ。

渋木宏明(ひどり) さん
> 当日「でりげーとは?」の時に横から口をはさみましたが、「初心者向け」なら struct も「使わん」で片付けます (^^; > じぶん
リアルひどりさんから突っ込んでいただいて、涙がちょちょぎれるほどうれしかったです!!
その通りなんですよね、structは初心者向けにはいらない説明ですね。
# トリビアです。使わんけど、知ってても害はないかなと...
でも、値型と参照型のメモリー上の違いはしっかり押さえて頂きたいです。

> string 型は難しいですねぇ。頻繁に出てくるくせに特殊なふるまいをする曲者なので。
そうなんですよ。
で、値型と参照型を教える段階ではクラスを教えていないので、string型しか使えないんですよねぇ。
(~_~)
この辺がもどかしいところです。

επιさん
> Cが分かったちゃんにはこれで十分わかってもらえるですわ。
> 一方C++におけるC を持たない Java,C#,VB.NET では
> どないに説明すんだろねー。 ってことなんですけどね。
個人的には「Cが分かったちゃん」ってつまり、実装レベルでのメモリーイメージが頭に入っている人だと思うのですね。
そこがない前提で語らなければいけないので、いろいろと工夫が必要になってきます。
最近はC++を学ぶ方もCを知らないのが当たり前だったりするので、同じ工夫が必要なのです。

> # ただ、この説明は自分の中でも気に入ってはいません。
> # あまりに実装べったべたで"それは'からくり'だけど
> # 'リクツ'じゃないよなー"てな。
わかってらっしゃって突っ込まれているのはギガも承知テラも合点ですよ♪
(*^^)v

Ognacさん
> せんせい教え方を請います
> 「デリゲートは関数ポインタみたいなもので、関数の位置を教えてあげれば、相手が勝手に呼ぶんだよ」と説明しても理解を得られないものなの?
初心者の方は「かんすうぽいんたー???」で、秒殺の撃沈でモチベーション急降下です。
C(ポインター)を知っていることを前提にしている段階で、初心者相手ではなくなっています。

初心者とは「変数って、どう変なの?」とか、「~コントロールって何をコントロールするんですか?」というレベルで引っかかって前に進めない方たちを含んでいるんです。

Rさん
> そして、電流はプラスからマイナスに流れるけど、電子はマイナスからプラスに流れるんだ。
> 見えないだけに、余計に訳が分からない。
これ、ほんとに意味不明。
ってか、最初にプラス、マイナスや電流の方向をてきとぅーに決めちゃったから、歴史的流れ上変えれなくなっちゃったわけですよね。
「2008年からプラスとマイナスを今までと逆に呼びます!!」
とか、
「2008年からマイナスを凸記号、プラスを凹記号で表します!!」
とかして、整合性を取ってほしい!!

> a円のリンゴを五個買いました。答えは5a円ってなんじゃそりゃ。近所の駄菓子屋で行ったら無視されたぞ。
一休さんならもうすこしうまいこと返せたのでしょうが...

> ・・・・いかん脱線してる。
脱線うぇるかむっす!!

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 19:14 刈歩 菜良

Ognacさん
> 初心者の方は「かんすうぽいんたー???」で、秒殺の撃沈でモチベーション急降下です。
> C(ポインター)を知っていることを前提にしている段階で、初心者相手ではなくなっています。
ちょっと違いました。
デリゲートを使う必要性がある段階で、初心者レベルのコーディングではないといったほうが良いような気がしてきました。
(^_^;)

で、デリゲートをいよいよ教えるという段階でもそもそもC#やVBの世界に「ポインター」という言葉は存在しないので、私なら「参照型」を例に説明します。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 19:15 とりこびと

一日中考えてました。でも言葉にならないもどかしさ。

やっぱり、人に伝えるときの落としどころって難しい。

なので、かるぼさんをとっても尊敬。

うわw3行www

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 19:32 刈歩 菜良

とりこびとさん
> 一日中考えてました。でも言葉にならないもどかしさ。
がんばった!
えらいえらい。
(゜_゜)\(^0_0^)

# って、どんだけ上から目線やーーー!!

> やっぱり、人に伝えるときの落としどころって難しい。
落としどころなどないっ! by 犬のお父さん
てのが実は正解なのです。
なので、
「そのバランスとタイミングは勉強する側の飲み込みの速さと教える側の手腕しだいで幾通りもありえます。」
なんです。

> なので、かるぼさんをとっても尊敬。
とんでもございません。
私がついていけないスピードでいろんなものをガツガツ更新&作成されてるとりこびっちさんの方が数テラ倍尊敬に値しますです。はい。
m(__)m

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 19:43 Chuki

(うぅ、その講義聴いてみたい...)

# 異国の人のほうが日本語が達者♪(←多分エントリタイトルとして間違っている。) 2007/10/09 20:23 とりこびと ぶろぐ。

異国の人のほうが日本語が達者♪(←多分エントリタイトルとして間違っている。)

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/09 20:41 刈歩 菜良

Chukiさん
> (うぅ、その講義聴いてみたい...)
最高のお褒めの言葉ありがとうございます!!
\(●^o^●)/

# 大阪でもリピートセッションやる? (^Q^)
# 調子コキ過ぎ!すみません。_(._.)_

しばらくするとビデオが公開されると思いますので、しばしお待ちを...

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 0:27 やまだ

>初心者の方は「かんすうぽいんたー???」で、秒殺の撃沈でモチベーション急降下です。
「函数の参照型だよ、だから複数の箇所から同じ函数が見えるんだよ」では通じないものなのかなぁ。

そもそも「函数」という表記が現代では通じないか(^^;
#未だに「関数」には抵抗感のある私。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 0:59 刈歩 菜良

やまださん
> そもそも「函数」という表記が現代では通じないか(^^;
ほい。
初耳ってか、初めて見ました。
で、Wikipedia先生に聞いてみると...
> 日本語としての関数はもともと「函数」と書く。<<中略>>1950年代以降、同音の「関」へと書き換えがすすめられた。

ん?
1950年代以降?
えぇ!
やまださんおいくつなん???

でも、
> 「函数の参照型だよ、だから複数の箇所から同じ函数が見えるんだよ」では通じないものなのかなぁ。
そうそう。
わたしもそう説明すると思います。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 1:07 中博俊

函数
こんな乱暴な置き換えアリエネーでしょ?
そんな例はいくらでもあります。
障害も本来は障碍です。まるで害悪かのような害の字を当てるなんてアリエネー

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 3:14 やまだ

函数の"函"ってのは、つまりはblack boxなんです。
何か入れると(メカニズムは良くわからんけど)何か法則に従って出てくるよー、っていう。

>やまださんおいくつなん???
ふっ

>障害も本来は障碍です。
ですね。「障害者の方にとっては、周囲のみなさんの配慮が必要です」みたいな表現を見ると、「まずお前が配慮しろよ」と言いたくなります。

> 「函数の参照型だよ、だから複数の箇所から同じ函数が見えるんだよ」では通じないものなのかなぁ。
そうしないと継承の説明は難しいのではないかと。

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 9:41 Ognac

「函数の参照」うわっ。Goodな言い回し。とりいれようっと。

>こんな乱暴な置き換えアリエネーでしょ
大いに賛同。いくら漢字が難しかっても略語化するのに凄く違和感を感じます。
文化はほっといたら滅びるのかも知れませんが、助長する行為にしか感じられないです。
世論:よろん 、せろん: もともとは 輿論と世論で別物だったのですよね。
輿の字を世に簡略化してから同一視されるようになったとか聞きました。

# stringクイズ解答編 2007/10/10 15:56 えムナウ Blog

stringクイズ解答編

# re: ご来場ありがとうございました&神々へのフォロー 2007/10/10 21:07 Gushwell

>正しさを追い求めるあまり、複雑になりすぎて理解ができないと本末転倒

これ、よく分かります。
でも、正しくない説明をする際は、理解を助けるために、この説明をしているので、本当のことを知りたい方は、後で調べてください、
とかなんとか、そういった事前or事後の断りが必要かなと思うな。




# re: ご来場ありがとうございました&神々へのフォロー 2007/10/12 14:05 刈歩 菜良

Gushwellさん
> >正しさを追い求めるあまり、複雑になりすぎて理解ができないと本末転倒
> これ、よく分かります。
> でも、正しくない説明をする際は、理解を助けるために、この説明をしているので、本当のことを知りたい方は、後で調べてください、
> とかなんとか、そういった事前or事後の断りが必要かなと思うな。

そうなんですよね。
なので、毎回勉強会の時は
「実装の話ではないですよー。」
とか、
「実際の実装は違いますよー。」
と、合間合間に言うようにしています。

# 質問と回答 2007/12/23 18:12 Mr.Tの場所

質問と回答

# 質問と回答 2007/12/23 22:06 Mr.Tの場所

質問と回答

# <url>http://www.insurserviceonline.com/|cheap insurance</url> 88060 <url>http://www.findmortgagequotes.net/|mortgage refinance</url> %-((( 2012/08/10 19:01 Dahrann

<url>http://www.insurserviceonline.com/|cheap insurance</url> 88060 <url>http://www.findmortgagequotes.net/|mortgage refinance</url> %-(((

# <url>http://www.getinfectiontreatment.com/|doxycycline</url> jgdg <url>http://www.insuranceratesinminutes.com/|low car insurance</url> =-((( <url>http://www.cheapairflights4you.com/|flight cheap</url> 023913 <url> 2012/09/21 1:51 Bettie

<url>http://www.getinfectiontreatment.com/|doxycycline</url> jgdg <url>http://www.insuranceratesinminutes.com/|low car insurance</url> =-((( <url>http://www.cheapairflights4you.com/|flight cheap</url> 023913 <url>http://www.instantinsurquotes.com/|online car insurance</url> 8)))

# <url>http://www.findacnetreatment.net/|accutane</url> 81221 <url>http://www.findyourcollegesonline.com/|online college</url> 28500 <url>http://www.cheapairflights4you.com/|cheap air flights</url> qnwu 2012/10/02 2:20 Forever

<url>http://www.findacnetreatment.net/|accutane</url> 81221 <url>http://www.findyourcollegesonline.com/|online college</url> 28500 <url>http://www.cheapairflights4you.com/|cheap air flights</url> qnwu

タイトル
名前
Url
コメント