Disclaimer: I was a Cultural Anthropologist before I got into programming, so you know I'm going to be on a high horse, here.
Obviously, a person's history will have an impact on their aptitude for any particular task, but I think this has less to do with the structure or grammar of a person's language than it does with the particular material conditions of the culture in which that language is spoken.
For example, a pair of Anthropologists in the 60's went to various African communities and tested people's susceptibility to various optical illusions. Here is a classic one:
In this illusion, the bottom line looks longer, because the angled lines connecting it make it appear to be off in the distance.
These Anthropologists found that in many African cultures, the illusion doesn't work at all - people consider the lines to be the same length. By refining their study, they found that the only people who were susceptible to the illusion were people who had grown up in an urban environment. They hypothesized that the illusion did not work on people from remote jungle environments, because these people had little or no experience with right angles and seeing things at very long distances.
My point with this is that even if you successfully found a correlation between programmers' native languages and their abilities with certain aspects of programming, you couldn't be sure that the correlation wasn't spurious. For example, you might think that Asians tend to be bad drivers, and you might even be able to demonstrate this statistically. If you then concluded, however, that "bad driving" is some sort of fundamental characteristic of Asian-ness, you would be ignoring the fact that Asians are more likely to be from Asia, and thus to have had much less experience driving cars (or even being in cars) while growing up than Westerners (and especially Americans) have had.
With programming, we might think that a particular language inhibits programming ability, and not take note of the fact that the society in which that language is spoken has much less access to computers, and thus people growing up with that language appear to have less programming aptitude or ability to understand certain programming concepts.
In short, I wouldn't give much credence to the idea that language inhibits anyone's ability to understand anything in particular. The human mind is much too flexible and adaptable for that to be true.
This seems analogous to the Sapir-Whorf Hypothesis - that the facilities of a language affect the ease which which one can cogitate about certain subjects, or in the words of the Wikipedia article:
"The linguistic relativity principle (also known as the Sapir-Whorf Hypothesis) is the idea that the varying cultural concepts and categories inherent in different languages affect the cognitive classification of the experienced world in such a way that speakers of different languages think and behave differently because of it."
While there appears to be little definitive information here, the discussions appear to be relevant to the question, and perhaps worthy of further exploration.
Just a few random thoughts. I think the influence is generally very weak and can most of the time be neglected but they do exist and sometimes they can make us feel them.
In Chinese grammar, for example, we don't quite distinguish between plural and singular forms, but I wouldn't think we Chinese have any noticeable difficulty understanding the concepts of scalar and array in Perl. The reason might be this: although we generally don't need particular suffixes or changes in form to indicate whether something is singular or plural, we do have the concepts of plural and singular and we mostly depend upon the context to tell them apart. Grammar-wise, the context in Chinese may possibly be way more important than that in those languages belonging to indo-european family. We omit a lot of things sometimes when they have already been mentioned and sometimes when we just presume that these things can be implicitly well understood by the listener. In either case, we don't need those indefinite and definite articles (a, an, the) or those relative pronouns like, that, which and who, to indicate whether they're being mentioned for the first time or yet another time again. Maybe that's partially why I feel very comfortable with Perl's default variable "$". print; chomp; split; all act upon $, which has never ever been mentioned. But this is quite subjective.
I think the Chinese language is more characterized by implicitness and fuzziness than Indo-european languages. For example, We never ever pay attention to subject verb agreement and we never ever do verbal conjugation to denote tenses. This could mean that the Chinese are inclined use a not quite so logical mode of thinking. One of my teachers onced used an example to try to generalize (or maybe over-generalize)the difference between Chinese non-logical mode of thinking and American logical mode of thinking.
If the American version of quarrelling should be this:
“I can lick you.” “No, you can’t.” “Yes, I can.” “No, you can’t.” “I can.” “you can’t.” “Can!” “Can’t!”
The Chinese version (translated in English) would be something like this:
I can lick you. How dare you! What if I dare? Then you try. Try? Hm, you wait and see. Wait and see? I’m not afraid. Not afraid? OK. You don’t run away. Who runs away? Come on and lick
Well, I agree that there may be some differences between Chinese way of thinking and that of other countries but the example looks like a stereotype because the Chinese may easily switch to the use of the American version. Back to the question, I think the language and culture may indeed influence a programmer's learning process in one way or another but this influence is defninitely not decidingly noticeable. Maybe because of the culture you're exposed to makes you feel a little bit uncomfortable to get used to some notions in some programming language, recursion or whatever, but time will solve it.
I was recently reading about a study that looked at how the grammar of someone's native language affected their speed of learning math. ... Important: the only answers I'm interested in are either references to scientific studies, or personal observations from someone intimately familiar with a particular culture/language, including from their own experience.
I learned a lot of maths before I started programming (enough to count as "intimately familiar"), and IMO programming is relatively easy: more tangible.
Sometimes I've wondered whether it's beneficial to know more than one human language: if you only know one language, then you might think of the words "cat" and "dog" as being values, i.e. synonymous with cat and dog objects; but if you're fluent in more than one language, then "cat" and "dog" become pointers: because for example the French words "chat" and "chien" are referring/pointing to the same objects as "cat" and "dog", and so clearly there's a distinction between the word and the object.
It's disappointing that you post the question without linking to the article which inspired it. I thought of "reverse polish notation" and wondered whether that was at all the kind of differences in "grammar" that were considered in the original study.
The reference you cite seems to rest on the assumption that making it easier helps with learning. In my understanding, there is a countereffect: without enough challange, you're not learning enough.
There are theories/studies (anyone with a link?) that development of language created crucial pressure on expanding the cerebral cortex and thus "made us human". (in very darwinistic terms: more grey matter ==> better language capabilities ==> better teamwork ==> better survival as a group). So language complexity can't be all bad for learning.
(My only qualification is being an eager follower of The Frontal Cortex blog, so take this with a grain of salt.)
In german we have a strange ordering of numbers: 10^0 and 10^1 positions are switched, but others are normal, (e.g. 25 is 'five and twenty', 125 is 'one hundred five and twenty'). It's been claimed that this makes learning numbers harder, and thus german should adopt a more intuitive ordering.
I guess that it helps a lot with doing additions in your head - at least if you stay below 100 or 200 - You can first add the 10^0 position and already say it / write it down while taking any carry into account for the 10^1 position.
(That doesn't continue for 10^2, I guess that would be done in writing by the majority anyway)
Also: abstractions. There are languages where numbers aren't abstracted from objects, "two coconuts" and "two sabretooth tigers" don't share a common "two" word / concept. Such a language would probably be very bad for developing math skills. Here the abstraction (separating number and object) in language is important.
Generally, I'd say the language has a strong effect on shaping a developing mind, and I see no reason why this should not extend to culture.
Of course it's still open what would be the "right kind of complexity" - for what, and how particular language features affect general improvement vs. establishment of an elite (i.e. "sharpening the skills of the gifted, while hampering the rest").
Interesting Question, no doubt - looking forward to other replies.
发布评论
评论(5)
免责声明:在进入编程领域之前,我是一名文化人类学家,所以你知道我在这里会趾高气扬。
显然,一个人的历史会影响他们完成任何特定任务的能力,但我认为这与一个人语言的结构或语法关系不大,而与该语言所在文化的特定物质条件有关。说。
例如,20世纪60年代的两位人类学家前往非洲各个社区,测试了人们对各种视错觉的敏感性。这是一个经典的:
在这种错觉中,底线看起来更长,因为连接它的有角度的线使它变得更长似乎在远处。
这些人类学家发现,在许多非洲文化中,这种错觉根本不起作用——人们认为线条的长度相同。通过完善研究,他们发现唯一容易受到这种错觉影响的人是在城市环境中长大的人。他们假设这种错觉对来自偏远丛林环境的人不起作用,因为这些人很少或根本没有直角和在很远的距离看东西的经验。
我的观点是,即使你成功地发现了程序员的母语和他们在编程的某些方面的能力之间的相关性,你也不能确定这种相关性不是虚假的。例如,您可能认为亚洲人往往驾驶不好,您甚至可以通过统计数据证明这一点。然而,如果您随后得出结论,“不良驾驶”是亚洲人的某种基本特征,那么您就会忽略这样一个事实:亚洲人更有可能来自亚洲,在成长过程中驾驶汽车(甚至)的经验比西方人(尤其是美国人)少得多。
对于编程,我们可能会认为某种特定的语言会抑制编程能力,而没有注意到使用该语言的社会接触计算机的机会要少得多,因此使用该语言长大的人似乎很少会编程理解某些编程概念的天赋或能力。
简而言之,我不太相信语言会抑制任何人理解特定事物的能力。人类的思维太灵活、适应性太强,不可能是真的。
Disclaimer: I was a Cultural Anthropologist before I got into programming, so you know I'm going to be on a high horse, here.
Obviously, a person's history will have an impact on their aptitude for any particular task, but I think this has less to do with the structure or grammar of a person's language than it does with the particular material conditions of the culture in which that language is spoken.
For example, a pair of Anthropologists in the 60's went to various African communities and tested people's susceptibility to various optical illusions. Here is a classic one:
In this illusion, the bottom line looks longer, because the angled lines connecting it make it appear to be off in the distance.
These Anthropologists found that in many African cultures, the illusion doesn't work at all - people consider the lines to be the same length. By refining their study, they found that the only people who were susceptible to the illusion were people who had grown up in an urban environment. They hypothesized that the illusion did not work on people from remote jungle environments, because these people had little or no experience with right angles and seeing things at very long distances.
My point with this is that even if you successfully found a correlation between programmers' native languages and their abilities with certain aspects of programming, you couldn't be sure that the correlation wasn't spurious. For example, you might think that Asians tend to be bad drivers, and you might even be able to demonstrate this statistically. If you then concluded, however, that "bad driving" is some sort of fundamental characteristic of Asian-ness, you would be ignoring the fact that Asians are more likely to be from Asia, and thus to have had much less experience driving cars (or even being in cars) while growing up than Westerners (and especially Americans) have had.
With programming, we might think that a particular language inhibits programming ability, and not take note of the fact that the society in which that language is spoken has much less access to computers, and thus people growing up with that language appear to have less programming aptitude or ability to understand certain programming concepts.
In short, I wouldn't give much credence to the idea that language inhibits anyone's ability to understand anything in particular. The human mind is much too flexible and adaptable for that to be true.
这似乎类似于萨皮尔-沃尔夫假说——一种语言的便利性会影响人们思考某些主题的难易程度,或者用维基百科文章的话来说:
“语言相对论原理(也称为萨皮尔-沃尔夫假说)假设)是这样一种观点,即不同语言固有的不同文化概念和类别会影响经验世界的认知分类,从而导致不同语言的使用者的思维和行为有所不同。”
(http://en.wikipedia.org/wiki/Linguistic_relativity)
虽然似乎很少这里有明确的信息,讨论似乎与问题相关,也许值得进一步探索。
This seems analogous to the Sapir-Whorf Hypothesis - that the facilities of a language affect the ease which which one can cogitate about certain subjects, or in the words of the Wikipedia article:
"The linguistic relativity principle (also known as the Sapir-Whorf Hypothesis) is the idea that the varying cultural concepts and categories inherent in different languages affect the cognitive classification of the experienced world in such a way that speakers of different languages think and behave differently because of it."
( http://en.wikipedia.org/wiki/Linguistic_relativity )
While there appears to be little definitive information here, the discussions appear to be relevant to the question, and perhaps worthy of further exploration.
只是一些随意的想法。我认为这种影响一般都很弱,很多时候可以忽略不计,但它确实存在,有时能让我们感受到。
例如,在中文语法中,我们不太区分复数和单数形式,但我不认为我们中国人理解 Perl 中标量和数组的概念有任何明显的困难。原因可能是这样的:虽然我们通常不需要特定的后缀或形式上的变化来指示某物是单数还是复数,但我们确实有复数和单数的概念,并且我们主要依赖上下文来区分它们。从语法角度来看,汉语的语境可能比印欧语系语言的语境重要得多。有时,当我们已经提到过很多事情时,或者当我们只是假设这些事情可以被听众很好地理解时,我们就会省略掉它们。无论哪种情况,我们都不需要那些不定冠词和定冠词(a、an、the)或那些关系代词,如 that、which 和 who,来表明它们是第一次还是再次被提及。也许这就是我对 Perl 的默认变量“$”感到非常满意的部分原因。打印;咀嚼;分裂;一切都对 $ 起作用,而这从未被提及。但这是相当主观的。
我认为汉语比印欧语系语言更具有含蓄性和模糊性的特点。例如,我们从不注意主语动词一致,也从不进行动词变位来表示时态。这可能意味着中国人倾向于使用不太符合逻辑的思维模式。我的一位老师曾经用一个例子试图概括(或者可能过度概括)中国非逻辑思维模式和美国逻辑思维模式之间的差异。
如果美国版的争吵应该是这样的话:
“我可以舔你。”
“不,你不能。”
“是的,我可以。”
“不,你不能。”
“我可以。”
“你不能。”
“能!”
“不能!”
中文版(翻译成英文)是这样的:
我可以舔你。
你怎么敢!
如果我敢呢?
那你试试。
尝试?嗯,你等着瞧吧。
等等看?我不害怕。
不害怕吗?好的。你别跑了。
谁逃跑了?来吧,舔
好吧,我同意中国的思维方式和其他国家的思维方式可能存在一些差异,但这个例子看起来像是一个刻板印象,因为中国人可能很容易转向使用美国版本。回到问题,我认为语言和文化确实可能以某种方式影响程序员的学习过程,但这种影响绝对不是显而易见的。也许因为你所接触的文化让你对某些编程语言、递归或其他概念中的一些概念感到有点不舒服,但时间会解决它。
Just a few random thoughts. I think the influence is generally very weak and can most of the time be neglected but they do exist and sometimes they can make us feel them.
In Chinese grammar, for example, we don't quite distinguish between plural and singular forms, but I wouldn't think we Chinese have any noticeable difficulty understanding the concepts of scalar and array in Perl. The reason might be this: although we generally don't need particular suffixes or changes in form to indicate whether something is singular or plural, we do have the concepts of plural and singular and we mostly depend upon the context to tell them apart. Grammar-wise, the context in Chinese may possibly be way more important than that in those languages belonging to indo-european family. We omit a lot of things sometimes when they have already been mentioned and sometimes when we just presume that these things can be implicitly well understood by the listener. In either case, we don't need those indefinite and definite articles (a, an, the) or those relative pronouns like, that, which and who, to indicate whether they're being mentioned for the first time or yet another time again. Maybe that's partially why I feel very comfortable with Perl's default variable "$". print; chomp; split; all act upon $, which has never ever been mentioned. But this is quite subjective.
I think the Chinese language is more characterized by implicitness and fuzziness than Indo-european languages. For example, We never ever pay attention to subject verb agreement and we never ever do verbal conjugation to denote tenses. This could mean that the Chinese are inclined use a not quite so logical mode of thinking. One of my teachers onced used an example to try to generalize (or maybe over-generalize)the difference between Chinese non-logical mode of thinking and American logical mode of thinking.
If the American version of quarrelling should be this:
“I can lick you.”
“No, you can’t.”
“Yes, I can.”
“No, you can’t.”
“I can.”
“you can’t.”
“Can!”
“Can’t!”
The Chinese version (translated in English) would be something like this:
I can lick you.
How dare you!
What if I dare?
Then you try.
Try? Hm, you wait and see.
Wait and see? I’m not afraid.
Not afraid? OK. You don’t run away.
Who runs away? Come on and lick
Well, I agree that there may be some differences between Chinese way of thinking and that of other countries but the example looks like a stereotype because the Chinese may easily switch to the use of the American version. Back to the question, I think the language and culture may indeed influence a programmer's learning process in one way or another but this influence is defninitely not decidingly noticeable. Maybe because of the culture you're exposed to makes you feel a little bit uncomfortable to get used to some notions in some programming language, recursion or whatever, but time will solve it.
在开始编程之前,我学了很多数学(足以算作“非常熟悉”),而且我认为编程相对容易:更具体。
有时我想知道了解一种以上的人类语言是否有益:如果你只了解一种语言,那么你可能会认为“猫”和“狗”这两个词是值,即猫和狗对象的同义词;但如果您精通一种以上语言,那么“cat”和“dog”就成为指针:因为例如法语单词“chat”和“chien”引用/指向与“cat”和“相同的对象”狗”,所以这个词和这个物体之间显然是有区别的。
令人失望的是,您发布问题时没有链接到激发该问题的文章。我想到了“逆波兰表示法”,想知道这是否就是原始研究中考虑的“语法”差异。
I learned a lot of maths before I started programming (enough to count as "intimately familiar"), and IMO programming is relatively easy: more tangible.
Sometimes I've wondered whether it's beneficial to know more than one human language: if you only know one language, then you might think of the words "cat" and "dog" as being values, i.e. synonymous with cat and dog objects; but if you're fluent in more than one language, then "cat" and "dog" become pointers: because for example the French words "chat" and "chien" are referring/pointing to the same objects as "cat" and "dog", and so clearly there's a distinction between the word and the object.
It's disappointing that you post the question without linking to the article which inspired it. I thought of "reverse polish notation" and wondered whether that was at all the kind of differences in "grammar" that were considered in the original study.
您引用的参考文献似乎基于这样的假设:使其变得更容易有助于学习。在我看来,这会产生反作用:如果没有足够的挑战,你就学得不够。
有理论/研究(有联系的人吗?)认为语言的发展对大脑皮层的扩张产生了至关重要的压力,从而“使我们成为人类”。 (用非常达尔文主义的术语来说:更多的灰质 ==> 更好的语言能力 ==> 更好的团队合作 ==> 作为一个群体更好的生存)。因此,语言的复杂性对于学习来说并不全是坏事。
(我唯一的资格是成为额叶皮层博客的热心追随者,所以对此持保留态度。)
在德语中,我们有一个奇怪的数字顺序:10^0 和 10^1 位置被切换,但其他是正常的(例如,25 是“五和二十”,125 是“一百五和二十”)。据称,这使得学习数字变得更加困难,因此德语应该采用更直观的顺序。
我猜想它对你在头脑中做加法有很大帮助 - 至少如果你保持在 100 或 200 以下 - 你可以先添加 10^0 位置,然后在记下时就已经说出来/写下来10^1 位置的任何进位。
(这不会持续 10^2,我想无论如何,大多数人都会以书面形式完成)
另外:抽象。在某些语言中,数字并不是从物体中抽象出来的,“两个椰子”和“两只剑齿虎”没有共同的“两个”单词/概念。这样的语言可能非常不利于数学技能的发展。在这里,语言中的抽象(将数字和对象分开)很重要。
一般来说,我认为语言对塑造发展中的思想有很大的影响,我认为没有理由不将这种影响延伸到文化上。
当然,什么是“正确的复杂性”仍然是开放的——具体的语言特征是什么以及如何影响总体改进与精英的建立(即“提高有天赋的人的技能,同时阻碍其他人”)。
毫无疑问,有趣的问题 - 期待其他答复。
The reference you cite seems to rest on the assumption that making it easier helps with learning. In my understanding, there is a countereffect: without enough challange, you're not learning enough.
There are theories/studies (anyone with a link?) that development of language created crucial pressure on expanding the cerebral cortex and thus "made us human". (in very darwinistic terms: more grey matter ==> better language capabilities ==> better teamwork ==> better survival as a group). So language complexity can't be all bad for learning.
(My only qualification is being an eager follower of The Frontal Cortex blog, so take this with a grain of salt.)
In german we have a strange ordering of numbers: 10^0 and 10^1 positions are switched, but others are normal, (e.g. 25 is 'five and twenty', 125 is 'one hundred five and twenty'). It's been claimed that this makes learning numbers harder, and thus german should adopt a more intuitive ordering.
I guess that it helps a lot with doing additions in your head - at least if you stay below 100 or 200 - You can first add the 10^0 position and already say it / write it down while taking any carry into account for the 10^1 position.
(That doesn't continue for 10^2, I guess that would be done in writing by the majority anyway)
Also: abstractions. There are languages where numbers aren't abstracted from objects, "two coconuts" and "two sabretooth tigers" don't share a common "two" word / concept. Such a language would probably be very bad for developing math skills. Here the abstraction (separating number and object) in language is important.
Generally, I'd say the language has a strong effect on shaping a developing mind, and I see no reason why this should not extend to culture.
Of course it's still open what would be the "right kind of complexity" - for what, and how particular language features affect general improvement vs. establishment of an elite (i.e. "sharpening the skills of the gifted, while hampering the rest").
Interesting Question, no doubt - looking forward to other replies.