パスワードを忘れた? アカウント作成
14138213 story
プログラミング

自然言語に関する適応能力が高いとプログラミング言語も効率よく学習できる? 65

ストーリー by hylom
自然言語を学び始める時期くらいからプログラミングを学び始めるとどうなるのだろう 部門より

プログラミング言語を習得する能力は自然言語を取得する能力と相関関係があるという研究結果が発表された(Scientific Reports掲載論文)。

この研究では、実験として36人の被験者に対し45分間Pythonのトレーニングを10回受けてもらい、被験者の能力と学習結果との関係について調査を行なった。その結果、学習結果に対しもっとも影響を及ぼす要素は自然言語に関連する能力だったという。また、論理的思考や脳のワーキングメモリ量といった要素によっても学習結果が変わることが分かったが、それらの影響は自然言語に関連する能力が及ぼす影響よりも顕著に低かったという。

ここから、自然言語に対する適応能力はプログラミング言語の学習効率にも影響を及ぼすと考えられるという。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • プログラミング言語の構文解析と、コンピュータによる自然言語の解析だと、一部、共通する技術が有るしな

  • by Anonymous Coward on 2020年03月18日 12時47分 (#3781292)

    物事を論理的に整理して文字列化できるかどうか、という点で同じなのかなと思うことはありますね

    • by Anonymous Coward

      そこは直結はしていないのではと思う。
      できる奴はコードを綺麗に書く意義も読みやすい文章を書く意義も理解していて、かつ実践できるのだろう。
      でも少なくとも、読みやすい文章が得意でもプログラミングが不慣れで良いコードの知識が足りなければあまり綺麗なコードは書けない。
      コード書きが得意でも日本語は苦手な奴もいる気がする。論理は通じてても日本文として読みづらいケース。

      # 例えば俺とか、あと俺とか、他にも俺とか…

      • by Anonymous Coward

        とくに何のソースもなく全パターンを網羅してみただけか。
        どんなコード書くか知らんけど日本語はホントにアレだね。

  • きっと、その「Pythonのトレーニング」における説明は自然言語で行われていただろうから、自然言語への適応能力が低い人は、そもそもトレーニングで何を説明されているのかついていけてないだけだったりして。

    • by Anonymous Coward on 2020年03月18日 21時10分 (#3781653)

      いわゆる東大AIの成果のアレね
      残念ながら現実は冷酷なもので、地頭の善し悪しで理解スピードが数段違いますよね。
      その上、プログラム言語は基本的に綺麗なSVOC文法(やその入れ子)なので相乗効果がでます。

      #入門くらいでは関係ないけど、日本語の情報がなくて、英語やドイツ語のドキュメントに当たらなきゃいけないこともあるもん。

      親コメント
  • by Anonymous Coward on 2020年03月18日 12時54分 (#3781296)

    一般には言語能力が高いほうが論理的思考力も高く、プログラミングの学習も早いのは当然。
    論理的思考力が高いほうがプログラミングがそこそこうまいというところまでは言えそう。
    ハッカーかどうかとなるとまたちょっと違う。

    • by Anonymous Coward

      言葉に気を遣って使いこなすような人はDRY原則や構造化についても肯定的だろうし、
      もともと冴えた人なら何だって小器用にこなすのも想像に難くないですね。

      ハッカーの域にさしかかろうとすると言語能力は逆に枷になり始める気がします。
      「いちいち伝わるように喋ってられるか」っていうギーク気質がないと
      早い・上手い・汚いのハッカースタイルを許容できないかと。

  • by Anonymous Coward on 2020年03月18日 12時54分 (#3781298)

    英語系だろ。
    俺日本人。

    • by Anonymous Coward

      空気を読んで忖度するのが日本人だからなあ。

    • by Anonymous Coward

      いや結局のところ、思考をする時に言語(母国語)を使うので、やりたいことを言語化できないと論理的思考も難しいという話じゃないの?
      言語系統はあまり関係ないんじゃないかな。

      • by nim (10479) on 2020年03月18日 14時10分 (#3781355)

        それには異論があって、私は頭で考えているときに自然言語を使っていないと思うんですよね。
        言語化される前のモデルとかイメージがあって、そのモデルの操作を行ってる感じというか。

        例えば絵を書くときに、どこにどういう線を引くかを日本語で考えている(と自覚する)人はあまりいないと思いますが、絵以外の思考でも私の場合同様です。

        なので、考えている内容を言語化するには、一回変換作業が発生するという自覚があります。

        親コメント
        • by Anonymous Coward

          それは感覚的にやってるだけで、正しく論理的思考ができていないだけなのでは?

    • by Anonymous Coward

      確かに、名詞を軸に組み立てる日本語よりも、
      英語など、動詞を軸に組み立てる言語の方が、
      プログラム言語との親和性が高いと思われます。

      • by Anonymous Coward

        どちらかというと日本語の方が動詞中心的だと思うけどね。

        動詞のみ文「行く」が正しい文として日本語では成立するけど、英語では主語と動詞が必ず必要 "I will go"

        形容詞は、日本語では動詞と同じく用言で、動詞と同様に連用形・終止形・連体形などの活用をする(日本語では活用形の形態はかなり動詞と異なっているけれど、これが韓国語になると、形態的にも全くの動詞として活用する)。
        一方、(英語ではその姿をほとんど失っているけど)インド・ヨーロッパ語族では、形容詞はほとんど名詞。名詞と同様に数・格変化する。「高い山」は、「高いものであり、かつ、山」という同格。

        日本語の動詞句では動詞が最後に来る(ヘッド後置)が、英語の動詞句では動詞が最初に来る(ヘッド前置)ことをもって、「英語の方が動詞が軸」と言っているんですかね。
        そういう意味では、世の中のプログラミング言語はたいていヘッド前置的に出来ている(Forth とか、ぴゅう太ベーシックw とかを除く)ので、ヘッド前置言語の話者の方が慣れやすいかもしれません。

  • by Anonymous Coward on 2020年03月18日 13時05分 (#3781305)

    論文読んでないけど、「初期の学習においては言語能力との相関が見られる」って話じゃなかったっけ。

    あくまでとっかかりにおいて、予約語や文法を丸暗記するくらいは早いけど、
    そこで壁にぶつかって行き詰まるかもしれない。

    プログラマとして優れてるかは別問題。

  • by Anonymous Coward on 2020年03月18日 13時22分 (#3781325)

    目からウロコが落ちた瞬間、という感覚を覚えている。
    小学生から中学生にかけての頃かな
    あれは、自然言語の習得というより、フォン・ノイマン型を感じるということだと思う。
    そして、現実の段取りを機械的手続きに落とし込む方法としてのプログラム言語。
    そのあと論理回路記述言語のVHDLとかVelilogとかもやってるけど
    純粋なソフト畑の人と話してみると、あの同時実行の概念というか、感覚がわからないらしい。
    ああ、そこにも壁があるのね、と思ったことよ。
    自分は逆に、処理にインタープリタとしてとかの(JITもそう)流れがあると、
    そこのブラックボックス的処理が感覚的に気持ち悪かったりする。
    まあ、昔のBASICのようなもんだと意識を切り替えて使うしか無いのだけれど。

    • by Anonymous Coward

      アスキーコード表を見て、これが機械語と密接な関係があるに違いない!と真剣に考えていた大昔の自分。
      機械語がわかったと感じた瞬間は、複雑なことを極限まで単純なものに分解するんだと理解した時かもしれない。

    • by Anonymous Coward

      お前は俺か! そのくらいで小5から始めたがイマイチだった英語に火がつき一気に成績向上して、気づけばマルチ言語のプログラマーですよ。

  • 20世紀に入って数学が厳密化していく中で、証明の本質を理解する事が言語の本質を理解する事である事に気づかれ始めて
    自然言語研究をしていたノーム・チョムスキーの理論を取り込んで、形式言語のような厳密に定義された言語で証明がされるようになった。
    そして、コンピュータで出来ることの研究をしている内にチューリングマシンだのノイマン型コンピュータなどの概念が登場してくるが、数学では証明(厳密に定義された言語)をチューリングマシンで動作するプログラムに変換する事で理解を深めようとしいて、それがそのまま初期のコンピュータ言語の基礎理論になっていった。
    そのうち数学の証明のような純粋な研究よりも、事務計算や数値計算などのシミュレーション等の需要が増えて応用研究が盛んになった。
    今あるテキストで記述可能なコンピュータ言語は自然言語研究の成果物の一つのようにも見えるんだ。
    なので、逆もまたある予感がする、コンピュータ言語に適応能力が高い人間は、自然言語の適応能力が高いと。

    • by Anonymous Coward

      いまだ存命のチョムスキーを始祖にするところからして時系列が滅茶苦茶ですね

  • by Anonymous Coward on 2020年03月18日 14時55分 (#3781388)

    正直なところ文系の方がプログラミング強いのよな

    • by Anonymous Coward

      理系文系の人が吠えそうなもんだけと、
      反応がないね、、、

      • by Anonymous Coward

        理系文系の人が吠えそうなもんだけと、
        反応がないね、、、

        そういや「下線部の作者の気持ちを読みとり、空白部を埋めよ」なんてく○文系問題とか、実際デバグで必要な能力だよな
        文系活躍しろよ

        try:
                    with open loveletter as f:
                                  f.read()

        except:
                    ________

        • by Anonymous Coward

          君のラブレターは読み飛ばされている。例外処理もやん無くて良いよ。
          代わりに処理後に涙吹く処理入れとけ。

          • by nekopon (1483) on 2020年03月18日 17時19分 (#3781511) 日記
            いや例外処理は必要だろthrowされるんだから
            親コメント
            • by Anonymous Coward

              catchしても握りつぶされるだけ。

            • by Anonymous Coward

              例外処理機構という受け皿を常用するのはイマイチ。
              そもそもそんな機構が出番を持たないように考慮してコードを書くべき。
              当然予想される事態で例外機構使う他に手段がないならそれは
              その処理系設計者の怠慢ですな

          • by Anonymous Coward

            このスレッドに限っては「自然言語に関する適応能力が高いとプログラミング言語も効率よく学習できる」と思いましたw

        • by Anonymous Coward

          try:
                                  with open loveletter as f:
                                                              f.read()

          except:
                                  //ここではなにもしない
                             

          • by Anonymous Coward

            pythonのコメントは"//"ではなく"#"だし、
            何もしない場合でもpassと書かないといけないよ?

            そもそも、Javaじゃないんだからチェック例外はないし、
            わざわざtry云々を書く必要すらない

        • by Anonymous Coward

          それ、デッドコードとか、仕様書と動作が真逆な部品の前でも同じこと言える?
          # く〇コードなんて投げ捨てるしかなく、気持ちを汲み取る時間すら惜しい

      • by Anonymous Coward

        反応しようかと思ったんだけど、人月IT土方系プログラマーに
        文系の方がすすんでなるんならむしろ助かるかなと。

        • by Anonymous Coward

          人月IT土方系プログラマーにしかなれない、理系プログラマーwww
          そんな人材が不要となるようにすることができない理系マネージャーwww

          • by Anonymous Coward

            大変だな。理系に囲まれて日々場違いな思いをしてるんでしょう。
            所詮理系分野なので別ジャンルに転職したほうがいいと思います。
            コロナショックでタイミング悪いのがまたアレですが、このままだとどうしようもないですよ。

    • by Anonymous Coward

      プログラマのうち、全体として能力が最も低いのは情報処理系の学部の出身者で間違いない。

      • by Anonymous Coward

        違いない。そもそも動機がマズいのよ。
        これから食いっぱぐれなさそうな職業としてゼロから覚えようって選択してるもんね。
        片やデキる人はすでに他の専門の傍ら独学でバリバリやってる。好きか得意かのどちらかを持っている。

        #国際的にあれこれやりたくて外国語専門にしたが、医学農学土木分野のほうが国際貢献度が高く挫折感を味わったので言っておく。

    • by Anonymous Coward

      ソースは?

  • by Anonymous Coward on 2020年03月18日 15時56分 (#3781441)

    直接関係ないが、これを思いだした。

    https://takehikom.hateblo.jp/entry/20090728/1248729575 [hateblo.jp]

typodupeerror

日本発のオープンソースソフトウェアは42件 -- ある官僚

読み込み中...