【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 十分なサンプル数が無いのに推定や検定を試みてボロボロになる例多発
機械学習だの深層学習だのも所詮は統計学のバックグラウンドがないと難しい 言語能力のPGに設計能力などない、設計は数学の能力だと知れ 計算機や情報が頼みとする「数学」はそのほとんどが大学の「数学科」
などの研究とは、方向性も種類も動機も異なる。 当たり前だろ
>>1みてそういう議論でないことが理解できませんでしたってことか?w >>58
>言語能力って何を指すの?
プログラミングのときに、コードを表記する能力、つまりコーディング力であって
上級プログラマ必須の正しく機能させる為の機能を設計する能力ではない。
>センターの国語の問題が解ける人ってことでいい?
そういう解釈でもただしい。
緻密さ、明晰さ前後関係という具体性を問う能力の正しさであって、
設計能力や数学力で必須の抽象的空間認知力ではない。
コンパイラ言語においてコンパイルは通るけど動かないプログラム、論理的不具合だらけの
プログラムは言語能力だけで数学力が無い人が作り出す汚物。 通常のプログラムの作成は、通常の数学におけるような正当性の証明を伴わない。
それはプログラムをする人の頭の中の対象に対する操作をその人の直感に基づいて
書き付けたものであって、その正しさは意識と無意識の境界付近に属していて、
かならずしも万人にとって自明なものとも言えない。書かれたプログラムが
極めて自明なものである場合を除いて、理解が困難であることがある。
頭の中身の構造・発想が異なる人間が理解に困難を生じることがある。
もちろん数学の証明も誰にとっても自明とは必ずしも言えない。
将来はいわゆる「自動証明」によりアルゴリズムの正当性の証明が
できれば、その書かれたアルゴリズムは数学の定理と同様に、前提のもとで
常に未来永劫正しいものになる。
数学の能力 = 問題の解法の探索・知識
プログラミング能力 = 論理性・完結性・資源利用の最適化
一貫性がなかったり抜けのある仕様書しか書けないヤツは
仕様を誤解したりバグを盛り込んだりするので
プログラマとして実際レベル低い 要件定義と基本仕様がかけるなら、
あとは詳細設計で具現化するだけ。
この前段も後段も数学の証明同様、
独立・無矛盾・完全な陳述が理想。
後段は前段の思想と哲学を忠実に
反映することが求められるため、
まず前段は、その思想と哲学を、
正しく伝えるように書き表す高い
言語能力が求められる。
後段は、それを正しく読み取れる
十分な言語能力が求められる。
更に後段は、前段の思想と哲学を
具現化するため、使用する計算機
言語に、前段の思想と哲学を翻訳
する言語能力が必要。
更に、前段の思想と哲学の内容に
よっては、機能的・性能的に十分
な具現化とするためアルゴリズム
の数学力に裏打ちされた採用と、
それの具体的な文章化(プログラ
ミング)の言語能力が必要。 この世の森羅万象が公理化された体系で記述出来るという保証はない。
デジタル計算機でプログラムを書いて扱かえる対象は、
なんらかの意味で既に数学的なモデルに落とし込まれているものに限られる。
それが現実の忠実・相同なモデルになっているかどうかは数学的に証明される
ことではなくて、現実を実験と照らし合わせて経験により判断されるものである。 理屈っぽく難解な言葉を繋げれば高度だと思っている馬鹿がいる限り、この業界は進歩しないわな 数学者はプログラムが必ず停止するかしないか、
計算が多項式オーダーの計算量で可能かそうでないか、
にしか関心がないからな。記憶容量は無限の長さのテープがある
として議論しているから青天井だし。 数学力っていうの見てとりわけ数学者の特性語るやつの頭の悪さエグいな 1の
>プログラミングの講義が終わった後は、各個人に対してどれほどプログラミングが身についているかのテストが行われました。
言語習得度合いを測るそのテストが、数学力が問われるほど高いスキルを要する内容だったとは思えない。
>結果、プログラミング言語の成績と最も強い相関関係があったのは、意外にも言語能力でした。
そう意外でもない。
考えを言葉にし(思考し書き出し)、言葉で考える(読み取り思考を深める)、それが言語能力。
単語から文法を駆使して「伝わる」文章へ、効率的に「意味(計算機では特にアルゴリズム)」を組み立てることが、その言語習得の証。
>ただプログラムの正確性に関しては、言語能力よりも認識能力(推論、短期記憶)のほうが重要という結果が出ています。
そもそも言語能力のみで、言葉の価値を高めることは、どんな分野においても不可能。
プログラムの正確性・実効性に限ったことではない。
プログラムを着手から仕上げるまで、何が目的でどのような手法(アルゴリズム)で実現するのかという認識が重要なのは明らか。
>>414に明言のとおり、プログラムの価値は、それが基づくところの詳細設計、ひいては要件定義と基本仕様があってこそだから。 要求されている仕様の文章を読んで理解出来ないレベルの人間に
その仕様を満たすプログラムなど書けるとは思われない。
高度であったり複雑である要求仕様の文章を読んで理解できない
のであれば、そういった作業は不可能だ。
仕様は携帯の3行で書ける程度の簡単なものは仕事としては滅多ない。
学校で教えるプログラムの入門教育はせいぜい100行ぐらいのコードで
書けるもので、仕様も単純明快などちらかといえば算数的な曖昧さの
ないものが教材として選ばれているので、学生にプログラムとはこんな
単純な作業なのかと誤解させる元になる。 4/1
数学と哲学のどちらが上なのか?
16世紀の論争、科学の発展に果たした役割、著書がフランスで歴史学賞
フランスで権威ある歴史学賞を日本人初受賞 数学と科学をめぐる議論の歴史を研究
https://mainichi.jp/articles/20200330/hrc/00m/070/001000d >>412
>通常のプログラムの作成は、通常の数学におけるような正当性の証明を伴わない。
ホーア論理とかあの手の話ですね?
本来コードを書く人はそれの正当性を証明できなければ正しいプログラムを書いているとは
言えないはず。
証明をやれば、コードの満たす数学的性質も明らかになり一石二鳥なんですが。
>将来はいわゆる「自動証明」によりアルゴリズムの正当性の証明が
これって今どうなってます? プログラミングに必要の素質はプログラミング能力
言語能力だの数学力だのをもってくる理由がわからん プログラミング能力とは何か?
処理したい問題を分析調査して要求仕様を綿密に完成させる能力だろうか?
仕様を満たすような解法手順を書き上げる能力だろうか?
解法手順を構成する部品であるアルゴリズムが手元になかったら
それを編み出す能力だろうか?また同じ部分問題を解決する
アルゴリズムにも、速度、要求する資源、などいろいろな候補が
ありうるだろう。そのどれを選ぶかあるいは切り分けて使うように
するかどうか。
アルゴリズムに基づいて、プログラムコードを書く作業。
言語に何を使うか、どのようにプログラムを構成するか、
特に大規模なプログラムになる場合に、どのように部分を
くみ上げて全体を構築するか。大きなプログラムは
数十万行〜数百万行あるいは数千万行にも達しうる。
それを間違いなく書き、また間違いがあればそれを容易に
見つけ出せて、また将来にプログラムを機能追加などの
ために変更する場合にそれを如何に容易に可能とするように
構成し記述するか。(現時点での仕様に過度に最適化すると、
それからの進化変化には対応できない・追従し難いものに
なりうる。しかしあまり汎用に作れば、性能が落ちたり
無駄な複雑さを招いてしまいかねない。)
大規模なシステムの開発は、時間と労力と人員が多く必要で
なかなか難しいものである。 処理したい問題から、本当は何をしたいかと予算額を推測し、
最適解を見つける能力 >>358
ない
「プログラマ」「SE」という単語が出てくるあたりSIerに居るんだと思うけど、SIerでは何次請けなのかによって求められる役割が違うし、SIerでは概ね大卒にプログラミング能力は求められていないんだから、その感想は当たり前
>>357が言ってるのは委託・受託の関係にない事業者での尺度で、そこでは高学歴も低学歴も同じ役割(SIerで言う「プログラマ」)を担う
自分の経験と照らし合わせても、地頭の良し悪しは確実にソースコードの質やいわゆる「後腐れ」の多寡に表出する
もちろんずば抜けた能力を持つ低学歴の存在を否定する気はないし、たまに目の当たりにはするけど、レアリティが極めて高いので当てには出来ない
そもそもスレタイ記事は、ジャパニーズSIerが反応するにはちょっと筋違いな気がする ピースを組み立てる能力とか全体を仕上げるまでの構成力とか関係してそう >>431
これは全然違うわな
外国語はスポーツとかにちかい繰り返しの鍛錬
論理的思考力は全く必要ない(現に非論理的バイリンガルは多い)
ワシントン大学のシャンテルS.プラット、こいつの専門は心理学や脳認知科学だ。
最初からバイアスのかかった研究だろ、どうせ。
たぶんこいつは数学が苦手で、酸っぱいブドウの実例を体現したんだろwww
>>433
>たぶんこいつは数学が苦手で、酸っぱいブドウの実例を体現したんだろwww
↑
こういう思い込みをバイアスという 他人を言葉の力で支配して命令してある目的に向けて作業させることで実現する。
本来の政治家とか。あるいはカリスマ企業経営者など。
ビルゲーツとかジョブスは自らはプログラムコードを書く必要は無い。
適切な人間を集めたチームにこういうものを作れと命じれば良いだけだからだ。
そこでは言葉の魔力が重要だ。正しいビジョンを得るには、いろいろな
方面から知識や情報を集めて総合的に判断して自分が決定することが必要だけれど。
(必要なら補佐なりコンサルタントを使えば良いが、その提案を採るか採らないか
は自己で判断する。) アルゴリズムやプロトコルを都度に考えなきゃいけない、その代わり周囲のスタッフが要件をまとまる昔のプログラマと、アルゴリズムやプロトコルはありもの、要件はプログラマが検討しなきゃいけない今のプログラマは必要なスキルがまるで違う。 IT業界で仕事上、数学できない奴と出会うと
自転車乗れない大人見ているようで気分が悪いよ >>437
いまのプログラマには、論理的にありえないケースに対する判定処理は
論理的にないから作らないし評価もしないという考えで統一(合理化)している、
設計時点ではなかったかもしれないが、不具合や偶然や、メモリ障害や、
ありえない入力パターンが考慮されていないなど考えられる要因は防ぎきれていない
未知の不具合や誤動作についておきたときに対処すればいいという業界の流れ、
それは衛星やら原子炉といった極めて品質が高くないといけない領域では
完全なタブーの考え方で、言語能力だけではその正等な処理ルートはデバッグできても
不正なルートの設計もデバッグも行われていない、それが数学的な論理思考ではなく
テストパターンが通ればいいという言語思想でデバッグしているからだろう。
Web系やら、端末アプリでコード書いているやつは組み込み系とかでは相手にもされない、
無能評価だ、特に品質が高い危険とか爆発とか発火と隣り合わせ、最悪の失敗が国家予算
ぐらいの規模で負債になるようなケースでは品質管理すらなっていない。
石橋たたくやつがいない、厚み2メートルのチタン合金の橋を、杖でたたいて正常化確認とか
やらんだろ?失敗即死刑みたいな状態の覚悟をもっている奴などほぼいない。
すべての入力と出力の組み合わせについて無数に上る可能性を全て確認するような膨大な
作業とかやらないから。小さいシステムではマトリクスチャートつくって状態遷移で入力と
出力とありえない状態などの全てのケースを設計確認、実記でも不正データいれて確認するもんだ。
リアルタイムでプログラムコード(ROM)が化けるCPUでのコードの書き方とかしらないのは当然だ。
たとえば4ビットの電池が動作中に電圧がぐらぐら変わる赤外線リモコンとかRAMもROMもCPUも信用
できないから、間違って動作してもリセットがかかる、ウオッチドッグタイマーよりも厳重に
コードが固まらない&データが化けても異常にならないという設計が必要だった。 >>439
分野ごとに違うだけで上下はないよ。
(あなたのいうような)組み込み屋さんにunityで仕立ててって言っても
、
学習時間なきゃ挙動のわからないフレームワークで十分扱えないだろうし。 もしも、高価な計算機が、ユーザープログラムのバグでもって
爆発したり、火を噴いたり、回路が焼け落ちて再起不能になったり、
などするのなら、もっと確実で安全で失敗のし難い工学的なアプローチや
ソフトウェア開発ツールとか、有資格者でなければプログラムを書いては
ならないといった規制がかけられたのだろうが、普通のプログラムでは
そこまでならないのが多いから、WindowsやAcrobatReaderみてもわかる
ように、バグがあれば、後で直しを出してやるから、文句を言うなという
やり方がまかり通るのだ。無学無知無教養の中学生のようなプログラマー
でもコードをキーボードを叩いてとりあえず納期に間に合わせられるのなら、
バグが沢山はいり込んだとしても、構わない、とにかく〆切をなんとかしろ
ということになる。日本のテレビアニメ作りの精神にも通じる。出来が
わるくても、スポンサーがただでテレビを見せて下さるのだから、ヤシガ二
になっても、文句をいうなよというあれだ。 分野ごとに違う。
自動車のMCUの不具合で起きた重大事故はかなりの数あったし、それでいまもAUTOSARの開発にはかなりの予算が投下されている。 プログラマーの能力の多寡を給料の額で評価するのならば、
アセンブラーでデバイスドライバーを書いたり、
末端のルーチンのCのソースコードを書いている・直している
プログラマーよりも、プレゼンして注文を取ってきたり、
ドキュメント・仕様を作ってプログラムを発注したり、
部下を沢山侍らせて自分はプログラム言語にはタッチしないで
部下の査定で日々を暮らしている方が、うんと高給=能力のあるプログラマ
という評価になろうぞ。 そのうち、仕様をかっちりと(かたにはまった言い方の)自然言語と数式で
与えたら、プログラム言語のスタイルでプログラムが自動生成されたり、
逆にそのように自動生成されたプログラム(たとえばC言語やPythonで記述されて
いる)から、そのプログラムの仕様をドキュメントとして、自動的に生成してくる
ような賢いAIプログラム開発システムが作られるだろう。
そうなると、ほとんどの人間の作業は、直接C言語やPythonで書くのではなくて、
そのかたにはまった書き方による仕様書をつくり、AIシステムにそれを
受け付けて貰えるかの裁可を頂くことになる。AIシステムがそれを受け付ければ
人間は、AIシステムが生成するCコードを観る必要はない。
(あたかも現在のほとんどのプログラマーがC言語で書かれたソースに
対応するオブジェクトコードやアセンブラーのリストをほとんど見る必要が
無いように。)
プログラムの開発がそのようになれば,要求を実現可能な仕様にまとめて、
その仕様書兼ドキュメントを作成することに集中することになるだけだろう。
もちろん結果がおかしければAIシステムが仕様を人間の意図とは異なる
間違った解釈をしてCの間違ったコードを出しているかもしれない。
そういった曖昧な部分を潰して、。。。。
でも従来のプログラマは、そんなのまどろっこしい、おれはいきなり直接
Cで書くと言い張って、次第に組織の中で孤立して排除されていき、絶滅させられ
てしまうのだろう。 >>12
それはそれで有能。
てかマネージャーの方が向いてるだけや 基礎的な部分の構築には数学力で、これは既に達成されていて
そこから枝葉のように伸びる応用面で言語能力優秀者が力を発揮するという感じでは >>447
応用というか現場で高度な数学力が役に立つ
こともある。例えば設計システムで現場の
職人が、数式を出してこの範囲内でって言う
とき、寸法制限の無いCADだとこの式エラー
になるんで、正誤条件なんかつけて下さいって
言えることもある。
テレビゲームでこのルールだと成果ない人でも
10時間続ければクリアできちゃうとかもすぐに
筆上で計算できたりする。 能力が高いと言ってもいろんな要素を縦に積み重ねようとするのが間違い、
数学力は道具に過ぎない、言語能力が仕事を回す能力、もちろん言語能力以外にもいくつか要素はあるけど 数学脳のほうが言語脳よりもコンピュータに簡単に代替されてしまう点で
下等だということかもしれない。 大麻もカクセイザイも農産物だな!www
日本は日本でのみジャップに対してのみ、カクセイザイ及び大麻を今すぐ完全に解禁しよう!
日本でのみ、自動小銃を完全に解禁しよう!
日本でのみ、移民や外国人労働者さんを完全に解禁しよう!
日本で、日本人に対してのみ、カクセイザイ・タイマ・麻薬の製造・流通・販売・使用などを合法にしよう!
アメリカの圧力ならしょうがないんだろう?www
やれよ。
ドイツで、自動小銃を完全に解禁しよう!
ドイツで、移民や外国人労働者さんを完全に解禁しよう!
ドイツで、カクセイザイ・タイマ・麻薬の製造・流通・販売・使用などを合法にしよう!
アメリカの圧力ならしょうがないんだろう?www
東京に今すぐもっと東南アジア系移民のかた・アフリカ系移民のかたを受け入れよう!今すぐ東京にもっと東南アジア系外国人労働者さん・アフリカ系外国人労働者さんを受け入れよう!
日本に今すぐもっと東南アジア系移民のかた・アフリカ系移民のかたを受け入れよう!今すぐ日本にもっと東南アジア系外国人労働者さん・アフリカ系外国人労働者さんを受け入れよう!
やれよ。 >>450
コンピュータは数式作ることはできないよ。
大体合ってる近似式のが重宝されるから、
逆にコンピュータ特化の数学者とかはいま
尚更に必要になっている。
アメリカのマーキュリー計画で大規模な
配置転換した当時のNASAでも、その場で
FORTRAN向けの計算方式考えることが
出来る数学者のがIBM出向のエンジニア
より重宝されたというよ。ついでに物理
も軍や航空管制知らない人が、法制飛び越
えてフライトプランの検証したりで、分野
横断を数字でこなすことのできる汎用の
エンジニアとして重宝されてたというよ。 >>452
問題や仕様に対してつまりどういう式を求められているのか、見えてる条件以外に関係するヨウ素は無いのか
を探れる能力を数学力と言うか言語能力と言うかは判断しにくい 数学能力も言語能力っていう一次元の数値で表現できないけど
言語能力の方がその傾向が強そう
これが他の組織で役に立たない調整力みたいなのと結びつくだろうな
国語の点数的能力は数学の能力と同様仕事につながらんものだろう 中高の数学でも、問題の意図、教科書の章ごとの課題に対応した例文も読めない人が多くなってるらしい。
しかも、そういう学生と面談してみると、実際の計算の方法と目的は大抵理解できてるという。
要するに、設問を例題に対応させて読み解くこともできない人が数学でつまづくのが多いってことなんだろう。
仕事でも言葉の意図が読めない人がいる。エンジニアでも事務でも営業でも。 >>455
これを全部説明側のせいにして効率を尋常じゃないレベルで下げる奴多いよな
資料をいつまでもブラッシュアップさせるやつ
マイナスの仕事が大きい ■ このスレッドは過去ログ倉庫に格納されています