アカウント名:
パスワード:
例えば、どうしてもポインタが理解できないとか、再帰が理解できないとか。
ポインタを使えないってことは、プログラミングの適性の有無を知るのに最適みたいなんですよ。
ポインタが解らない趣味や教養プログラマは、カーネルハッカーになれないと思う、多分。
違うよ。頭の一部が不自由だから、理解できないんだよ。
そう思う時点で、プログラマに向いてない頭脳なのですよ。
C言語の解説本を読まないとC言語でプログラムを書けないって時点で適性がない。
C(やそのほか多くの言語)にイテレータが「無い」という言い方は不正確だと思います。
男性には生を受けたときからハゲという名のバグがプログラムされています。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
普通のやつらの下を行け -- バッドノウハウ専門家
俺が教えた時 (スコア:1)
教材はまずはバブルソート、それから数当てゲーム(mooとかHit&Blowとかいわれるやつ)とオセロをやらせた。
でもいまやるなら仕事がSIだから、B系ShellかPerlのスクリプトだな。
Re:俺が教えた時 (スコア:1)
アセンブラは別に難しく感じなかったし、間接アドレス知ってたからポインタ楽勝だった。
the.ACount
Re: (スコア:0)
>教材はまずはバブルソート、それから数当てゲーム(mooとかHit&Blowとかいわれるやつ)とオセロをやらせた。
同じくC言語に一票。
>>11~14歳の優秀な生徒を対象とした、
5~10歳ならBASICとかRubyとか他の言語も考えるけれど、
11~14歳ならそこまで手抜きをする意味がない。
C言語で普通にアルゴリズムとデータ構造などのプログラミングの基礎をミッチリ
やればいい。それでオチこぼれるなら適性が無かったってだけの話なので、この
世界から足を洗うのに早すぎるということはない。
Re:俺が教えた時 (スコア:1, すばらしい洞察)
正直いって教える側の手抜き、思い上がりでしょう。指導方法の悪さをカバーする言葉以外のなにものでもない。なんでこういう歪んだ考えになったか考えたら、
> この世界から足を洗うのに早すぎるということはない。
この世界ってなに?って話。子供に野球(サッカーでも)を教えるときに「この指導方法でオチこぼれるなら適性が無かったってだけの話。この世界から足を洗うのに早すぎるということはない。」なんていう人は極端なプロ志向の一部だけじゃないでしょうか?
それでなくってもこの業界って周囲の無理解を嘆くことが多いのに、君の方針はそれを加速させるだけ。
Re: (スコア:0)
下手にプログラムを書けるとIT土方になりかねません。早めに撤退するのも必要なことです。
Re:俺が教えた時 (スコア:1)
再帰はCでなくても教えられますね。
Re: (スコア:0)
いやいや。
ポインタを使えないってことは、プログラミングの適性の有無を知るのに最適みたいなんですよ。
サッカー選手の適性見るのに、瞬発力をチェックしたり、長距離走をやらせて
みたりするようなものですかね。
>再帰はCでなくても教えられますね。
それは「C言語でなくてもいい理由」ではあるけど「C言語でいけない理由」ではないですね。
Re:俺が教えた時 (スコア:1)
もちろん、例えばカーネルハッカーを目指すならCで入門もありだとは思います。
でも、趣味や教養としてもプログラミングなら、ポインタなんか解らなくてもいいし、そこまでシビアにプログラミング適性を測る必要もない。
しかも、趣味や教養プログラマからカーネルハッカーに成れないか、というとそんなことも無いわけだし。
Cだと、いわゆるプログラミング以外に雑多なことを覚えなきゃいけない。コンパイルとか#includeとかmain()とか、まともにエラー処理をしてくれないってこととか。それって別に楽しいことでもなんでもない。
そんなもの覚えてる暇があったら、λ式とかイテレータとか、そういうものを覚えた方が楽しいんじゃないですかね。これらは、Cには無い物です。
Re: (スコア:0)
ていうか、教え方が下手だから理解に導けないんでしょ
むしろ、ポインタとそうでないものが混在しているのは混乱の元なので薦めるべきでないかもね
そう考えると、全てがオブジェクトへのポインタである言語の方が、ポインタへの理解も容易でいいかもしれないね
Re: (スコア:0)
そして器質的な理由でポインタを理解できない人は、同様の理由でλ演算やイテレータが理解できるようになることもないんだよ。
そういう人にとってプログラミングが楽しいことになることは絶対にないし、世の中にはもっと楽しくて役に立つことはいっぱいあるから、早めに別の道に進むことを考えた方がその人のためじゃないかなぁ。
Re: (スコア:0)
Re:俺が教えた時 (スコア:1)
私が教えた場合という非常に少ない例を挙げさせて頂くとですね。
ポインタ以外はそこそこ分る、ポインタだけが分らない人達相手に教えたことがあるのですが。
その人に合った説明すると、理解できるようになってくれました。
一度分ると、応用も利いてダブルポインタも理解できるようになってました。
オブジェクト指向が理解できない方も、同様でしたね。
どちらも器質の問題じゃなくて、例えるなら「アハ体験」の前な状態なんだと思いますよ。
Re:俺が教えた時 (スコア:1)
ただし、趣味や教養プログラマが、ポインタを理解するようになる場合もある。
しかも、Cで入門してポインタを理解できない確率より、非ポインタ言語で入門してCに進み、ポインタを理解できない確率の方が低いと思う。
Re:俺が教えた時 (スコア:1)
Re: (スコア:0)
うっさい!
ハゲはプログラマの適性と関係ないだろ!
Re: (スコア:0)
そう思う時点で、プログラマに向いてない頭脳なのですよ。
C言語の解説本を読まないとC言語でプログラムを書けないって時点で適性がない。
C言語の仕様書を読んだだけでC言語でプログラムを書けるようでないと向いてない。
もちろん書けるだけでは不十分で、上手に書けなければならないが、そのレベルになってようやく、他人のコードを見るとかノウハウ本を読むとか、人の手を借りてもいいと思う。
実際、C言語の仕様よりも、よっぽど複雑怪奇で落とし穴だらけなものを相手にすることになるんですよ?
Re: (スコア:0)
いっぽうで、広い意味での「参照」は凄く大事だと思います。
早い時期かどうかはともかく、どこかの時期では
きっちり習得してもらわんといかん(駄目プログラマにしかならん)。
Cは他にも面倒が多すぎる(たとえばポインタについても構文の変態さが有る)んで、
あんまりお勧めできない言語だなと思います。
ラムダやイテレータとかといった高級志向も良いことだと思います。
>これらは、Cには無い物
C(やそのほか多くの言語)にイテレータが「無い」という言い方は不正確だと思います。
だってループカウンタの整数「i」だって(外部)イテレータなのだから。
内部イテレータにしてもqsortみたいに使われる部分は有るし。
Re:俺が教えた時 (スコア:1)
趣味と教養のプログラミングでよければ、そこまで要求するのはナンセンス。
問題のスコープを正しく捉えられないのは、プログラマに向いてないんじゃないかと思いますね。プログラマ以前の問題かもしれませんが。
Re:俺が教えた時 (スコア:1)
Re: (スコア:0)
Re:俺が教えた時 (スコア:1)
…とツッコんでしまうこの機能はバグでしょうか仕様でしょうか?
Re: (スコア:0)
ジジィとババァはとっとと死ぬべきです。
# 俺?16進なら超えてないから大丈b……うわなにをするはなs
Re: (スコア:0)
初めて「プログラミング」という概念に触れるレベルで、C言語の仕様書(JIS X3010-1993 プログラム言語Cとか?)を読むだけですべてを理解できるのは同じ星の人間には無理そう...
それが出きるのは本当の天才だけです。プログラミングという概念を発明できるくらいのね。
Re: (スコア:0)
面倒臭がりは、そもそも自分でプログラムを組もうとは考えない。
出来合いの物で何とかしようとする。たとえ結果的に自分で組んだ方が早かったとしても。
まず、誰か同じ事考えて既にプログラムを作っているに違いないと考えて探す。
それで見つかればよし。見つからなければそこで面倒臭くなって諦めるか、
もうちょっと探すかの選択をする。
もうちょっと探しても見つからなかった場合、その時点で諦める。
このあと自分でプログラムを組もうと考える奴は面倒臭がりじゃないと思う。
C反対 (スコア:0)
C++の問題でもあるんだけど、標準ライブラリが今のOSの「あたりまえ」について行ってない。例えばネットワークとかスレッドを使おうとするとすぐにsocketとかpthreadが必要になる。でもWindowsだとWinSockやWin32 APIが必要だし、標準が弱い。結果的に入門書に書いてあることは昔ながらのアルゴリズムとデータ構造なんかになる。printf()が使えないCの処理系はないだろうからね。Boost threadと
即席 (スコア:1)
int main(void)
{
MessageBox(NULL, "WindowsのGUIが使えますよん", "この程度ならCでも数ステップで", MB_OK);
return 0;
}
Re:C反対 (スコア:1, 興味深い)
年寄りは自分の歩んできたのと同じ道を若者に歩ませようとするが、それは有害だと思う。
悪気があってのことではなく、年寄りはそれしか知らないから、それしか教えられないのだとは思うが。
人間の脳の処理能力と、使える時間には限りがあるので、
スタート地点が同じで、同じ道を、同じ速度で歩んだら、いつまでたっても先人に追い付けない。
若い人は同じ道を歩む必要はなく、もっと進んだ場所からスタートしてもいいと思う。
先人が歩んだ道のりは、コンピュータの歴史の教科書か何かで1日で早足で知っておくだけでいいと思う。
基礎から積み上げて我流の変な癖をつけてしまうくらいなら、
多くの優れたコードをコピペしまくって動くものをでっち上げるほうが、
スタンダードな作法が身についてよいと思います。
どんなに詳細に物事を把握して完全に理解していても、
目的の機能を実装する前にタイムオーバーになるような人は使い物にならないし。
どうでもいいことですが、
> printf()が使えないCの処理系はないだろうからね。
組込みマイコン等では、標準ライブラリすらないこともあります。
学習しない人に未来はない (スコア:2, 興味深い)
>先人が歩んだ道のりは、コンピュータの歴史の教科書か何かで1日で早足で知っておくだけでいいと思う。
例えばニュートン力学や相対性理論を「再発明」する必要はないと思うけれど、
それらを「理解」していない人は物理学者とは言えない。
E=MC^2 などの式をコピーして、意味も分からずそれに数値を当てはめている限りは、
いつまでたってもニュートンやアインシュタインを超えられない。式を理解せず、
その意味も応用もできない人間は、先人の通った道をただなぞってるだけ。
そんなのは物理学者ではない。
>スタート地点が同じで、同じ道を、同じ速度で歩んだら、いつまでたっても先人に追い付けない。
今も昔もプログラマーになるのに必要となる「知識」や「技能」にはさほど大きな違いは
ない。ただし今の人達は昔に比べてそれを遙かに簡単に学習する環境が与えられている。
十分な書籍も、強力な個人用コンピューターも、インターネット環境さえ用意されている。
洋書だってamazonで簡単に手に入る。
あとはただ学習するだけじゃないか。
なんと簡単なことだろう!
これで文句を言ってたらバチがあたるぞ。
>基礎から積み上げて我流の変な癖をつけてしまうくらいなら、
>多くの優れたコードをコピペしまくって動くものをでっち上げるほうが、
>スタンダードな作法が身についてよいと思います。
それじゃ身につかないんだってば.
見るだけじゃなくて、考えて、理解して、実践しないと。
#コンピューターだと写本のように「書き写す」必要さえない。
そして考えるためには、その基礎となる知識が必要。
無知な人間には考える自由さえ与えられない。
電卓を叩いたりExcelに数値を書き込んだり、意味も分からずサンプルコードを繋ぎ合わせることが
「コンピューターを使うこと」だと思ってる人なら勝手にすればいい。いつまでたってもお遊びの
似非プログラマーから抜け出せないだろうけど、それも本人の選んだ道だ。
ただし、邪魔はしないでねと。
Re:学習しない人に未来はない (スコア:2, すばらしい洞察)
工学技術の多くは理解しなくても使えるための技術だ。
理学系の発想と工学系の発想はバランスが大切
Re: (スコア:0)
そういえば、オープンソース版のT-Kernel(TRON)ではprintf()使えなかった思い出が。それに代わるものはあるのですけどね。
Re: (スコア:0)