能否适应学习编程范式会受到文化或母语语法的影响?

时间:2009-09-22 23:29:04

标签: perl programming-languages paradigms

众所周知,不同的人对各种programming paradigms有不同的才能(例如,有些人在学习非程序性语言,尤其是函数式语言时遇到困难。有些人无法理解指针 - 请参阅Joel Spolsky的博客,了解有关有些人在抓取递归时遇到了麻烦。)

我最近在阅读一篇关于某人的母语语法如何影响他们学习数学的速度的研究。现在无法找到该文章,但发现了一个快速的Google搜索this reference.

这让我想知道某人的本土文化或第一语言是否会影响他们对各种编程范式的能力。我对正面影响更感兴趣 - 例如一些特性使某人更容易/更快地学习特定的范例,例如母语语法非常以递归为导向。

要清楚,我正在寻找文化/语言语法如何影响同一个人的能力与各种范式之间的差异,而不是它如何影响不同人之间编程的总体能力

重要:我感兴趣的唯一答案要么是参考科学研究,要么是对熟悉特定文化/语言的人的个人观察,包括他们自己的经历。

E.g。除非你说中文或者与大量的中国本土程序员一起工作,否则我对你的第一语言中文如何影响你的看法并不感兴趣。

我的猜测不是基于科学研究,但请务必提供关于观察可能原因的推理。

我对文化抨击不感兴趣(任何此类表彰都将被删除或标记为删除)。

我对文化建设也不是特别感兴趣 - 我们都知道Linus来自芬兰,俄罗斯方块是在俄罗斯写的,而Larry Wall是美国人。任何文化/国家都可以在任何学科中产生出色的头脑。我对平均水平感兴趣。

5 个答案:

答案 0 :(得分:30)

免责声明:在我开始编程之前,我是一名文化人类学家,所以你知道我将会在这里成为一名高级马。

显然,一个人的历史会影响他们对任何特定任务的能力,但我认为这与一个人的语言的结构或语法关系不大,而与文化的特定物质条件有关。说这种语言。

例如,60年代的一对人类学家去了非洲各个社区,测试了人们对各种视错觉的敏感性。这是一个经典的:

alt text

在这种错觉中,底线看起来更长,因为连接它的斜线使它看起来在远处是偏离的。

这些人类学家发现,在许多非洲文化中,幻觉根本不起作用 - 人们认为这些线条长度相同。通过改进他们的研究,他们发现唯一容易产生错觉的人是在城市环境中长大的人。他们假设幻觉不适用于远程丛林环境中的人,因为这些人很少或根本没有直角经验和远距离观看事物。

我的观点是,即使您成功地找到了程序员的本地语言与编程的某些方面之间的相关性,您也无法确定相关性是否是虚假的。例如,您可能认为亚洲人往往是不好的司机,您甚至可以在统计上证明这一点。然而,如果你得出结论,“糟糕的驾驶”是亚洲人的某种基本特征,那么你就会忽略亚洲人更有可能从亚洲来自的事实,从而拥有与西方人(特别是美国人)相比,在成长过程中驾驶汽车(甚至是 in 汽车)的经验要少得多。

通过编程,我们可能会认为某种语言会抑制编程能力,而不会注意到这种语言所在的社会对计算机的访问权限要少得多,因此使用该语言成长的人似乎具有较少的编程能力或理解某些编程概念的能力。

简而言之,我不会非常相信语言会抑制任何人特别理解任何事物的能力。人类的思想过于灵活,适应性强。

答案 1 :(得分:5)

这似乎与Sapir-Whorf假设类似 - 语言的设施会影响人们对某些主题的易用性,或者用维基百科文章的话来说:

“语言相对性原则(也称为Sapir-Whorf假设)是这样一种观点,即不同语言中固有的不同文化概念和类别以不同语言的发言者认为的方式影响经验世界的认知分类。并因此而表现得不同。“

http://en.wikipedia.org/wiki/Linguistic_relativity

虽然这里似乎没有明确的信息,但讨论似乎与这个问题有关,也许值得进一步探讨。

答案 2 :(得分:5)

只是几个随机的想法。我认为这种影响通常非常微弱,大部分时间都可以忽略,但它们确实存在,有时它们可​​以让我们感受到它们。

例如,在汉语语法中,我们并不完全区分复数和单数形式,但我不认为中文在Perl中理解标量和数组的概念有任何明显的困难。原因可能是:虽然我们通常不需要特定的后缀或形式的变化来表明某些东西是单数还是复数,但我们确实有复数和单数的概念,我们主要依赖于上下文来区分它们。语法方面,中文语境可能比那些属于印欧语系的语言更为重要。我们有时会省略很多事情,有时我们只是假设听众可以很好地理解这些事情。在任何一种情况下,我们都不需要那些无限期和明确的文章(a,an,the)或那些相关代词,例如,哪些,谁和谁,以表明他们是第一次被提及还是再次被提及。也许这部分原因让我对Perl的默认变量“$ ”感到非常满意。打印;终日啃食;分裂;所有行为都在$ 上,这从未被提及过。但这是非常主观的。

我认为汉语比印欧语系更具有隐性和模糊性。例如,我们从不关注主语动词协议,我们从来没有用语言结合来表示时态。这可能意味着中国人倾向于采用一种不太合乎逻辑的思维方式。我的一位老师用一个例子来试图概括(或者可能过度概括)中国非逻辑思维模式与美国逻辑思维模式之间的差异。

如果美国版的争吵应该是这样的:

“我可以舔你。” “不,你不能。” “我可以。” “不,你不能。” “我可以。” “你做不到。” “能够!” “不能!”

中文版(翻译成英文)将是这样的:

我可以舔你 你怎么敢! 如果我胆敢怎么办? 然后你试试。 尝试?嗯,你拭目以待。 等着瞧?我不怕。 不怕?好。你不会逃跑。 谁跑了?来吧舔

嗯,我同意中国人的思维方式与其他国家的思维方式之间可能存在一些差异,但这个例子看起来像刻板印象,因为中国人很容易转向使用美国版本。回到这个问题,我认为语言和文化确实可能以某种方式影响程序员的学习过程,但这种影响肯定不会明显地引人注目。也许是因为你所接触的文化让你在某些编程语言,递归或其他方面习惯某些概念时会感到有点不舒服,但时间会解决它。

答案 3 :(得分:4)

  

我最近在阅读一篇关于某人的母语语法如何影响他们学习数学的速度的研究。 ......重要:我感兴趣的唯一答案要么是参考科学研究,要么是熟悉特定文化/语言的人的个人观察,包括他们自己的经验。

在我开始编程之前我学到了很多数学(足以算作“非常熟悉”),而且IMO编程相对容易:更有形。

有时我想知道了解一种以上的人类语言是否有益:如果你只懂一种语言,那么你可能会认为“猫”和“狗”这两个词是价值,即猫与狗的同义词对象;但如果你能说一种以上的语言,那么“猫”和“狗”就成了指针:因为例如法语单词“chat”和“chien”指的是/指向与“cat”和“cat”相同的对象狗“,显然这个词和对象之间有区别。

令人失望的是,您发布的问题没有链接到启发它的文章。我想到了“反向抛光符号”,并想知道这是否与原始研究中考虑的“语法”完全不同。

答案 4 :(得分:3)

您引用的参考文献似乎基于这样一种假设,即让学习更轻松。根据我的理解,有一种反作用:如果没有足够的挑战,你就不够学习。

有理论/研究(任何有联系的人吗?)语言的发展为扩大大脑皮层创造了至关重要的压力,从而“使我们成为人类”。 (用非常直率的术语:更多的灰质==>更好的语言能力==>更好的团队合作==>更好的生存作为一个群体)。因此,语言复杂性对于学习来说并不是一件坏事。

(我唯一的资格是 The Frontal Cortex 博客的热心追随者,所以请耐心等待。


在德语中,我们有一个奇怪的数字排序:10 ^ 0和10 ^ 1个位置被切换,但其他位置是正常的(例如25是'五和二十',125是'一百五十二')。有人声称这会使学习数字变得更难,因此德语应该采用更直观的顺序。

猜测它在你的头脑中添加很多东西很有帮助 - 至少如果你保持在100或200以下 - 你可以先添加10 ^ 0位置并已经说出/写出来在考虑10 ^ 1的位置的同时考虑下来。

(这不会持续10 ^ 2,我想大多数人都会以书面形式完成)


另外:抽象。有些语言中的数字不是从对象中提取的,“两个椰子”和“两个sabretooth老虎”不共享一个共同的“两个”字/概念。这种语言对于培养数学技能可能非常糟糕。在这里,语言中的抽象(分离数字和对象)很重要。

一般来说,我会说这种语言对塑造一个发展中的思想有很大的影响,我认为没有理由不将这种语言扩展到文化。

当然,它仍然是开放的“正确的复杂性” - 对于什么,以及特定的语言特征如何影响一般改进与精英的建立(即“提高天赋的技能,同时妨碍其余的“)。

有趣的问题,毫无疑问 - 期待其他回复。