アカウント名:
パスワード:
プログラムを学ぶには何らかのプログラミング言語を学ぶことが必要だけど, プログラミング言語を学ぶことがプログラムを学ぶことではないってことは注意しといた方がいいですね.
それと, 何故プログラムを学ぶのかという目的によっても推薦する言語が異なってくるので, 明確な目的/目標を決めておくのも重要かと.
プログラミングの醍醐味というのは、自分で「目の前の機械を操ってる感」だと思うんですよコンピュータを操ってる感と言えば一番簡単なのは何かを表示することなわけで、本当の「入門」なら(文法は滅茶苦茶でも)HTMLのIMGタグくらいでいいんじゃないかと思います# HTMLはプログラム言語じゃないけど
文科系の大学生にプログラミングを教えて思ったこと http://d.hatena.ne.jp/shi3z/20131016/1381884291 [hatena.ne.jp]
条件分岐とか繰り返しとかを機械にやらせるのは、高度すぎて入門には不適切だと思います他の分野の成績にかかわらず、それまでの学習メンタルモデルによっては、何がなんだかさっぱりわからないそうなのでhttp://d.hatena.ne.jp/JavaBlack/20120520/p1 [hatena.ne.jp]http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
繰り返しは、恐らく頭の中でループを展開してしまっているのだと思っています。「hogehogeを繰り返し行ったもの」のまま留めておけないのかも
概ね同意です。ただ、プログラムを学ぶ上でパラダイムは重要で、そしてパラダイムを学ぶには、やはり複数の言語を学ぶのが良いと思うのです。
ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです
足し算をブロックの数を数えることでしか学べない子もいるし、そうでない神童揃いの/.Jerみたいなのもいます
前半と後半のつながりがよくわからない。「早まった一般化」?
後半はただの嫌味ですこのストーリーでおすすめされているものを見ればわかると思います
アセンブラあたりからやると、手続き型も関数型もオブジェクト指向も、機械語に変換する為のマクロでしかないって事が理解しやすいと思うけど。
例えば、関数型言語は変数に再代入が出来ない。とききくとなんか特殊な言語って感じがするけどllvmアセンブリも変数に再代入できない。アセンブラには変数自体が存在しない。変数自体が便宜的に作られたもの、
CとかC++のポインタも実際にアドレスを格納しているとは限らないわけだし。
抽象度のフェーズを移行できるってのは。プログラミングを学ぶ上で割と有用
チューリング機械の粗悪で抽象度の低い模倣から始めるからラムダ計算のような計算モデルが理解できなくなるという典型例ですね。
> ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです
というコメントに対して
> アセンブラあたりからやると、手続き型も関数型もオブジェクト指向も、> 機械語に変換する為のマクロでしかないって事が理解しやすいと思うけど。
と返答する、低い抽象度から脱却できない馬鹿の見本がでてくるわけですよ始末の悪い事に本人は全く自覚していない
>そうでない神童揃いの/.Jerみたいなのもいます元神童のただの人という事か
手続き型脳に染まるとより高度なパラダイムのプログラミング言語が理解できなくなるようなものだね。手続き型脳には理解できないこと自体が理解できないわけだが、無理やり例えるならCOBOLerに構造化やオブジェクト指向を理解させようとしているところを想像してみよう
とかな。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
学ぶのはプログラムか言語か (スコア:5, すばらしい洞察)
プログラムを学ぶには何らかのプログラミング言語を学ぶことが必要だけど, プログラミング言語を学ぶことがプログラムを学ぶことではないってことは注意しといた方がいいですね.
それと, 何故プログラムを学ぶのかという目的によっても推薦する言語が異なってくるので, 明確な目的/目標を決めておくのも重要かと.
Re:学ぶのはプログラムか言語か (スコア:1)
プログラミングの醍醐味というのは、自分で「目の前の機械を操ってる感」だと思うんですよ
コンピュータを操ってる感と言えば一番簡単なのは何かを表示することなわけで、
本当の「入門」なら(文法は滅茶苦茶でも)HTMLのIMGタグくらいでいいんじゃないかと思います
# HTMLはプログラム言語じゃないけど
文科系の大学生にプログラミングを教えて思ったこと http://d.hatena.ne.jp/shi3z/20131016/1381884291 [hatena.ne.jp]
条件分岐とか繰り返しとかを機械にやらせるのは、高度すぎて入門には不適切だと思います
他の分野の成績にかかわらず、それまでの学習メンタルモデルによっては、何がなんだかさっぱりわからないそうなので
http://d.hatena.ne.jp/JavaBlack/20120520/p1 [hatena.ne.jp]
http://d.hatena.ne.jp/masatoi/20090707/1246965336 [hatena.ne.jp]
Re: (スコア:0)
文系の新卒に教えるのと同じ感じですね。
もっとも大学のうちにこの人のように(文法おぼえたけどわかんなーいじゃなくて)基礎をきちっと教えておいてくれると、会社入ってからは違うことが教えられるのでたすかりますが。
初歩の初歩は習うより慣れろで良いと思うので(少し書けるようになったらまた背景を説明する必要はあるが)、どんどん書かせる方がいいんじゃないかと思います。
生徒数が増えると説明しきれない(というかなにがわかってないか理解してあげる時間が取れない)ので少人数への教育ならば、という条件は付きますが。
条件分岐とか繰り返しが高度というのはどうかなぁ。もともと代入とジャンプと条件付きジャンプしかないので私の中では入門です。というかそれを封じられると何を教えればいいのかわからなくなります。
Re: (スコア:0)
繰り返しは、恐らく頭の中でループを展開してしまっているのだと思っています。
「hogehogeを繰り返し行ったもの」のまま留めておけないのかも
Re: (スコア:0)
概ね同意です。
ただ、プログラムを学ぶ上でパラダイムは重要で、そしてパラダイムを学ぶには、やはり複数の言語を学ぶのが良いと思うのです。
Re: (スコア:0)
ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです
足し算をブロックの数を数えることでしか学べない子もいるし、そうでない神童揃いの/.Jerみたいなのもいます
Re: (スコア:0)
前半と後半のつながりがよくわからない。「早まった一般化」?
Re: (スコア:0)
後半はただの嫌味です
このストーリーでおすすめされているものを見ればわかると思います
Re: (スコア:0)
アセンブラあたりからやると、手続き型も関数型もオブジェクト指向も、
機械語に変換する為のマクロでしかないって事が理解しやすいと思うけど。
例えば、関数型言語は変数に再代入が出来ない。とききくとなんか特殊な言語って感じがするけど
llvmアセンブリも変数に再代入できない。アセンブラには変数自体が存在しない。変数自体が便宜的に作られたもの、
CとかC++のポインタも実際にアドレスを格納しているとは限らないわけだし。
抽象度のフェーズを移行できるってのは。プログラミングを学ぶ上で割と有用
Re: (スコア:0)
チューリング機械の粗悪で抽象度の低い模倣から始めるからラムダ計算のような計算モデルが理解できなくなるという典型例ですね。
Re: (スコア:0)
> ところが人間、抽象度の低いものから学ぶとなかなかそれから脱却できないものです
というコメントに対して
> アセンブラあたりからやると、手続き型も関数型もオブジェクト指向も、
> 機械語に変換する為のマクロでしかないって事が理解しやすいと思うけど。
と返答する、低い抽象度から脱却できない馬鹿の見本がでてくるわけですよ
始末の悪い事に本人は全く自覚していない
Re: (スコア:0)
>そうでない神童揃いの/.Jerみたいなのもいます
元神童のただの人という事か
Re: (スコア:0)
手続き型脳に染まるとより高度なパラダイムのプログラミング言語が理解できなくなるようなものだね。
手続き型脳には理解できないこと自体が理解できないわけだが、無理やり例えるならCOBOLerに構造化やオブジェクト指向を理解させようとしているところを想像してみよう
大丈夫、どっちにしろ得られるのは人生だ (スコア:0)
とかな。