アカウント名:
パスワード:
参考「プログラミングできる人とできない人との間の深い溝」 http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp] 「どうしてプログラマに・・・プログラムが書けないのか?」 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm [aoky.net] 「Javaスクールの危険」 http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%8... [joelonsoftware.com]
「学位は持ってる = 優秀なプログラマ」ではないが、「独学でやりました(キリッ)=優秀なプログラマ」でもない。それだけの話だと思う。
ひょっとしたら、この記
a = b;
の=記号が代入であるとの前提なしに出現したら(「あくまでコードを一度も見たことのない学生にむけてのテスト」である)"数学的等号", もしくは"電卓的計算要求"が候補となり、右辺が存在することから数学的等号であると判断するのは、当然ではないだろうか。結果、式は偽なのに選択肢に無いので途方に暮れると。
前半二つの段落はそれでいいと思います.
ですが,それは一般的にプログラミングを学ぶ上での話だと思いますがどうでしょう.理論としてコンピュータサイエンス,特に言語理論をやる人はその「さらっと納得」している部分を,きちんと論証していく能力を身につけるのが一つの目的です.a = b; という例では"="オペレーションの意味論を定義した上で,その特性について議論しますので,「さらっと納得」というレベルだと困ってしまいます.
余談だけど,CやJavaのこの"="を「代入」と呼ぶ人は,自分の言っているに違和感をもたないものなんでしょうか?明らかにやっていることは上書きなのに.
もちろん,言語理論なんて知らなくていい状況の方が多いでしょう.というよりもそれが支配的でしょう.それを批判するつもりもありません,念のため.でもそういうことが必要になるケースがあり,その能力を示すひとつの目安が学位なんではないでしょうか.
あの複雑な理論をそういうやり方で理解するのは私には無理そうです。
どの理論のことを言っているのかわかりませんが,それが無理と言うのは教材が悪いか,重要なところを読み飛しているんだと思います.
結局言語理論なんてのは数学ですから,より馴染みのある例で話をした方がいいかもしれません.中学で数学の勉強をするとき,練習問題があったかと思います.公式を知ら
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「毎々お世話になっております。仕様書を頂きたく。」「拝承」 -- ある会社の日常
プログラミングできる人とできない人との間の深い溝 (スコア:3, 参考になる)
参考
「プログラミングできる人とできない人との間の深い溝」 http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
「どうしてプログラマに・・・プログラムが書けないのか?」 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm [aoky.net]
「Javaスクールの危険」 http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B9%E3%8... [joelonsoftware.com]
「学位は持ってる = 優秀なプログラマ」ではないが、
「独学でやりました(キリッ)=優秀なプログラマ」でもない。
それだけの話だと思う。
ひょっとしたら、この記
Re: (スコア:0)
a = b;
の=記号が代入であるとの前提なしに出現したら(「あくまでコードを一度も見たことのない学生にむけてのテスト」である)
"数学的等号", もしくは"電卓的計算要求"が候補となり、右辺が存在することから数学的等号であると判断するのは、当然ではないだろうか。
結果、式は偽なのに選択肢に無いので途方に暮れると。
Re: (スコア:1)
自分の知ってる常識からは外れてるが、何かしら合理的で一貫性のあるルールで書かれてる、と言うのをさらっと納得した上で、上手いことそのルールを演繹できる能力、みたいなのを見てる話でしょう。
一字一句、順に勉強するよりは、「こんなルールかな」と想像してそれがあってる、みたいなプロセスを挟むとプログラミングの習得は簡単ですよ、みたいな。 素晴らしいプログラミングの講義を聴くか、抜けの無い完璧な解説をちゃんと読めば全部書いてあることとは言え、 必ずしもそういうテキストなりに当たるとも限りませんし。
Re: (スコア:2)
前半二つの段落はそれでいいと思います.
ですが,それは一般的にプログラミングを学ぶ上での話だと思いますがどうでしょう.
理論としてコンピュータサイエンス,
特に言語理論をやる人はその「さらっと納得」している部分を,
きちんと論証していく能力を身につけるのが一つの目的です.
a = b; という例では"="オペレーションの意味論を定義した上で,
その特性について議論しますので,「さらっと納得」というレベルだと困ってしまいます.
余談だけど,CやJavaのこの"="を「代入」と呼ぶ人は,
自分の言っているに違和感をもたないものなんでしょうか?
明らかにやっていることは上書きなのに.
Re: (スコア:1)
はい、その話として、コメントを書きました。このストーリーの本題に対してではなく、このコメントツリーの根っこからの流れに対してです。
一方で、改めて考えてみて、コンピュータサイエンスでも似たような能力が理解の一助になると思います。
ざっと見て、どういうルールの理論なのかを想像する(この時点で、ごく当然のこととして、それなりに合理的かつ一貫性のあるルールを想像できる能力)→教科書その他を念入りに参照して、想像したルールが正しいことを確認、みた
オフトピ (スコア:2)
もちろん,言語理論なんて知らなくていい状況の方が多いでしょう.
というよりもそれが支配的でしょう.
それを批判するつもりもありません,念のため.
でもそういうことが必要になるケースがあり,その能力を示すひとつの目安が学位なんではないでしょうか.
あの複雑な理論をそういうやり方で理解するのは私には無理そうです。
どの理論のことを言っているのかわかりませんが,
それが無理と言うのは教材が悪いか,重要なところを読み飛しているんだと思います.
結局言語理論なんてのは数学ですから,
より馴染みのある例で話をした方がいいかもしれません.
中学で数学の勉強をするとき,練習問題があったかと思います.
公式を知ら
Re:オフトピ (スコア:1)
個人的には、そこに壁を感じました。
中学・高校までの数学・物理は、どこか現実の問題をモデル化したような感じなので、 分からないところを、世の常識(こういう風に動くはず、とか)で補えたのが、 より抽象度の高い言語理論とか、論理学とかになると、対応する世の常識が存在しなかったりして。
幸い、私は、プログラミングはそこそこ経験があり、「こういう作用をもたらしたいけど、直接それは書けないから、システム上許されるこの操作とこの操作で間接的に結果を得る」みたいな回りくどい話には慣れていたので、そういうのを使って乗り切った、と思ってます。
>一方,そんなものがなくてもスムーズに勉強できる教材は良い教材.(タネンバウム然り,ピアース然り)
それはそうかも知れません。・・・分かってしまえば、「ただ正しい」だけではなく、もうちょっと、分かりやすい言い回しで説明出来るよなぁ、これ、とか思う授業が結構多かったです。