【IT】能力の高いプログラマーほど数学力より言語能力が高いという研究結果
■ このスレッドは過去ログ倉庫に格納されています
→プログラミングに必要な素質は数学力よりも言語能力という研究結果 →プログラミングの学習は第2外国語の学習と同じ脳の場所を使う プログラミングに馴染みのない人にとって、プログラム言語は非常に厄介に感じるものです。 特にこれまでの通説では「プログラミングは数学力に通じる」とされており、文系出身者にとっては、より一層の苦手意識を感じさせる要素になっていました。 しかし今回、アメリカの研究者らによって行われた研究によって、プログラム言語の学習効率は主として言語能力に依存していることがわかりました。 数学の専門知識や計算能力の介在する余地は想像より遥かに少なかったのです。 小説や詩の文面にキラリと光るセンスを感じ取る能力がある人は、プログラマー適性があるかもしれません。 しかし研究者たちは、どのようにプログラミング適性と言語能力の相関関係をみつけだしたのでしょうか? 研究内容はシアトルにあるワシントン大学のシャンテルS.プラット氏らによってまとめられ、3月2日に学術雑誌「nature」に掲載されました。 Relating Natural Language Aptitude to Individual Differences in Learning Programming Languages Chantel S. Prat, Tara M. Madhyastha, Malayka J. Mottar https://www.nature.com/articles/s41598-020-60661-8 ■言語能力とプログラミング学習効率は相関関係にあった 実験に先立って、研究者たちは「プログラミングは第2の言語である」という仮説をたてました。 https://i1.wp.com/nazology.net/wp-content/uploads/2020/03/171214aef4eaa3824a076c20ed7cf89e.png そしてまず36人のプログラミング初心者を集め、彼らの言語能力、計算能力、推論能力、作業メモリ(短期記憶)などを測定しました。 次に彼らに45分間の「Python」と呼ばれるプログラム言語の講義を10回受けてもらいました。 Pythonは機械学習需要の高まりとともに、現在利用者が増えているプログラム言語です。 プログラミングの講義が終わった後は、各個人に対してどれほどプログラミングが身についているかのテストが行われました。 結果、プログラミング言語の成績と最も強い相関関係があったのは、意外にも言語能力でした。 その影響は圧倒的で、プログラミングの学習速度における個人差の70%以上を決める要因になっていました。 一方、計算能力、推論能力も残りの30%の範囲で、プログラミングの学習効率に関連してはいましたが、俗説とは異なり、言語能力にくらべて少ない相関にありました。 ただプログラムの正確性に関しては、言語能力よりも認識能力(推論、短期記憶)のほうが重要という結果が出ています。 続きはソースで https://nazology.net/archives/53469 >>203 設計者に言語能力が必要なことは分かるが、 それはあくまで他人に設計書を知らせる場合。 今までにない新しい手法(アルゴリズム)を生み出すのに 必ずしも言語能力が必要と限らない。 なぜなら、その設計書を自分でプログラムすればよい。 他の人はそのプログラムを解析して新しい手法を習得すればよい。 ぜんぜんわからない 俺たちは雰囲気でプログラム書いている >>205 仕事で?それとも趣味で? 仕事の場合、それが管理者もしくは発注先の考え方と違う場合はどうしますか? >>201 > 製品を良く知っていて文章のまとめ方がうまく速い仲間がいると、 > 美味い安いの牛丼みたいなマニュアルが内製できるんだよ それ内製だから出金が見えてないだけで腕利きが本来稼ぐはずの金が無駄になってる アジアから世界的なIT企業が出てこない訳だ アジア人は白人と比べて、言語能力が苦手・数学が得意 >>207 いや、入社5年程度の要員を想定してるんだが >>198 で、腕利きを割きたくないって書いてる そもそも「言語能力」ってどういう基準で判定するんだ? 数学的能力は比較的わかりやすいけど、言語能力は意味がハッキリと しないんだよ。 ガウスとかハミルトンなどの天才的数学者は若いころからギリシャ語や ラテン語などの言語でも著しい習得能力があって外国語を10ヶ国語 以上も操ることができた。こういう能力はもちろん数学の習得にも 力を発揮する。 一部小説家のような母国語のみの言語能力は、はたしてプログラミング能力に つながるんだろうか?? 当たり前でしょ。数学的な知識なんかほとんど不要だし、わかりやすく簡潔なコードというのは同様の文書と同じ。そもそも数学は数学用の記法があるじゃない >>211 まーーーたく関係ないな 奴ら日本会議美しい言語wとかを丸暗記しているだけで 論理学のかけらもありません ただ丸暗記しているだけw >>188 そうそう それがわからん研究者もひどいし この板曲がりなりにも科学に興味あるやつが集まってんのに この指摘が異様に少ないのもひでえよな >>215 であれば語るべき内容でないということだわな >>211 SATはverbal とMath 800点ずつだろ 文系・理系、言語能力・数学力。 そんなの関係無い。SかMだ。 プログラミングはコンピュータへの命令を組み立てること。 命令はSが向いている。 Mはブラックバイトでもやってろ。 ところで問題になるのはオブジェクト指向だな >>1 で小説に例えているけど、オブジェクト指向だとオブジェクトの挙動について 確かに小説の筋書きを作るような能力も一応は必要とされる オブジェクトにこんな変数(別名:フィールド)や関数(別名:メソッド)もあると 便利だな〜とか考えながらクラスを設計して、これダブってるからやっぱり要らないなんて 事もあったり 更にUMLなんて懐かしい概念もあるが、w 配置図、ユースケース図、アクティビティ図、クラス図、パッケージ図、 シーケンス図、コラボレーション図、コンポーネント図など でもこういうのを設計する作業を 理系が完全に握る としたら、既得権益を持つ、しかしシステム開発のディテールは知らん 上流工程の人には不都合なんだよな だから、ユースケースぐらいならともかく、コラボレーションやシーケンスあたりに どんどん首を突っ込む それが既存の上手く行っているシステムを継承するならいいのだが、 既存のシステムである点で不便なものをそのまま引き摺ったりするわけだ >>210 そんな奴がいないから腕利きが取られてるんだろ センター地理の能力と関係あると思うけどな。理系だと、社会は地理を選択することが多い。他の科目に比べ、暗記事項が少ないから。文系だけど、ちょっと理系っぽい雰囲気。地理とプログラミングの能力は似てると思うけどね >>219 オブジェクト指向くらいは頭の中で整理して プログラミングできるくらいの頭が無い人は 向いていないと思ってい良い。 設計書にそんなものは書かないよ。 そら研究手法の1つとしてプログラミングする理数系は少ないだろうしなぁ プログラミング自体単純な構文規則さえ把握すりゃ誰でも書けるし英語勉強するのと変わらん 情報系を主体にする人は基本文系だよ >>223 そもそも「能力の高いプログラマー」が曖昧過ぎてな >>224 そのせいで数学力の不足を背景とした間違った仕事をしてるやつが激烈に多いよな 理系文系どっちもそこそこ出来て好きな方を選んでるなら問題ないけど 数学物理が苦手→文系的な選び方してるやつが理系文系両方にとっても問題なんだろう まぁ数学力=理系、言語能力=文系ではないしな 数学ができればより高度なことができるというだけで、論理性が一番重要。 工学の方が重要だよ。 工学のことが分かっていなければ設計できないよ。 設計のできないプログラマーの地位は低い >>218 > プログラミングはコンピュータへの命令を組み立てること。 という認識の人はプログラム下手。 プログラミングってのは、仮想機械を書き下すことだからなあ 一番大事なのは、抽象化能力と概念形成力 >>233 しかもそれを何で書き下すかといえば数値の移動なわけだからな その点でいっても数学と最も密接 >>222 データベースおよびそれから取り出したものを入れるクラスメンバの 設計をミスって 納入やり直しになってる例を目の当たりにした 2019/12/20 【教育】『AI vs.教科書が読めない子どもたち』が示す、「読解力が低い人」は「認知できる世界の解像度が低い」 https://egg.5ch.net/test/read.cgi/bizplus/1576833645/ 数値扱うから数学と密接? 算数で知識が止まってるのか?w 現実の問題を解決するためには、その問題とその背後にあるいろいろな事情について 知識があって対象について詳しくなければ、良いプログラムなどかけないのが普通。 講義でやった内容が身についてるだけでプログラミングは身についてない 作業頼んだらサンプルが無いと出来ないって言いだすタイプ 電機メーカー、機械メーカー、自動車メーカーの商品に 組み込まれるプログラムを作る時それぞれの専門的な工学の知識が 最も必要。 研究や設計する技術者よりプログラマーは格下だと言われているのに、 なぜプログラマーの事だけを議論するのかな? >>237 別にとまってないぞ ちなみになんで草をはやしたかを書くことできる? まあ数学では数値扱わず記号で書くとかの俺のレスに対する極めて浅い誤解による 糞みてえなイキリだろうからまともなことは書かんだろうけど >>243 何が間違ってんの? ここはホントのこと言ったら批判される場所なの? 言語能力も数学力も低い文系沢山いるじゃん まぁどちらも低い理系もいるけどもw >>245 書いてるんだよ… お前文書読む能力に致命的な欠陥があると考えたほうがいい ここまでの短文連続して読めないって知的障害の疑いが濃厚 >>247 はい逃げた 脳内で書かれてもそりゃわからんよw >>248 脳内で書いてないんだよ すでに上に書いてあるんだよ それすら読めないのに追加で文章書いても お前はどうせ読めないわな お前が最低限の文章を読む能力があることを示さなければ何も進まなくなってしまっている >>249 はいはい、上で書いてあると言うならレス番示して引用してみ まあ書けないから言い訳か罵倒しかできないだろうけどな 俺のソースは見やすいと言われるけど、数学・言語ともに能力が低いから見やすく書かないと後で自分が困るってだけ 半年後の自分は他人w ヤバそうなプログラムにはコメント一杯書くしかない >>234 処理の対象は数値じゃないよ。メモリ上のパターンだよ。 それを数値として読むことができるってだけ。 マルチリンガル マルチ言語 第20言語野ってどこかな >>253 いやソフトは数値をいじってるんだよ その時の実装がメモリ上の電位で表現されてるだけ >>1 数学のテーマは言語で成り立ってるんですが、、、 こんなん、わからん奴の嫉妬的な発言 >>196 ほんこれ アルゴリズムを使いこなすためには数学が絶対必要 >>193 線形計画法で数学的に凹の部分の判定どういう関数を組み合わせたらいいのか、 近似解の誤差のオーダーを系の応答関数がわからない時にどう評価するかとか、高次元空間での斜影成分にルベーグ積分積分が使えるか、 ラテン格子法でカバーできる範囲が問題の規模のオーダーに対しどういう依存性があるのかとか。 要するに馬鹿が馬鹿基準の採点作ってホンモノを追い出しに掛かってるんだろ そうすると馬鹿で埋め尽くされる >>261 ホンモノは黙ってっても頭角を現すよ。 でも外注だと使い勝手の良いメンバーでしかない。 手柄は管理者の物。 数学は数学能力が低い奴が学習してもあっという間に忘れるから意味がない 大学の研究室だと数学的あるいは論理的なアルゴリズムを思い付けるかが重要かな でも、もちろん既存のライブラリをすぐ見つけ出して上手に使いこなすのも大事か だが民間のソフトウェア会社だと、むしろデータベースや画面やブラウザ上のフォーム、 あるいは通信機器との入出力を上手くできるかどうかが大事になるな そしてアルゴリズムをひねり出すのがプログラミングの本質だと思っている人が ソフトウェア会社に来ると、今日はこのデータベースのこのカラムの値とこのカラムの値を条件によって 繋ぎ方を変えて、こちらに出力してくれ、とか あるいは顧客が入力した値をこのAPIを通して金融口座にアクセスしてくれ、とか そしてその仕様をちょっとの説明ですぐ理解して、それに沿ったプログラムを作れるかとか そんな環境だと、他人の作ったものを理解するのに時間が掛かったりしてうまく使えない、という事も起きてしまう 中の作業だけなら簡単なんだが、他モジュールと接続している入出力の形式が分からん!って事にもなる まあ数回やってみて慣れたらあとはコピペでどんどんやってしまえる訳だがw 数学的には可算集合、自然数と同型 アルゴリズムは自然数上の非数学的なメタ表現 大方の日本の会社のソフトウェア仕事というのは、大学の情報科学のような 科学でもなんでもなくて、単なる土方作業。創造性は低い。創造性が入れられる ところがあるとすれば、仕様を策定するところだけれども、たいていは既存の ものやよそのものをパクってちょっとだけ「改良」を入れたり便利そうな機能を 追加するようなことだろう。 デバッグで他者のソースを弄る時はなんかデータから法則性や規則性を読み解くとこがIQテストっぽさを感じた >>1 分かる気がする 数学以外も色々得意な感じだ 自然言語のほうが人工言語(数学も)よりはるかに複雑だから それを身につけている脳というのは数学脳よりも優秀なはず。 理系脳よりも文系脳が人工知能時代に生き残る。 能力の高いホステスやホストほど言語能力が高く、計算高いという結果はないのか? まあ間違いなく言語能力は高いと思う 計算高いはよくわからんけど少なくともそれを悟られるようなヘマはしない 高度なライブラリAPI依存型、コピペしない、コピペする元が存在しない プログラムの領域では数学力だけが重要になる。 アプリケーションに提供されるライブラリ依存は、それを読み解く言語能力こそ重要になる。 アルゴリズムを考えたことすらないプログラマの時代だから当然だろう 変数の名前付けには私のクリエイター能力が遺憾なく発揮された Get2ndNode2Hock とか ReplaceMatrixTreeWithMaxTensor とかな 語学の学習に一定の年齢による閾値があるといわれるように (つまり,ある年齢をすぎると脳の可塑性が劣化するのだろうか? 語学とか音楽の練習をしても効果が出なくなる限界がある。 多分思春期のホルモンが出た後ではなかろうか) プログラミングも、若年のうちにやらないと熟達しないなどといわれる。 しかし、プログラミングは英語やフランス語やドイツ語やロシア語や イタリア語や中国語やアラビヤ語やスワヒリ語などのように、ずっと永続的 な価値を有しないのが普通である。つまり10年たったら若い時に覚えた 機械語とかプログラミング言語(コンパイラ言語、スクリプト系言語)などは 廃れていたり、需要が無くなっている公算が高い。それだけ技術の陳腐化が 激しい。プログラミングは抽象度が高いために、現実に制約されにくい面が あるために表記上の表現をどうにでも変えることが可能なことと、限後を サポートする企業や団体などの都合によって維持が切り捨てられたりなど あるので、その運命は定かでは無い。流行り廃りが激しすぎる。 だから、平均的には特定の機械語や言語プログラムの教育をしても, むしろ有害で、もっと他のことを学んだ方が良い可能性は高い。 >>276 >プログラミングも、若年のうちにやらないと熟達しないなどといわれる。 年を取ってからだと、ゆっくりしか覚えられなくなるね >つまり10年たったら若い時に覚えた 機械語とかプログラミング言語(コンパイラ言語、スクリプト系言語)などは 廃れていたり、需要が無くなっている公算が高い。それだけ技術の陳腐化が 激しい。プログラミングは抽象度が高いために、現実に制約されにくい面が あるために表記上の表現をどうにでも変えることが可能なことと、限後を サポートする企業や団体などの都合によって維持が切り捨てられたりなど あるので、その運命は定かでは無い。流行り廃りが激しすぎる。 ある程度の流れとロジックはまあ、3〜5程度の言語で組めるようになっておこう その中で ・文字出力 ・変数代入 ・文字列扱い(Cだとこれが後ろの方に来るがw) ・繰り返し文と条件文 ・配列扱い ・多重配列や他のデータ型の扱い(ここで参照が絡んでくるものがある) ・関数 ・構造体とかレコード型とか言われるもの ・クラスとオブジェクト指向 ・ファイル入出力 ・システムの制御と入出力 などについて、この言語だとどうやって書いてるかな〜と一通り一応チェックして、 この言語だとこの辺が書き馴れないんだよなあ、と分かったら とりあえずその辺はノートにでもメモしておくか、リファレンスブックを持っておくとかして プログラム作成に臨むことになる でも現場によっては、100%暗記していないとダメなところももちろんある 能力じゃなくて学習速度のことしか言ってへんやん、言語を学習した先の応用が重要なのに 能力の高いプログラマ-の定義がはっきりしないでは議論のたてようがない。 行数をバリバリと一日に数千〜数万行でも、 まるで日常言語の文章を書くように書いていける才能 (コーディング能力)もあれば、 普通のプログラマーには解決法が容易には編み出せない問題でも、 解法を編み出してしまう能力。しかしコーディングをさせたら 一日に数十行〜数百行程度しかかけないというのもあるだろう。 また同じ問題に対する解決法として、コーディング量自体は少ないが 考え抜いて非常にエレガントな短いコードの量で解決をするという 能力もあるだろう。 ただし、個人単位で有能でも組織としての有用性はまた別である。 あるプログラマーの書いたプログラムは正しくて非常に短く 書かれているが,それを他の人間はなぜそれで正しいのか理解 できなかったり、要求があって変更を入れたり拡張をしたくても 手を入れられないとしたらどうだろうか。ドキュメントが 伴わなければそうなりがちだし、高度な技術が背後にある場合は 表面上コードの逐一の行の説明しているドキュメントがあったとしても 全体としてなぜそれで正しいのかわからないということは考えられる。 知能のレベルが不揃いだと、組織としては大多数の低レベルの者にあわせる他ない。 そうして、神のような知性を持ったプログラマは疎外されて、放浪の旅に出る。 >>280 それって神とかそういうエベルじゃなくて極めて低いレベルのはなしだよな プロじゃない人間がプロとして存在してしまっている組織構成力の低さを 個人のせいにしとるだけ >>280 これだけ状況を明快に説明できるのはすごいな きっと言語能力が高い人なんだなw >普通のプログラマーには解決法が容易には編み出せない問題でも、 普通とはWebアプリというジャンルに限定。 >行数をバリバリと一日に数千〜数万行でも、 >まるで日常言語の文章を書くように書いていける才能 書いている=コピペしている。 1文字単位でタイプしているわけじゃないのが多すぎる。 >あるプログラマーの書いたプログラムは正しくて非常に短く書かれているが, 短く書くのは合理的、最適化だ、この単細胞は合理化の致命的な問題をまったく理解できていない。 一見無駄に見えるそれが、その時点で意味をもたなくても今後意味を持ち出すという 原理すらしらないようだ。神(世界)が人間や生命を完璧に作らなく多様性という無駄を 大量にいれた非最適化の非合理性として生み出した理屈が理解できていない短絡思考といえる。 >・文字出力 ・変数代入 ・文字列扱い(Cだとこれが後ろの方に来るがw) >・繰り返し文と条件文 ・配列扱い ・多重配列や他のデータ型の扱い(ここで参照が絡んでくるものがある) >・関数 ・構造体とかレコード型とか言われるもの ・クラスとオブジェクト指向 ・ファイル入出力 ・システムの制御と入出力 当たり前のようにあるこれらを全て否定するような原理について、そういう言語の登場はこの平常性バイアスで それ以外は無いという思考は変化にはついてゆけないということになる。 >>285 >そういう言語の登場はこの平常性バイアスで それ以外は無いという思考は変化にはついてゆけないということになる。 動的型付けは慣れるまできつかったw それまで動いてたのがいきなり代入できないってエラーが出たり ブロック内のmyとかも慣れるまで大変だった 言語能力が必要な部分は具体性であり、数学能力が必要なのは抽象性である。 明白すぎること、 つまり底辺作業の土方には言語能力が重要になり、高度な設計や企画や構造決定という 意思をなす抽象的なそれは数学的能力であるということ。 自分が底辺であるからこそそれを評価されないから妬みをもつ、不満をもつ。 最後には老害とか言い出す、ITプログラマーなど自立すればいいだけで 老害とかいう上司をもっている時点で自分の無能さを説明しているだけである。 言語能力は戦術 数学能力は戦略 まあ、言語能力高いやつは単細胞なので、戦術の強いものが戦略だと信じている。 たとえば核兵器を戦略兵器と呼ぶけど、あれは心理戦の戦略であって 物理破壊だけであれば戦術兵器なのよ、この区別すらできない知能が高いっていえるの? ぶっちゃけ話、英語読めないと仕様すらチンプンカンプンな言語しかねーからなー。 仕様があるのを前提にしている技術者は下の下、 それが無いのを何とかできるのが高い問題解決能力の人ってことな。 >>291 下の下の上はそんなに上級扱いになるんか 僕から見たらそんなの至って当たり前にできることだと思うがね 言語習得の速度だろ? そりゃ言語能力が高い方が有利だろ 初期時点で数的処理や推論が必要になる要素なんて無いし >>2 プログラミングに数学能力が必要なのは 天文学の計算、フーリエ変換、給与計算、予算決算の計算などで FOTRAN、Python,C言語、JAVAスクリプト、HTMLなど プログラミング言語習得にはプログラマーの母国語とプログラミング言語への 翻訳能力の優劣が関係するのは明らかだ。 アプリケーションを開発するにはシステムエンジニアがソフト開発を依頼するカスタマーからの 要求仕様を聞き取りどういう風にすればコンピューターで目的を実現できるか 翻訳してシステム設計書、プログラム設計書を書くという手順を踏まなければ逝けない。 >>295 の続き コンピューターシステムやプログラムが完成したら 検査仕様書を作ってエンドユーザーの目的が達成されているか チェック項目を列挙してエンド・ユーザーの目的通り 設計通りにプログラムが動作しているかまともなデータ、異常データなどの混じった テストデータを作って例外処理もちゃんと出来ているかテストをする。 これにはプログラムの条件分岐分岐に於いて Decision Tableを作っておくことが重要。 こういうのは数値計算ではなく論理学、ブール関数の領域となる。 >>268 プログラム仕様書など文書化された設計書があれば ああでもない、こうでもないと悩む手間を省けるのだ。 >>274 工作機械や信号処理(交通信号機じゃないぞ)などは 数学がどうこうじゃない。 機械の出力信号をコンピューターが受け取ってそれを判断して 機械が次にどういう処理をスべきか判断して司令をINPUTしてやる。 それもリアルタイムでな。 リアルタイムで処理できない処理は専用タスクに任せて メインのタスクは別の処理こなし 専用タスクが完了したときにはハードウェア割り込みやソフトウェア割り込みを発生させ その次の処理を継続するというのが制御系システムだ。 ちょうど複数の外注先に仕事を投げて 出来た結果をセンブルするようなものだ。 数学というより経営学的帝王学的センスが必要になる >>298 X結果をセンブルする ○結果をアセンブルする 分数の足し算が出来ない奴はプログラマになるのを諦めた方が良いと忠告しておこう。 >>301 それがプログラマになるのを諦める十分条件であることを示せ。 または それがプログラマになるのを諦める必要条件であることを示せ。 >>6 これ 理系の人間って文章問題を数式化したり普通に言語能力が必要 どっちも必要って場合に理系の人間は問題なくって 文系の人間で数字が苦手ない人は敷居が高いって今まで通りの話 とりあえず専卒の書くコードが往々にして奇想天外である原因の一端として、命名力の無さ=英語力の無さ、というのも大きいなと思い始めた 奴らは名前を記号としてしか捉えてないから、名が体を表してない命名を平気でする ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる