【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 なるほど、命名力っていうのも、
プログラムの共有化には重要か。
コメント力も同様だろうけど。 >>1
>次に彼らに45分間の「Python」と呼ばれるプログラム言語の講義を10回受けてもらいました。
講義は言語によって行われたのだから、それの理解能力は、その言語の能力に依存するに決まっている
>>1は単に講義の理解力を試しただけ
プログラミング言語を習得した後の「プログラミング能力」は、また、別の話 困った時にドンピシャで引っかかる検索ワード思いつくのは言語センスだな >>301
仕様書やマニュアルがかけないやつはプログラマ、SEになる資格は無いと覚えておけ >>300
コンピューターを電子計算機と翻訳したのがそもそもの間違い
今なら電子頭脳と訳すのが正しい
中国語はそれを縮めて電脳と訳している >>304
わかる
アルゴリズムの稚拙さやらコピペされた重複コードがどうこうとかいう以前に字面で難読化させてるよね、英語サボってた輩は >>304>>310
ここまであからさまに高専プログラマを批判する文を初めて見たかも知れん
日本のIT業界の上位スキル持ちってその辺が圧倒的だよなあ https://designsupply-web.com/developmentlab/4052/
命名規則「キャメルケース」「スネークケース」「ケバブケース」についてまとめてみました
昔のプログラミングだと変数名、関数名を短く!と言われて
camelCaseなら cmcs(大文字すら使わない)とか
snake_caseならsn_csとかになってたなあ
要するに何をしたい関数なのか、作った本人以外パッと見て分からない
中のコードを読むしかない
下手すると変数名はv00001、v00002と書き
関数名はf00001、f00002のような通し番号しか許されず
みんなでそれを共有するようになっている、なんて変な現場もあったそうな >>311
専卒を引き合いに出したけど、高専卒には触れてないぞ
仕事してて高専卒に出会う事はなかった
高専に行くような中学生は、義務教育を頑張ってただろうし(と思ってググッたら高専も英語は…らしい)
そして学歴じゃなくて、英語力の有無がソースコードの可読性に及ぼす影響の話だぞ
名前の短さ・略し方の問題じゃないし、今は2020年だぞ
それともうひとつ「英語わからんままだとまずい」と思って努力してるような人には日常的に、応援してサポートしてるぞ >>304
いや単純に頭が悪いからだろ
英語得意でもダメだし 論理はブール代数
論理は場数と地頭と忖度
日本の業務現場は圧倒的に後者 お前ら学問を文理で分けるの大好きだよな
俺から言わせりゃそんな奴はまだまだなんだが 好きも嫌いもないダイヤブロックを積立てる分ですなメガネクイッ 基本的に言語Cと数学が分かればオーケーニダ
特にポインターとtypedef や structが理解てきれはOK >>276
>語学とか音楽の練習をしても効果が出なくなる限界がある。
オマエが想像してる語「学」は語「学」じゃないことをまず最初に断っておく。
外国語会話や音楽は聴覚という最も劣化しやすい人間の能力が重要な「必要条件」だ。
>年齢による閾値
閾値は年齢とは関係ない。
ライブハウスなどで無駄にスピーカーの大音量を聴くと
若年性、突発性難聴になって傷めた聴力が回復しなくなる。
これは耳の穴の中にある有毛細胞という
音波の物理的振動を聴覚神経の電気信号に変換するトランスヂューサーなのだが
大音量の騒音によって破壊される。
(h)ttps://www.e-healthnet.mhlw.go.jp/information/dictionary/sensory-organ/ys-01.html
(h)ttps://www.widexjp.co.jp/deafness/what/decline.html
>蝸牛の入口周辺の有毛細胞が一番高い周波数の20,000Hz位の分析を担当し、奥に向かうに連れて低い周波数の分析を担 当しており
と書いてあるように高音を感じる有毛細胞加齢や騒音の物理的エネルギーによって破壊されやすい。
破壊された結果聞こえなくなった高音の聴力を補強するために
脳は高音の感度を敏感にする。その結果キーンという高音の耳鳴りが聞こえるようになる。
日本語でシーンとかキーンという音に関するオノマトペに「イ」という母音が含まれるのは
「イ」という母音のフォルマントが高音にシフトしているからだ。
音楽では器楽でも声楽でも音感や音程の弁別能力が最重要であるが
それも有毛細胞が破壊されると弁別不可能になる事がある。
奈良時代の日本語は万葉仮名の分析から、現代日本語でイ段の「キ・ヒ・ミ」、エ段の「ケ・ヘ・メ」、
オ段の「コ・ソ・ト・ノ・モ・ヨ・ロ」にあたる各母音がそれぞれ2種類に書き分けられていたことが知られている。
これは国語学的音韻論には甲類、乙類と分類されてるが
グローバルな音韻論では現代日本語の母音のフォルマントが五つの周波数帯域に分布しているのに対して
奈良時代の日本人、帰化人の日本語母音のフォルマントは八つの周波数帯域に分布した
母音の音色を聴き分けていたことによよるものだ。
会話による音声認識翻訳ソフトを開発するには英語、ドイツ語フランス語の母音は日本語より多くのものを弁別しなければ
ダメで、数学の知識だけあっても音声学の知識がなければ完成しない。 >>322
初代ファミコンのCPUはMOSテクノロジーの6502を採用していた。
(h)ttps://dic.nicovideo.jp/a/6502
CPU内のレジスタ3本は8bitなのにメモリをアクセスするポインタは
アドレス$0000から始まるゼロページ256バイトを偶数アドレスと奇数アドレスのペアにして
16ビットのポインターとして使用することができた。
その上、条件分岐には現在実行中の命令のあるメモリ・アドレスから
256バイト以内へジャンプする場合はライバルの8080やZ80の16ビットと違って
少ないメモリ消費で高速にジャンプできた。
だから6502でbinary coded desimal=ascii codeで入力された数値を
数値計算に使う2進数に変換するのもライバルの8080やZ80より有利だった。 >>324
1行にまとめると
「6502CPUのマシン語を理解すればC系言語のポインターは難しくない」
言い換えると
「6502のマシン語はC系言語のポインターと相性がよい」 そんなことは、俺は中学のころに気付いてたよ。
元々小説のような物を書いてて、プログラムを
覚えたとき、ああプログラムも文章も
構成の大事さとか考えることは一緒だよなと
思った。 こんなの普通に分かるだろ?automata とかgrammar とか習わなかったのか?
一定規則が許容する言語総体の中からsemantic に意味ある物を発掘するこれは英語だろうが中国語だろうが日本語だろうがそれらを発話する際と一緒の作業(´・ω・`) 実際は全く似てねえから
気付いてたって言ってるやつはプログラムが激烈に苦手なやつなんだろうな >>315
レスしそびれたけど、10人に1人、最低でも20人に1人は「頭いい。勉強嫌いなだけだったんだろうな」と思える人物に出会えるけど、その人物の英語力(命名力)は普通、つまりソースコードの可読性を命名力不足によって落としてはいないように思う
あくまで一個人の経験則でしかないし、その層に何も期待はしてないけどね >>329
その分析で間違ってるところは
命名力っていうのと英語力っていうのをどういうわけか同じと定義してしまっているところ
プログラムで命名する能力は他人のコードを見て常套手段としてどうするか
自分が書いてきてどういう整理をすべきかという経験を通じて得ることができる
それって通常の意味での英語力ではなくて単なるプログラムの経験なわけなんだよ 言語と数学は扱う脳の領域が違う
アインシュタインみたいな発達障害者だと数学はすごいが言語は不明瞭 アインシュタインな数学が苦手だったんだよな。
凡人レベルの苦手とは意味が違うけど。 幾何学は得意だった、という話だったので
https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%AB%E3%83%99%E3%83%AB%E3%83%88%E3%83%BB%E3%82%A2%E3%82%A4%E3%83%B3%E3%82%B7%E3%83%A5%E3%82%BF%E3%82%A4%E3%83%B3
>アインシュタインは、5歳ごろまであまり言葉を発して他人と会話することがなかった
>一方で数学に関しては傑出した才能を示し、9歳のときにピタゴラスの定理の存在を知り、その定理の美しい証明を
寝る間も惜しんで考え、そして自力で定理を証明した。12歳のときに叔父からユークリッド幾何学の本をもらい独習。
>微分学と積分学も、この当時に独学で習得したといわれている。同じころ、医学生だったマックス・タルメイから
天文学の存在を知らされ、同時に物理学に関心を示すようになったという。
>ただ、確率は生まれつき不得意で、このことがのちに統計力学・量子力学を否定する素養となる。
> 1895年、スイスの名門、チューリッヒ連邦工科大学を受験するも総合点が合格基準に足らず失敗。
しかし同校の校長は、アインシュタインの数学と物理の点数が最高ランクだったため、
アーラウのギムナジウム(ドイツ語版)に通うこと(大学入学に必要な中等教育の諸知識を習得すること)を条件に、
翌年度の入学資格を与えた。
>アインシュタインは大学の講義にはあまり出席せず、自分の興味ある分野だけに熱中し、物理の実験は最低の「1」、
電気技術では優秀な「6」の成績をとった。大学時代は、化学の実験中に爆発事故を起こし、
学校をパニックに陥れてしまったこともあった。彼は教師には反抗的で、授業をよく休んだ[6]。
>大学の物理学部長ハインリヒ・ウェーバー(英語版)と不仲であったために、大学の助手になれなかった。
妄想好きなところと、社交的なところが同居してる面白い人だよなあ 大麻やると滑舌が上がるのと似てるな
世界で合法化されてて、政治家がその演説で大統領になってるやつ 俺としては弁が立つ人がうらやましいよ
自分が考えていることをちゃんと説明して、相手を納得させるとかすごい苦手
弁が立つこととプログラミング能力の関係についてはよく分からないが、仕事ができる人はみんな弁が立つな それは弁が立つことを仕事ができるという間違った定義をしているから
とにかく実務の評価能力が低いことにとる
弁が立たないけど仕事ができる人間
弁が立つだけで仕事が失敗しまくるやつ
死ぬほどたくさん見てきた プログラミング自体は別に大して難しくない
スキルアップしていく過程で必要とされるのが数学的知識と考え方 能力が高いかどうかはともかく、今でもそれなりにプログラムで稼げている自分の
国語の偏差値72で数学の偏差値は42だった。
ライブラリを使うから、ベクトルや三角関数、統計などについて
式や計算の必要ないんだもん。 プログラミング能力といっても色々ある。
1、難しい処理を効率よく処理できるプログラムを書く能力。
2、メンテナンス性、発展性の高いプログラミングを書く能力。
3、可読性の高いプログラミングを書く能力。
リソースが限られてた昔は1が大事だったけど、今は2、3の能力の方が重要な場合が多い。
でも、1,2,3全部へぼい奴が多いのが日本のIT産業。 >>339
ちがうー
@底辺の作業をするPG能力(単純、具体性高い)
A高度なPG設計ができるSE能力(複雑、抽象性高い)
そうよ@がAを妬む、高度で効率のよいコーディングができるからそれが
もっとも優秀でトップエンジニアの要素だと思いたい、SEを見下したい。
底辺がマウントとりたいだけな。 おジジのSE/PGだけど、なんか違うと思う。
客先からの式はバラせばいいから数学的な素養はあまり必要はない(ばらせるやつやSeにやらせりゃ良い)。 俺は、速度性能見積もりができない奴に悩まされたな
巨大ファイル相手に富豪プログラミングが通用すると思ってんの 満足にPGも書けないのに上から目線だらけのなぞww CPUに時間がかかるのはマルチ
理系文系できれば賢者 うーん。問題をコードレベルに分解できる能力は文系とも理系とも言わないと思うんだ。 この問題はノーベル賞受賞者に東大が少ない、灘校出身者ゼロなのと同じだな >>346
多くの問題銃を解いて経験値として貯めているだけだから
これに数学の能力が加わればいいだけ 解決への道筋は仕様決定の段階で決まっているのだから、言語能力とは違うのかと思う。
式をどれだけ上手に開くのかが大事なのではないだろうか。 >>339
だって高卒人口が圧倒的に多いし
>>340
既にその文章の日本語としての意味あんまり分からないけど、SEとかいう単語を持ち出す時点でザ・労働集約産業に携わる底辺だというのは分かった
事業会社だとSEだとかPGだとか設計者だとかコーダーだとかいう境界線は無いよ プログラミングって元々計算科学とか論理学だからじゃないのか? >>340 の設計がダメだからプログラマから叩かれるのだよ。
ダメSEって自分のゴミ設計の責任をプログラマに押し付けるから嫌われるんだよ。
ちなみにおれ両方できる。 とりあえず高卒とか専卒は受託開発だけやっててくんないかな
うっかり要素技術の知識アピールが成功して事業会社に入ってこられても、知識を運用するおつむが貧相なのでクソコードを濫造されて、そのケアにすごく時間かかる うーん。そこまで言ってしまうのは、如何なものか。
経験上なんだけど、学歴が低くても強い人は沢山いるように思う。むしろ大学出ていないプログラマやSEの方が実践的のような気さえする。
なので、学歴は関係なく個人による、としか思えない。 まずもって文系理系で語るアホが多すぎるのが日本のIT音痴の根源だろ
そもそも土台勘違いされているが
一部の応用数学を除いて、数学と呼ばれる大部分が人文科学、要はアホが言う文系ど真ん中の学問だってこと
そしてプログラミングは至極端的に言えばコンピューターとの論理的会話
要は元々プログラミングはアホの言う文系の範疇や >>358
端に日本はコーダーはヒラの仕事で
低学歴は学歴主義のせいで出世しないから爺になってもコーダーってだけだけどな このNatureの原文読むと、比較用に使った言語はPythonで、しかも初心者に対する
初歩的な学習内容。実際に学習に使用したテキストはcodecademy.orgのpython
チュートリアル。内容的にはリスト処理、if文、などの学習内容。
どちらかというと初心者がPythonを理解しようとするときには言語活動を中心に
理解しようとしている、という結果にしか思えない。
実験に参加した人々は能力の高いプロとは呼べないし、より高度な数値計算やコード
の作成はしていない。これは初心者の話だ。
デタラメな記事の紹介の仕方だと思う。 >codecademy.org
間違えた、www.codecademy.comな。 Natureの分野外論文って基本トンデモだからなぁ… >>1
だからといって文系が言語能力高いというわけでもない。 そりゃそうやろ
プログラム化は言語能力
アルゴリズム構築が数学やろ >数学の専門知識や計算能力の介在する余地は想像より遥かに少なかったのです。
仮にプログラミング能力そのものに数学を必要としないとしても
現在においては少し高度なアプリを作ろうとすれば、行列や複素数などの
高等数学の知識がなければプログラムそのものが作れない。
つまり何を言おうと、数学の知識がプログラミンにとっては必須の要素で
あることは否定できない。 プログラミングに本当に必要なのは図工の才能
言語能力とか数学能力とかいうのは飲み込みの速さでしかない 図工??まあ必要ではあるよね
プログラマに必要なのは100に1つの想定外の発生を潰すロジックを組む能力
そのロジックに至るための「文章題」を自分で作成できる論理力が必要だわな
流れで適当に組んだらなんとなく動いたからこれでいいか、なんての奴はマジ迷惑でしかない SEは文武両道
プログラマーはSEの奴隷
言語理解力皆無な劣化入力マシーン
そのクセプライド高い >>367
高度じゃないにしても作る上で行列はまあ必要だわな。 数学が苦手=数をつかった論理的操作が苦手
プログラムが得意なわきゃねえわな
例外ないわ
この論文を書いたやつも数学が激烈に苦手だろうな >>367
それ言い出したら銀行業務の知識が必須だとかなんでもありになる
数学が絡む開発が少ないのはやはり事実だよ
数学も出来ねえポンコツが開発なんてやるんじゃねえとは俺も思うがそれが現実 プログラミングに必要なのは数学そのものじゃなくて(必要なときもあるが)、数学的思考。 >>373
金融勘定系システムに関わると(最初は無くてもいいけどやってくうちに)日商簿記x級とかを要求されるようになってくる
って話を聞いたことはあるが。 建築系のシステム作ってたら2級建築士程度の知識は必要になってくる
構造計算系だと1級建築士かそれ以上の知識が必要 単純な会計でも、一見素人には借方・貸方が逆のように感じる取引があったりするんだよな ITエンジニアの採用担当者にプログラミングの知識がないという問題
https://srad.jp/story/20/04/
採用担当の上司や会社TOPにプログラミングの知識がないとよくあること
優秀な人材を得るのはまず無理 >>382
某大手電機会社のSEは、入社時からSE。とある人の卒論を見せてもらったが、苦笑するしかないレベル。
当然、実践を経験していないので、もっぱらスケジュール管理と客先との折衝だけ。営業と変わらん。 >>384
情報工学。Cで100行程度。しかもグループ研究w 知識があるなら採用なんかやらずに書く方に回されるからな >>362
要するに、プログラム言語を覚える能力が普通の言語を覚える能力と正の相関があるってだけの話なんだよなあ
表題の「能力の高いプログラマー」云々の話とは全く別の話だし、ましてやこの一文は勘違いも甚だしいと思う
>小説や詩の文面にキラリと光るセンスを感じ取る能力がある人は、プログラマー適性があるかもしれません。 PG能力とSE能力では能力の尺度が違うことがわからない単細胞が
暗記と単純作業こそ最強と確信して、高度な設計が何もできないことに
反省の色すらださない愚かさのスレですか? >>383
ゴミ中のゴミだわな
その手の何もしない奴はコミュニケーションの阻害要因とコストアップの原因にしかならん 無能なPGは非同期系のプログラムを恐ろしく嫌うかまったく拒絶する。
同期処理なんてものは簡単なんだよ。
思考が単純で厚みがないから、能力は短絡してきめ細かい末端部分しか
見えなくなる、だからこそ抽象化能力がないから規模が大きなものは扱えない。
プログラム記述は具体性だが、プログラムの設計においては抽象性が重要になるのは
明白であり、それを拒絶して高尚なものはキチガイだとか妄想だとかレッテルをはり
それらの高尚な概念を扱うひとは熟練やら高齢になるので老害と老害と切り離し
自分は最高のエリートなのに無能なそいつらが悪いと責任転嫁してしまう愚かさがある
自覚せよ。 昔は論理で、数学の証明と同じで、
美しい数式=無駄がなく最小手で、論理的に成立
が、一番大事だった
だけど、今は処理能力、容量が桁外れに増えたからなぁ
求められる能力は明らかに違うわな
ってか、今必要な能力って何だろな これは同意する
プログラミング30年以上のの経験者が言うことと同じ
どれだけいい大学出てもIT業界では糞は糞
理系だろうが文系だろうがプログラミングには関係ない
確率偏微分方程式をプログラミングしたこと、あるか。
まあプログラムのレベルによるよ
数学力が無いとね、ダメダメだ
>>14
a programming language
ibm? >>395
文系理系の区別なんか日本オンリーだし
その区別のコンセプト自体がアカデミックじゃないし >>393
昔っていつよ?
COBOLなんて数学なんて初級で50年前から書いてたろ 保守できないプログラムを書くのも言語能力が高いプログラマー。
他と先考えず仕事だけ速いから、そいつが去るとプロジェクトが崩壊する。
>>1
簡易言語 のことか
簡易言語 になると、 インド人プログラマー
本来、プログラマーは、 孤高で高収入だった
世界中の人々と話せる掲示板見つけた
自動翻訳機能付いてて凄い面白そう https://babeler.com/ OSや言語のコンパイラを書くのに数学はほとんどいらんだろうな。
通信関係のプロトコルの実装にも数学はほとんどいらんだろうな。
もちろんある程度以上高度な数学を要するプログラムというものは
あるが、たとえば画像処理とか音声処理など、概してそういった
中核の数学的アルゴリズムの部分はライブラリをブラックボックス
として組み入れて呼び出して使うだけの場合が多いから、大方の
土方プログラマーはその内側の機微に触れる必要はあまりというか
全然ない。プログラムというのは、ライブラリをコールすることで
強力な機能が1行で実現する性格があるので、中身を何にもわかって
いない馬鹿でも書けてしまえたりするんだよ。そうして作り上げられた
プログラムも、使い方だけ知っていれば、中でどのような処理や数学が
使われているかなど何も考えない馬鹿ユーザーでも使えるのさ。
そういう甘やかした利用を推進することで需要と社会的地位を拡大
しているのだからね。最近その傾向がより酷くなったのが、Python
プログラミングだね。 Pythonはライブラリ優秀過ぎるもん
しかも返り値を複数出せたり(他言語でも配列を使えば出来るけど) >>404
よけい数学出来ん奴が使うと地獄になる事態が起きてるけどなw ■ このスレッドは過去ログ倉庫に格納されています