
自然言語に関する適応能力が高いとプログラミング言語も効率よく学習できる? 65
ストーリー by hylom
自然言語を学び始める時期くらいからプログラミングを学び始めるとどうなるのだろう 部門より
自然言語を学び始める時期くらいからプログラミングを学び始めるとどうなるのだろう 部門より
プログラミング言語を習得する能力は自然言語を取得する能力と相関関係があるという研究結果が発表された(Scientific Reports掲載論文)。
この研究では、実験として36人の被験者に対し45分間Pythonのトレーニングを10回受けてもらい、被験者の能力と学習結果との関係について調査を行なった。その結果、学習結果に対しもっとも影響を及ぼす要素は自然言語に関連する能力だったという。また、論理的思考や脳のワーキングメモリ量といった要素によっても学習結果が変わることが分かったが、それらの影響は自然言語に関連する能力が及ぼす影響よりも顕著に低かったという。
ここから、自然言語に対する適応能力はプログラミング言語の学習効率にも影響を及ぼすと考えられるという。
まぁ、確かに人間じゃない方でも…… (スコア:2)
プログラミング言語の構文解析と、コンピュータによる自然言語の解析だと、一部、共通する技術が有るしな
綺麗なコードを書く人の文章は読みやすい (スコア:1)
物事を論理的に整理して文字列化できるかどうか、という点で同じなのかなと思うことはありますね
Re: (スコア:0)
そこは直結はしていないのではと思う。
できる奴はコードを綺麗に書く意義も読みやすい文章を書く意義も理解していて、かつ実践できるのだろう。
でも少なくとも、読みやすい文章が得意でもプログラミングが不慣れで良いコードの知識が足りなければあまり綺麗なコードは書けない。
コード書きが得意でも日本語は苦手な奴もいる気がする。論理は通じてても日本文として読みづらいケース。
# 例えば俺とか、あと俺とか、他にも俺とか…
Re: (スコア:0)
とくに何のソースもなく全パターンを網羅してみただけか。
どんなコード書くか知らんけど日本語はホントにアレだね。
Pythonのトレーニングがポイント (スコア:1)
きっと、その「Pythonのトレーニング」における説明は自然言語で行われていただろうから、自然言語への適応能力が低い人は、そもそもトレーニングで何を説明されているのかついていけてないだけだったりして。
Re:Pythonのトレーニングがポイント (スコア:1)
いわゆる東大AIの成果のアレね
残念ながら現実は冷酷なもので、地頭の善し悪しで理解スピードが数段違いますよね。
その上、プログラム言語は基本的に綺麗なSVOC文法(やその入れ子)なので相乗効果がでます。
#入門くらいでは関係ないけど、日本語の情報がなくて、英語やドイツ語のドキュメントに当たらなきゃいけないこともあるもん。
一般と特殊(雑魚と選ばれしもの)でちがう (スコア:0)
一般には言語能力が高いほうが論理的思考力も高く、プログラミングの学習も早いのは当然。
論理的思考力が高いほうがプログラミングがそこそこうまいというところまでは言えそう。
ハッカーかどうかとなるとまたちょっと違う。
Re: (スコア:0)
言葉に気を遣って使いこなすような人はDRY原則や構造化についても肯定的だろうし、
もともと冴えた人なら何だって小器用にこなすのも想像に難くないですね。
ハッカーの域にさしかかろうとすると言語能力は逆に枷になり始める気がします。
「いちいち伝わるように喋ってられるか」っていうギーク気質がないと
早い・上手い・汚いのハッカースタイルを許容できないかと。
自然言語といっても (スコア:0)
英語系だろ。
俺日本人。
Re: (スコア:0)
空気を読んで忖度するのが日本人だからなあ。
Re: (スコア:0)
いや結局のところ、思考をする時に言語(母国語)を使うので、やりたいことを言語化できないと論理的思考も難しいという話じゃないの?
言語系統はあまり関係ないんじゃないかな。
Re:自然言語といっても (スコア:1)
それには異論があって、私は頭で考えているときに自然言語を使っていないと思うんですよね。
言語化される前のモデルとかイメージがあって、そのモデルの操作を行ってる感じというか。
例えば絵を書くときに、どこにどういう線を引くかを日本語で考えている(と自覚する)人はあまりいないと思いますが、絵以外の思考でも私の場合同様です。
なので、考えている内容を言語化するには、一回変換作業が発生するという自覚があります。
Re: (スコア:0)
それは感覚的にやってるだけで、正しく論理的思考ができていないだけなのでは?
Re: (スコア:0)
論理的と大きく、くくってしまうのはどうかと思うが、抽象化ができない人の思考方法だね。
自然言語でも数式でもいいけど、概念をモデルだとかでイメージするところで思考を止めてしまわず、記号化するという段階へ持ってく癖がついてないと抽象化はできない。
記号化せずに抽象化の真似をしてみても、変なものになってたり、ピントがずれてる。
Re:自然言語といっても (スコア:1)
まさに数式が典型的なのですが、
数式を見てるときには、数式で考えていて、
日本語じゃないんですよね。
同様に、プログラムを書いているときには、
プログラミング言語そのもので思考している、
という感覚です。
むしろ、「ものを考えるときには母国語」という人は、
数学は式を日本語に翻訳して考えて、式に翻訳して書き戻してるんですかね。
Re: (スコア:0)
算盤に馴染んだ人は、仮想算盤で演算するそうですね。
Re: (スコア:0)
対象のプログラミング言語そのもので思考しているの??
いろんなケースあると思うけど、
最初に覚えたプログラミング言語で考えている人多いんじゃない?それがVBだとすれば最悪であると個人的には思う。
VBが下地の人2名しか知らないがその2名とも
C言語の処理なのに
一人は、ほぼポインターを使わないでメモリコピーだった。速度は気にしないらしい。
もう一人は、バイナリデータなのに、文字列操作でFIFOのバッファ処理、文字列処理で0x00がくると困るから0xffに置き換えて処理。速度は気にしないらしい。
Re:自然言語といっても (スコア:1)
> 対象のプログラミング言語そのもので思考しているの??
基本的にはそうなるまで頑張るって感じでしょうか。
なので、新しいプログラミング言語に慣れるまで時間がかかりますね。
こういうときどうする、というのが言語ごとに異なることあるので。
特に、JavaScript は非同期・コールバック・ラムダ式あたりで、
まだつっかえつっかえでしか考えられないです。
Re: (スコア:0)
最初に覚えた言語はHu-BASICだけどそんなことないですよ。
趣味で覚えたのと、勉強や仕事でやむなく覚えたのの違いですかね?
Re: (スコア:0)
確かに、名詞を軸に組み立てる日本語よりも、
英語など、動詞を軸に組み立てる言語の方が、
プログラム言語との親和性が高いと思われます。
Re: (スコア:0)
どちらかというと日本語の方が動詞中心的だと思うけどね。
動詞のみ文「行く」が正しい文として日本語では成立するけど、英語では主語と動詞が必ず必要 "I will go"
形容詞は、日本語では動詞と同じく用言で、動詞と同様に連用形・終止形・連体形などの活用をする(日本語では活用形の形態はかなり動詞と異なっているけれど、これが韓国語になると、形態的にも全くの動詞として活用する)。
一方、(英語ではその姿をほとんど失っているけど)インド・ヨーロッパ語族では、形容詞はほとんど名詞。名詞と同様に数・格変化する。「高い山」は、「高いものであり、かつ、山」という同格。
日本語の動詞句では動詞が最後に来る(ヘッド後置)が、英語の動詞句では動詞が最初に来る(ヘッド前置)ことをもって、「英語の方が動詞が軸」と言っているんですかね。
そういう意味では、世の中のプログラミング言語はたいていヘッド前置的に出来ている(Forth とか、ぴゅう太ベーシックw とかを除く)ので、ヘッド前置言語の話者の方が慣れやすいかもしれません。
十で神童、十五で才子、二十歳過ぎれば只の人 (スコア:0)
論文読んでないけど、「初期の学習においては言語能力との相関が見られる」って話じゃなかったっけ。
あくまでとっかかりにおいて、予約語や文法を丸暗記するくらいは早いけど、
そこで壁にぶつかって行き詰まるかもしれない。
プログラマとして優れてるかは別問題。
Re: 十で神童、十五で才子、二十歳過ぎれば只の人 (スコア:1)
「十で神童、十五で才子、二十歳過ぎればプログラマー」
な人はここにけっこういそう。
社会人として優れてるかは別問題。
うじゃうじゃ
Re: 十で神童、十五で才子、二十歳過ぎれば只の人 (スコア:1)
人とうまく話ができるならコンピューターの言葉なんて覚えないよ。
Re: (スコア:0)
Re: (スコア:0)
……そこはアレゲ人と言って欲しかった。 #叶わぬ夢
機械語という得体のしれないものを理解できた瞬間 (スコア:0)
目からウロコが落ちた瞬間、という感覚を覚えている。
小学生から中学生にかけての頃かな
あれは、自然言語の習得というより、フォン・ノイマン型を感じるということだと思う。
そして、現実の段取りを機械的手続きに落とし込む方法としてのプログラム言語。
そのあと論理回路記述言語のVHDLとかVelilogとかもやってるけど
純粋なソフト畑の人と話してみると、あの同時実行の概念というか、感覚がわからないらしい。
ああ、そこにも壁があるのね、と思ったことよ。
自分は逆に、処理にインタープリタとしてとかの(JITもそう)流れがあると、
そこのブラックボックス的処理が感覚的に気持ち悪かったりする。
まあ、昔のBASICのようなもんだと意識を切り替えて使うしか無いのだけれど。
Re: (スコア:0)
アスキーコード表を見て、これが機械語と密接な関係があるに違いない!と真剣に考えていた大昔の自分。
機械語がわかったと感じた瞬間は、複雑なことを極限まで単純なものに分解するんだと理解した時かもしれない。
Re: (スコア:0)
お前は俺か! そのくらいで小5から始めたがイマイチだった英語に火がつき一気に成績向上して、気づけばマルチ言語のプログラマーですよ。
もともと自然言語の研究から始まった物、だから逆もきっとある。 (スコア:0)
20世紀に入って数学が厳密化していく中で、証明の本質を理解する事が言語の本質を理解する事である事に気づかれ始めて
自然言語研究をしていたノーム・チョムスキーの理論を取り込んで、形式言語のような厳密に定義された言語で証明がされるようになった。
そして、コンピュータで出来ることの研究をしている内にチューリングマシンだのノイマン型コンピュータなどの概念が登場してくるが、数学では証明(厳密に定義された言語)をチューリングマシンで動作するプログラムに変換する事で理解を深めようとしいて、それがそのまま初期のコンピュータ言語の基礎理論になっていった。
そのうち数学の証明のような純粋な研究よりも、事務計算や数値計算などのシミュレーション等の需要が増えて応用研究が盛んになった。
今あるテキストで記述可能なコンピュータ言語は自然言語研究の成果物の一つのようにも見えるんだ。
なので、逆もまたある予感がする、コンピュータ言語に適応能力が高い人間は、自然言語の適応能力が高いと。
Re: (スコア:0)
いまだ存命のチョムスキーを始祖にするところからして時系列が滅茶苦茶ですね
確かに (スコア:0)
正直なところ文系の方がプログラミング強いのよな
Re: (スコア:0)
理系文系の人が吠えそうなもんだけと、
反応がないね、、、
Re: (スコア:0)
理系文系の人が吠えそうなもんだけと、
反応がないね、、、
そういや「下線部の作者の気持ちを読みとり、空白部を埋めよ」なんてく○文系問題とか、実際デバグで必要な能力だよな
文系活躍しろよ
try:
with open loveletter as f:
f.read()
except:
________
Re: (スコア:0)
君のラブレターは読み飛ばされている。例外処理もやん無くて良いよ。
代わりに処理後に涙吹く処理入れとけ。
Re:確かに (スコア:1)
Re: (スコア:0)
catchしても握りつぶされるだけ。
Re: (スコア:0)
例外処理機構という受け皿を常用するのはイマイチ。
そもそもそんな機構が出番を持たないように考慮してコードを書くべき。
当然予想される事態で例外機構使う他に手段がないならそれは
その処理系設計者の怠慢ですな
Re: (スコア:0)
このスレッドに限っては「自然言語に関する適応能力が高いとプログラミング言語も効率よく学習できる」と思いましたw
Re: (スコア:0)
try:
with open loveletter as f:
f.read()
except:
//ここではなにもしない
Re: (スコア:0)
pythonのコメントは"//"ではなく"#"だし、
何もしない場合でもpassと書かないといけないよ?
そもそも、Javaじゃないんだからチェック例外はないし、
わざわざtry云々を書く必要すらない
Re: (スコア:0)
それ、デッドコードとか、仕様書と動作が真逆な部品の前でも同じこと言える?
# く〇コードなんて投げ捨てるしかなく、気持ちを汲み取る時間すら惜しい
Re: (スコア:0)
反応しようかと思ったんだけど、人月IT土方系プログラマーに
文系の方がすすんでなるんならむしろ助かるかなと。
Re: (スコア:0)
人月IT土方系プログラマーにしかなれない、理系プログラマーwww
そんな人材が不要となるようにすることができない理系マネージャーwww
Re: (スコア:0)
大変だな。理系に囲まれて日々場違いな思いをしてるんでしょう。
所詮理系分野なので別ジャンルに転職したほうがいいと思います。
コロナショックでタイミング悪いのがまたアレですが、このままだとどうしようもないですよ。
Re: (スコア:0)
プログラマのうち、全体として能力が最も低いのは情報処理系の学部の出身者で間違いない。
Re: (スコア:0)
違いない。そもそも動機がマズいのよ。
これから食いっぱぐれなさそうな職業としてゼロから覚えようって選択してるもんね。
片やデキる人はすでに他の専門の傍ら独学でバリバリやってる。好きか得意かのどちらかを持っている。
#国際的にあれこれやりたくて外国語専門にしたが、医学農学土木分野のほうが国際貢献度が高く挫折感を味わったので言っておく。
Re: (スコア:0)
ソースは?
Re:確かに (スコア:1)
gitで管理してますがなにか。
具象と抽象 (スコア:0)
直接関係ないが、これを思いだした。
https://takehikom.hateblo.jp/entry/20090728/1248729575 [hateblo.jp]