アカウント名:
パスワード:
この設問、「簡単」の定義があやふやなので論争の元になって居るが、現実としては表題の通りだと思う。
これが、二つの言語を習得た者と一つしか習得していない者の比較だと習得している言語のタイプによって状況が変わってくる可能性があるが、一切未経験と他言語経験者であればほぼ間違いなく他言語経験者の方が習得は容易であると言えるだろう。
ただ、それが「簡単に習得できた」と言えるかはまた別問題というか、人によって感覚が異なるというだけの話だろう。
> 一切未経験と他言語経験者であればほぼ間違いなく他言語経験者の方が習得は容易であると言えるだろう。
それもない。毎年、数十人にprolog教えてるのだが、C/Java系の言語経験者と、プログラム経験一切ない人間に、prolog 教えると後者のほうが覚えるのも理解するのも圧倒的に速い。例外もあるが、そういうのはは毎年1人いるかいないかぐらい。C/Javaの経験者はコンピュータプログラムはこういうものという先入観にとらわれて、理解がとても遅い。
> C/Javaの経験者はコンピュータプログラムはこういうものという先入観にとらわれて、理解がとても遅い。
当方C#erですが、関数型言語の習得にひどく苦労しています。
こういうパラダイムが違う言語は、何も先入観ない方が、すんなり習得できるのではと思っています。
同じくC#メインですが、パラダイムの習得自体は大したことないですが…
知ってる言語より記述長くメンドーになる言語だとやる気一気に消えますw
「プログラムをどのレベルまで抽象化しているのか」が人によってかなり違うのが容易か困難かに別れる原因の一つでしょう。プログラム言語を具体的にほぼそのまま覚える人は第2言語の習得は全く別物に思えて(似た言語であっても)非常に困難になるし、言語を自分なりに抽象化して覚えた人は容易になるでしょう。
プログラムに限ったことではないが、事象を抽象化出来る人と出来ない人では学習にかなり差が出る。その辺を教える側も認識が必要だと思う。
ないと言い切るのはどうだろうか。prolog はちょっと例としては特殊すぎない?逆に作用することもある一例程度ではないか?
prologはそもそも書けないというレベルになることが多いので明確ですが、学習の妨げになってるのは、パラダイムが違えば当たり前でしょう。パラダイムが違うものに対して共通する部分が存在しているはずだとか、再度学びなおさなくていい部分があるはずだなんて、変なこと考えてれば理解を阻害する要素になりますよ。
C系の言語しかやってない人も、関数型をやらせても本人は書けると言ってるし動くものは出てくるけど、はたから見れば、いくらなんでも、それは書けるとは言わないだろうってレベルの人が大半じゃないですか?
Prolog できないやつはプログラミングではなくて、それこそ基礎数学の命題論理や一階述語論理がわかっていないだけじゃないかな?
述語論理ほぼわかってないやつが書く Prolog と、完全に述語論理に従ってないと Prolog プログラミングとは認めない指導者。
そりゃ言語を全く解さない人物(狼などに育てられた人物)に、ゼロから言語を教えるより、言語を一つでも解する人物に新言語を教える方が容易。
>後者のほうが覚えるのも理解するのも圧倒的に速いそこは疑問だなあ。
教え方が下手な人だと、「最初は何も考えずに書いてください」と言ったりする。
本当になにも考えずに、エラー処理とか異常系とか考えずにコピペするだけなら初心者でも早かったりするけど、彼等は基本を全く理解してないから自分の書いたプログラムを自分でデバッグできないことも多い。
経験者の方が遅いのは、そういう部分を気にしての話。たとえ初めての言語でも、何も考えずには書かない。
一方初心者は、本当に何も考えずに書く。でもそれは本当に早いと言えるのか。
コンピューター操作・プログラム操作が出来るだけで随分違うはず。まあ昔はペーパープログラミング(パンチカード・ワイヤードロジック)なんてのもあったが。
プログラミング前の環境構築が一番きついですね知らん専門用語が並ぶマニュアル近頃のリッチなIDEに並ぶこのボタン群は何?押して大丈夫?
たぶん大丈夫。バルスと表示されなければ。
キーボードの打鍵もろくにできなかった大学時代。いきなり「慣れれば分かる」とかでプログラミング演習などやっても、結局BASICは身につかなかった。肩が凝って目が疲れて頭が混乱した状況で、何かが残るはずもなく。
半年前の座学「情報科学」にBASICも出ていたなぁ、そういえば。と気づいたのははるか後と。
Cはともかく、Javaしかやってない人間はそこから一歩も出られない人が多い印象はある。
何を言うんですか?lispだったらよかったですか? Emacs界隈ではCより普及しています.
まあ、CとかJavaとかPythonとか手続き型で育った人からしたら、Prolog よりも Lisp のほうがまだしもついていけるかもしれん。
#それでもかなり苦労したけど。
「学生が」ってのが肝だね。自称プログラミングできる学生はずぶの素人だから変わらないw
#まともにプログラミングできるのって学校に一人とかそういうオーダー
そこまで希少じゃないと思う。理系学部だったてのはあるかもしれんけど。当方1995年工学部卒業のおっさんだが、その当時でも10人以上はいた。今ならもっと多いはず。
情報系学科の96卒だが、クラスの半分は俺のコピペ、もう半分はもう一人のコピペという惨憺たる状況だったぞ。在学中に情報処理の資格取ったのも、多分俺だけだったし。
情報処理系の学科はレベルが低いのでそんなもんでしょ。教わるつもりでプログラム書いてる奴らはそんなもん。他に専門を持っていて自主的にプログラム書いている人間のほうが、圧倒的にプログラミング能力が高いのは当然。エンジニア採用の時は情報処理系の学科だとマイナス。
他に専門を持っていて自主的にプログラム書いている人間のほうが、圧倒的にプログラミング能力が高いのは当然。エンジニア採用の時は情報処理系の学科だとマイナス。
その理屈だと、結論は、情報処理系学科がプラスになることは無い、くらいでないとおかしいね。期待よりレベルが低かった、というのはあるんだろうけど、なんか偏見がひど過ぎない?
個人的な感想だけど、レベルの低い大学の情報系学科のレベルが低いのは仕方ない。そんなところばかり見て情報系学科を云々するのは、違う気がするね。
なんにせよ、好きで自主的に勉強できるものは、自主的に勉強したヤツの方がそうでない奴よりレベルが上、というのは当たり前の話だよね。教えてもらうだけ、ってヤツより、自主的に学ぶヤツの方がレベルが上、というのも当たり前。
まぁ当たり前なんだけどそれが他と比してよくあるってことでしょ物理が趣味だけど情報工学科に行ったやつに物理学科の人が教わることはまぁない物理学科行ってるけどプログラムが趣味の人が情報工学科の人の教えることは割とある(言うて3年次ぐらいまでか?)みたいな話で
物理が趣味
そんな人は少ない一方、プログラミングが趣味、と言う人が多い、と言うだけでは無いか?
それならやっぱり情報処理系学科は不要じゃん
趣味程度の学びで十分、と思うならそうなんじゃない?SESに出す兵隊が居ればいいんだ、というこであれば、その程度で良いんだろうし。
ただ、趣味で計算機科学を体系的に学ぶのは、それなりに難しいと思うよ。物理学も同じなんじゃない?
「ある言語ができる」という部分よりも、JPEGデコードロジックが書けるとか、ナップサック問題が解けるというほうが重要では。趣味でこれらを自主的に学ぶ機会は、少ないと思うが。。
そういうの使わないのであれば、短大、専修学校で十分だと思う。
大学でプログラミング教えてる大学教員ですが、学生が最初に習った言語の影響は結構有ります。学生に Python 教えると関数型っぽいが処理速度が遅い書き方で書いてくるのはほぼほぼ初心者で、プログラミング経験者は命令型なコードを書いてくる率が高いです。
初心者がPythonで書く関数型っぽいコード? ってどんなのでしょう?関数型言語を教えるわけでも無いのに、副作用の無い関数を定義して、それを合成することでコードを書く? それもPythonで? 相当優秀な学生さんたちですね。
forおじさん…
どんなプログラミング言語でも、ベースとなる共通概念がありますね。グローバル変数とか、ローカル変数とか、それらのスコープとかアナログ信号のデジタル化とか、(言語によるが)コンパイルと実行とか、ループとか、その入れ子構造とか
その辺をいちいち学びなおす必要はないことは確かに「プログラミング言語を一つ学んだら別の言語も簡単に習得できる」だろうこのへんは自然言語でいえば「単語がある」「名詞がある」とかの基本概念だろう。地球人類ならそれは母国語をマスターしたくらいで理解できている。
でもそこから先は結構言語によって思考概念が違うので、文法や思考が共通な言語だと敷居は低いが思考方法が違うと「簡単には習得できない」だろうC言語で思考していると、「で、この def __init__ っていつ実行されるの?」っていちいち躓く(俺だけかもしれん)自然言語だと、英語の現在完了形とか、習って数十年でも母国語が日本語だと腑に落ちたとは言えんしな
大筋合意。以下揚げ足取りなんだけど。
このへんは自然言語でいえば「単語がある」「名詞がある」とかの基本概念だろう。
日本語の場合、単語って概念は、書き言葉を習った時点ですらはっきりはしてない気がするね。単語ごとに分かち書きするわけでは無いし。文の概念を習って、それを文節に分けて、さらにその中を単語に分けることができる、と言うわけだけど、結構難しい。名詞だけを取り出すのは、比較的簡単だけど、動詞を含む文節から動詞・助動詞・助詞に分けるのは、そう簡単じゃない。単語の概念は薄いのではなかろうか。
本当に背水の陣というか後がなくなると何とかなる(ように見える程度には習得できる)
「できらぁ!」って受けた後納期が迫る状況で担当が大量に飛んだりして会社ごと本気でヤバイ状況になると公式ドキュメント・Qiita・StackOverflowあたりを友達にそれっぽい物ができていた(気がするだけの可能性大)
とある会社で当時ずぶの素人3名がる炎上現場に突っ込まれ1名退職したものの、残った2名は数月で実務経験それなりの中堅と言われても全く疑わないレベルになっていた本人の素質もあったのだろうけど背水の陣+カンヅメ+残業代青天井の力って凄い
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
ずぶの素人よりましなのは確か (スコア:1)
この設問、「簡単」の定義があやふやなので論争の元になって居るが、現実としては表題の通りだと思う。
これが、二つの言語を習得た者と一つしか習得していない者の比較だと習得している言語のタイプによって状況が変わってくる可能性があるが、一切未経験と他言語経験者であればほぼ間違いなく他言語経験者の方が習得は容易であると言えるだろう。
ただ、それが「簡単に習得できた」と言えるかはまた別問題というか、人によって感覚が異なるというだけの話だろう。
しもべは投稿を求める →スッポン放送局がくいつく →バンブラの新作が発売される
Re:ずぶの素人よりましなのは確か (スコア:2, 参考になる)
> 一切未経験と他言語経験者であればほぼ間違いなく他言語経験者の方が習得は容易であると言えるだろう。
それもない。
毎年、数十人にprolog教えてるのだが、C/Java系の言語経験者と、プログラム経験一切ない人間に、prolog 教えると後者のほうが覚えるのも理解するのも圧倒的に速い。例外もあるが、そういうのはは毎年1人いるかいないかぐらい。
C/Javaの経験者はコンピュータプログラムはこういうものという先入観にとらわれて、理解がとても遅い。
実感している (スコア:0)
> C/Javaの経験者はコンピュータプログラムはこういうものという先入観にとらわれて、理解がとても遅い。
当方C#erですが、関数型言語の習得にひどく苦労しています。
こういうパラダイムが違う言語は、
何も先入観ない方が、すんなり習得できるのではと思っています。
Re: (スコア:0)
同じくC#メインですが、パラダイムの習得自体は大したことないですが…
知ってる言語より記述長くメンドーになる言語だとやる気一気に消えますw
Re: (スコア:0)
「プログラムをどのレベルまで抽象化しているのか」が人によってかなり違うのが容易か困難かに別れる原因の一つでしょう。
プログラム言語を具体的にほぼそのまま覚える人は第2言語の習得は全く別物に思えて(似た言語であっても)非常に困難になるし、言語を自分なりに抽象化して覚えた人は容易になるでしょう。
プログラムに限ったことではないが、事象を抽象化出来る人と出来ない人では学習にかなり差が出る。
その辺を教える側も認識が必要だと思う。
Re: (スコア:0)
ないと言い切るのはどうだろうか。prolog はちょっと例としては特殊すぎない?逆に作用することもある一例程度ではないか?
Re: (スコア:0)
prologはそもそも書けないというレベルになることが多いので明確ですが、学習の妨げになってるのは、パラダイムが違えば当たり前でしょう。
パラダイムが違うものに対して共通する部分が存在しているはずだとか、再度学びなおさなくていい部分があるはずだなんて、変なこと考えてれば理解を阻害する要素になりますよ。
C系の言語しかやってない人も、関数型をやらせても本人は書けると言ってるし動くものは出てくるけど、はたから見れば、いくらなんでも、それは書けるとは言わないだろうってレベルの人が大半じゃないですか?
Re:ずぶの素人よりましなのは確か (スコア:1)
Re: (スコア:0)
Prolog できないやつはプログラミングではなくて、それこそ基礎数学の命題論理や一階述語論理がわかっていないだけじゃないかな?
述語論理ほぼわかってないやつが書く Prolog と、
完全に述語論理に従ってないと Prolog プログラミングとは認めない指導者。
Re: (スコア:0)
そりゃ言語を全く解さない人物(狼などに育てられた人物)に、ゼロから言語を教えるより、言語を一つでも解する人物に新言語を教える方が容易。
Re: (スコア:0)
>後者のほうが覚えるのも理解するのも圧倒的に速い
そこは疑問だなあ。
教え方が下手な人だと、「最初は何も考えずに書いてください」と言ったりする。
本当になにも考えずに、エラー処理とか異常系とか考えずにコピペする
だけなら初心者でも早かったりするけど、彼等は基本を全く理解してない
から自分の書いたプログラムを自分でデバッグできないことも多い。
経験者の方が遅いのは、そういう部分を気にしての話。
たとえ初めての言語でも、何も考えずには書かない。
一方初心者は、本当に何も考えずに書く。でもそれは本当に早いと言えるのか。
Re: (スコア:0)
コンピューター操作・プログラム操作が出来るだけで随分違うはず。
まあ昔はペーパープログラミング(パンチカード・ワイヤードロジック)なんてのもあったが。
Re: (スコア:0)
プログラミング前の環境構築が一番きついですね
知らん専門用語が並ぶマニュアル
近頃のリッチなIDEに並ぶこのボタン群は何?押して大丈夫?
Re: (スコア:0)
たぶん大丈夫。
バルスと表示されなければ。
Re: (スコア:0)
キーボードの打鍵もろくにできなかった大学時代。
いきなり「慣れれば分かる」とかでプログラミング演習などやっても、結局BASICは身につかなかった。
肩が凝って目が疲れて頭が混乱した状況で、何かが残るはずもなく。
半年前の座学「情報科学」にBASICも出ていたなぁ、そういえば。
と気づいたのははるか後と。
Re: (スコア:0)
Cはともかく、Javaしかやってない人間はそこから一歩も出られない人が多い印象はある。
Re: (スコア:0)
何を言うんですか?
lispだったらよかったですか? Emacs界隈ではCより普及しています.
Re:ずぶの素人よりましなのは確か (スコア:1)
まあ、CとかJavaとかPythonとか手続き型で育った人からしたら、
Prolog よりも Lisp のほうがまだしもついていけるかもしれん。
#それでもかなり苦労したけど。
Re: (スコア:0)
「学生が」ってのが肝だね。自称プログラミングできる学生はずぶの素人だから変わらないw
#まともにプログラミングできるのって学校に一人とかそういうオーダー
Re: (スコア:0)
そこまで希少じゃないと思う。
理系学部だったてのはあるかもしれんけど。
当方1995年工学部卒業のおっさんだが、その当時でも10人以上はいた。
今ならもっと多いはず。
Re: (スコア:0)
情報系学科の96卒だが、
クラスの半分は俺のコピペ、もう半分はもう一人のコピペという惨憺たる状況だったぞ。
在学中に情報処理の資格取ったのも、多分俺だけだったし。
Re: (スコア:0)
情報処理系の学科はレベルが低いのでそんなもんでしょ。
教わるつもりでプログラム書いてる奴らはそんなもん。
他に専門を持っていて自主的にプログラム書いている人間のほうが、圧倒的にプログラミング能力が高いのは当然。
エンジニア採用の時は情報処理系の学科だとマイナス。
Re:ずぶの素人よりましなのは確か (スコア:1)
他に専門を持っていて自主的にプログラム書いている人間のほうが、圧倒的にプログラミング能力が高いのは当然。
エンジニア採用の時は情報処理系の学科だとマイナス。
その理屈だと、結論は、情報処理系学科がプラスになることは無い、くらいでないとおかしいね。
期待よりレベルが低かった、というのはあるんだろうけど、なんか偏見がひど過ぎない?
個人的な感想だけど、レベルの低い大学の情報系学科のレベルが低いのは仕方ない。
そんなところばかり見て情報系学科を云々するのは、違う気がするね。
なんにせよ、好きで自主的に勉強できるものは、自主的に勉強したヤツの方がそうでない奴よりレベルが上、というのは当たり前の話だよね。
教えてもらうだけ、ってヤツより、自主的に学ぶヤツの方がレベルが上、というのも当たり前。
Re: (スコア:0)
まぁ当たり前なんだけどそれが他と比してよくあるってことでしょ
物理が趣味だけど情報工学科に行ったやつに物理学科の人が教わることはまぁない
物理学科行ってるけどプログラムが趣味の人が情報工学科の人の教えることは割とある(言うて3年次ぐらいまでか?)
みたいな話で
Re:ずぶの素人よりましなのは確か (スコア:1)
物理が趣味
そんな人は少ない一方、プログラミングが趣味、と言う人が多い、と言うだけでは無いか?
Re: (スコア:0)
それならやっぱり情報処理系学科は不要じゃん
Re:ずぶの素人よりましなのは確か (スコア:1)
趣味程度の学びで十分、と思うならそうなんじゃない?
SESに出す兵隊が居ればいいんだ、というこであれば、その程度で良いんだろうし。
ただ、趣味で計算機科学を体系的に学ぶのは、それなりに難しいと思うよ。
物理学も同じなんじゃない?
Re: (スコア:0)
「ある言語ができる」という部分よりも、JPEGデコードロジックが書けるとか、ナップサック問題が解けるというほうが重要では。
趣味でこれらを自主的に学ぶ機会は、少ないと思うが。。
そういうの使わないのであれば、短大、専修学校で十分だと思う。
Re: (スコア:0)
大学でプログラミング教えてる大学教員ですが、学生が最初に習った言語の影響は結構有ります。
学生に Python 教えると関数型っぽいが処理速度が遅い書き方で書いてくるのはほぼほぼ初心者で、
プログラミング経験者は命令型なコードを書いてくる率が高いです。
Re:ずぶの素人よりましなのは確か (スコア:1)
初心者がPythonで書く関数型っぽいコード? ってどんなのでしょう?
関数型言語を教えるわけでも無いのに、副作用の無い関数を定義して、それを合成することでコードを書く? それもPythonで? 相当優秀な学生さんたちですね。
Re: (スコア:0)
forおじさん…
Re: (スコア:0)
どんなプログラミング言語でも、ベースとなる共通概念がありますね。
グローバル変数とか、ローカル変数とか、それらのスコープとか
アナログ信号のデジタル化とか、(言語によるが)コンパイルと実行とか、
ループとか、その入れ子構造とか
その辺をいちいち学びなおす必要はないことは
確かに「プログラミング言語を一つ学んだら別の言語も簡単に習得できる」だろう
このへんは自然言語でいえば「単語がある」「名詞がある」とかの基本概念だろう。地球人類ならそれは母国語をマスターしたくらいで理解できている。
でもそこから先は結構言語によって思考概念が違うので、
文法や思考が共通な言語だと敷居は低いが
思考方法が違うと「簡単には習得できない」だろう
C言語で思考していると、「で、この def __init__ っていつ実行されるの?」っていちいち躓く(俺だけかもしれん)
自然言語だと、英語の現在完了形とか、習って数十年でも母国語が日本語だと腑に落ちたとは言えんしな
Re:ずぶの素人よりましなのは確か (スコア:1)
大筋合意。以下揚げ足取りなんだけど。
このへんは自然言語でいえば「単語がある」「名詞がある」とかの基本概念だろう。
日本語の場合、単語って概念は、書き言葉を習った時点ですらはっきりはしてない気がするね。
単語ごとに分かち書きするわけでは無いし。
文の概念を習って、それを文節に分けて、さらにその中を単語に分けることができる、と言うわけだけど、結構難しい。
名詞だけを取り出すのは、比較的簡単だけど、動詞を含む文節から動詞・助動詞・助詞に分けるのは、そう簡単じゃない。
単語の概念は薄いのではなかろうか。
Re: (スコア:0)
本当に背水の陣というか後がなくなると何とかなる(ように見える程度には習得できる)
「できらぁ!」って受けた後納期が迫る状況で担当が大量に飛んだりして会社ごと本気でヤバイ状況になると公式ドキュメント・Qiita・StackOverflowあたりを友達にそれっぽい物ができていた(気がするだけの可能性大)
とある会社で当時ずぶの素人3名がる炎上現場に突っ込まれ1名退職したものの、残った2名は数月で実務経験それなりの中堅と言われても全く疑わないレベルになっていた
本人の素質もあったのだろうけど背水の陣+カンヅメ+残業代青天井の力って凄い