DVK*_*DVK 25 perl paradigms programming-languages
众所周知,不同的人对各种编程范式有不同的能力(例如,有些人在学习非程序性语言,尤其是函数式语言时遇到困难.有些人在理解指针时遇到困难 - 请参阅Joel Spolsky的博客,了解其中的一些问题.有些人难以掌握递归).
我最近在阅读一篇关于某人的母语语法如何影响他们学习数学的速度的研究.现在找不到那篇文章但是快速的谷歌搜索发现了这个参考.
这让我想知道某人的本土文化或第一语言是否会影响他们对各种编程范式的能力.我对正面影响更加好奇 - 例如某些特性使某人更容易/更快地学习特定范例,例如母语语法非常以递归为导向.
需要明确的是,我正在寻找文化/语言语法如何影响同一个人对各种范式的能力之间的差异,而不是它如何影响不同人之间编程的总体能力.
重要提示:我感兴趣的唯一答案要么是参考科学研究,要么是熟悉特定文化/语言的人的个人观察,包括他们自己的经验.
例如,除非你说中文或者与大量中国本土程序员一起工作,否则我对你的第一语言中文如何影响你的看法并不感兴趣.
我猜你的猜测不是基于科学研究,但请务必提供你的观察可能原因的推理.
我对文化抨击不感兴趣(任何此类表彰都将被删除或标记为删除).
我对文化建设也不是特别感兴趣 - 我们都知道Linus来自芬兰,俄罗斯方块是在俄罗斯写的,而Larry Wall是美国人.任何文化/国家都可以在任何学科中产生出色的头脑.我对平均水平感兴趣.
Mus*_*sis 30
免责声明:在我开始编程之前,我是一名文化人类学家,所以你知道我将在这里成为一名高级马.
显然,一个人的历史会对他们对任何特定任务的能力产生影响,但我认为这与一个人的语言的结构或语法没有关系,而是与该语言的文化的特定物质条件有关.说.
例如,60年代的一对人类学家去了各种非洲社区,测试了人们对各种视错觉的敏感性.这是一个经典的:
在这种错觉中,底线看起来更长,因为连接它的斜线使它看起来在远处偏离.
这些人类学家发现,在许多非洲文化中,幻觉根本不起作用 - 人们认为这些线条长度相同.通过改进他们的研究,他们发现唯一容易产生错觉的人是在城市环境中长大的人.他们假设幻觉不适用于来自偏远丛林环境的人们,因为这些人很少或根本没有直角经验和远距离观察事物.
我的观点是,即使您成功地找到了程序员的本地语言与编程的某些方面之间的相关性,您也无法确定相关性是否是虚假的.例如,您可能认为亚洲人往往是不好的司机,您甚至可以在统计上证明这一点.然而,如果你得出结论,"糟糕的驾驶"是亚洲人的某种基本特征,你会忽略亚洲人更有可能来自亚洲的事实,因此驾驶汽车的经验也少得多(甚至是在汽车),而不是西方人(尤其是美国人成长)有过.
通过编程,我们可能会认为某种语言会抑制编程能力,而不会注意到这种语言所在的社会对计算机的访问权限要少得多,因此使用该语言成长的人似乎编程较少能力或能力理解某些编程概念.
简而言之,我不会非常相信语言会抑制任何人特别理解任何事物的能力.人类的思想过于灵活,适应性强.
这似乎与Sapir-Whorf假设类似 - 语言的设施会影响人们对某些主题的易用性,或者用维基百科文章的话来说:
"语言相对性原则(也称为Sapir-Whorf假设)是这样一种观点,即不同语言中固有的不同文化概念和类别会影响经验世界的认知分类,使得不同语言的发言者能够以不同的方式思考和行为因为这些."
( http://en.wikipedia.org/wiki/Linguistic_relativity)
虽然这里似乎没有明确的信息,但讨论似乎与这个问题有关,也许值得进一步探讨.
Mik*_*ke 5
只是几个随机的想法.我认为这种影响通常非常微弱,大部分时间都可以被忽视,但它们确实存在,有时它们可以让我们感受到它们.
例如,在汉语语法中,我们并不完全区分复数形式和单数形式,但我不认为中文在Perl中理解标量和数组的概念有任何明显的困难.原因可能是:虽然我们通常不需要特定的后缀或形式的变化来表明某些东西是单数还是复数,但我们确实有复数和单数的概念,我们主要依赖于上下文来区分它们.语法方面,中文语境可能比那些属于印欧语系的语言更为重要.我们有时会省略很多事情,有时我们只是假设听众可以很好地理解这些事情.在任何一种情况下,我们都不需要那些无限期和明确的文章(a,an,the)或那些相关代词,例如,哪些,谁和谁,以表明他们是第一次被提及还是再次被提及.也许这部分原因让我对Perl的默认变量"$ "感到非常满意.打印; 终日啃食; 分裂; 所有人都采取行动,这是从未提及过的.但这是非常主观的.
我认为汉语比印欧语系更具有隐性和模糊性.例如,我们从不关注主语动词协议,我们从来没有用语言结合来表示时态.这可能意味着中国人倾向于使用一种不太合乎逻辑的思维方式.我的一位老师用一个例子来试图概括(或者可能过度概括)中国非逻辑思维模式与美国逻辑思维模式之间的差异.
如果美国版的争吵应该是这样的:
"我可以舔你.""不,你不能.""是的,我可以.""不,你不能.""我可以.""你不能.""可以!""可以"T"!
中文版(翻译成英文)将是这样的:
我可以舔你 你怎么敢!如果我胆敢怎么办?然后你试试.尝试?嗯,你拭目以待.等着瞧?我不怕.不怕?好.你不会逃跑.谁跑了?来吧,舔
嗯,我同意中国人的思维方式与其他国家的思维方式之间可能存在一些差异,但这个例子看起来像刻板印象,因为中国人可能很容易转向使用美国版本.回到这个问题,我认为语言和文化确实可能以某种方式影响程序员的学习过程,但这种影响肯定不会明显地引人注目.也许是因为你所接触的文化让你觉得有点不舒服习惯一些编程语言,递归或其他什么概念,但时间会解决它.