编程语言中的文化问题
我想知道生产力是否与程序员是否以英语为母语有关。 我在日本工作,我可以告诉你,日本程序员很难获得语言的英语部分(保留关键字、函数名称、教程等),这对他们来说不自然,而且他们的思维过程因语言映射开销而减慢。 您能分享一下您与非英语母语程序员打交道的经验吗?克服这个障碍是否容易,或者母语为英语的程序员永远有一点优势?
I'm wondering if productivity can be correlated to whether a programmer is a native English speaker or not. I work in Japan and I can tell you that Japanese programmers struggle in getting the English part of a language (reserved keywords, function names, tutorials etc), it's just not natural for them and their thinking process is slow down by a language mapping overhead. Can you share your experience in dealing with non-native English speaker programmers, is it easy to overcome this barrier or will native English speakers forever have a little advantage?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
我的母语不是英语,但作为一名程序员,我在许多国家(包括我现在生活和工作的美国)都非常高效……但那是因为我总是付出一些努力在我的非母语条件允许的情况下尽可能擅长英语。 我确实相信强大的英语能力可以在很多方面帮助提高编程(以及许多其他类型的工程——我开始设计芯片和硬件系统——以及更普遍的“知识工作”)的表现。
作为 Python 领域公认的权威,并且在 C++ 和其他编程语言方面也相当强大,我经常被问到“我应该学习什么语言来提升我的职业生涯”……而我的答案一直是“英语”!
我也向以英语为母语的人给出了这个答案:我所看到的以英语为母语的人所犯下的粗心(或阅读障碍引起的,很难说)的拼写错误、语法错误和各种错误用法的数量,并不多。比我从非母语人士那里观察到的数字要低得多。 每一个这样的错误都会损害沟通的有效性和准确性......而知识工作(包括编程)首先是关于沟通的!
I'm not a native speaker of English, yet I've been quite productive as a programmer in many countries (including the USA, where I live and work now)... but that's because I've always put some effort into being as good at English as my non-native-speaker condition will allow. I do believe a strong competence in English helps performance in programming (and many other kinds of engineering -- I started out designing chips and HW systems -- and more generally "knowledge work") in many, many ways.
As a recognized authority in Python, and pretty strong in C++ and other programming languages as well, I'm often asked "what language should I study to enhance my career"... and my answer's long been "English"!!!
I give this answer to native speakers, too: the amount of careless (or dyslexia-caused, it's hard to tell) spelling mistakes, syntax bloopers, and malapropisms of all kinds, that I've seen perpetrated by native speakers of English, isn't much lower than the number I've observed from my fellow non-native-speakers. Each such mistake hurts communication effectiveness and precision... and knowledge work (including programming) is about communication first and foremost!
我自己的母语是德语,我没有遇到任何 API 中的关键字或命名约定问题,这些问题会影响我的工作效率,但我必须承认,当我使用德语时,我对英语已经有了基本的了解。学会了我的第一门编程语言。
我目前在台湾与一个由台湾人(中国人)、瑞典人、西班牙人和几个英语母语者(美国、南非)组成的混合团队一起工作,英语是会议、代码文档、规范等的共同点,我没有观察到程序员的母语对编码技能有重大影响。
在我描述的场景中,每个参与者都至少掌握了基本的英语水平。 您可以看到由于函数名称或注释中偶尔出现拼写错误而导致的熟练程度差异,但根据我的经验,您不能将其直接与代码质量联系起来。
另外,考虑到大多数新项目的大多数文档和教程都只有英文版本(或者至少首先,在第一个翻译出现之前),我认为世界各地的大多数程序员都已经掌握了相当水平的被动英语用于阅读 - 不一定是为了在其中积极交流 - 我猜这就是处理关键字和函数名称等语言固有问题所需的全部,尽管我什至不认为语言关键字是一个问题。 如果你从整体上看语法结构,
for
关键字与英语中的“for”并没有真正的关系,不是吗?另一个不同的问题是一般的沟通。 如果您的团队没有一种让每个人都可以有效沟通的共同语言,这会对生产力产生巨大影响。 但该语言与团队使用的编程语言完全无关,并且根本不必是英语 - 根据我的经验,所有技术术语仍然是英语,无论讨论是用德语还是中文。
I am a German native speaker myself and I haven't experienced any problems with keywords or naming conventions in APIs that would have had an effect on my productivity, but I have to admit that I had a basic understanding of English by the time that I picked up my first programming language.
I am currently working in Taiwan with a mixed team of Taiwanese (Chinese), Swedish, Spanish and several English native speakers (US, South Africa) with English being the common denominator for meetings, code documentation, specification etc. and I have not observed that the native language of a programmer had significant impact on coding skills.
In the scenario I am describing, everyone involved has mastered at least a basic level of English. You can see the difference in proficiency due to the occasional spelling mistake in function names or comments, but based on my experience, you cannot directly link that to code quality.
Also, given that most documentation and tutorials are available in English only (or at least first, before the first translations pop up) for most new projects, I'd assume that most programmers world wide would have picked up a decent level of passive English for reading - not necessarily for actively communicating in it - and that's all I would guess it takes to deal with language intrinsic issues like keywords and function names, even though I wouldn't even consider language keywords an issue. The
for
keyword does not really relate to "for" in the English language, if you look at the syntactic construct as a whole, does it?A different issue is communication in general. If your team does not have a common language in which everyone can communicate efficiently, that has a huge impact on productivity. But that language is completely unrelated to the programming language used by the team and does not have to be English at all - based on my experience all technical terms will still be English though, weather the discussion is in German or Chinese.
我是墨西哥人,不是以英语为母语的人,据我所知,思维过程应该完全相同,一旦你习惯了这种语言(作为开发人员,你将终生面对它),你应该能够为了做同样的事情,我坚信编程语言会成为你自然语言的一部分。
另外,我在美国的一些公司工作,我认为他们对我的工作非常满意,我相信所有程序员都需要学习英语,但我认为思维过程不应该受到影响。 这对你的程序员来说需要一些努力,但我认为如果他们足够好,他们将能够克服语言障碍。
I'm Mexican not a native English speaker as far a I can tell it that the thinking process should be exactly the same and once you get used to the language (as a developer you'll face it all your life) you should be able to do the same things, I strongly believe that the programming language becomes a part of your natural language.
Also I work with some company in the U.S. and I think they're pretty much satisfied with my work, I believe that all programmers need to learn English but I don't think that the thinking process should be affected. It will take some effort for your programmers but I think if they're good enough they will be able to get pass the language barrier.
你不必是真正以英语为母语的人才能保持超高的工作效率,但是对语言的高度掌握肯定会有所帮助,尤其是当你超越“hello world”并开始使用包含并发等大词的库时。
我的母语是日语,现在在美国基本上可以说英语,但我不认为自己会说日语根本就是生产力低下的程序员。 我怀疑日本的部分问题在于,语言与英语的距离太远,他们最终发明了难以理解的大汉字单词,或者直接导入片假名语音,这对他们来说可能毫无意义。
当你处于这种状态时,我可能会用编程语言本身来思考,所以你在家里说哪种自然语言可能并不重要。 有太多的黑客的母语不是英语,例如 Linus、Guido 和 Matz。
You don't have to be real native English speaker to be super productive, but having high command in the language would definitely help especially once you go beyond "hello world," and start using libraries with big words like concurrency.
I natively spoke Japanese, and I now mostly speak ok Engrish in US, but I don't consider myself to be sub-productive programmer at all. Part of the problem in Japan I suspect is that the language distance from English is so far off, they end up inventing big Chinese character words that's hard to understand or straight off import to katakana phonetics, which probably makes no sense to them.
When you are in the zone, I'd probably be thinking in the programming language itself, so it probably doesn't matter which natural language you speak at home. There are too many hackers who are not native English speaker like Linus, Guido, and Matz to name a few.
我的母语是英语,但我一生的大部分时间都在研究人类语言和数字语言。
我猜想,一个人的语言在书写系统、结构和词汇上与英语的距离越远,他的日子就越难过。 日语是一种与英语截然不同的语言,而德语(例如)则更接近。 在其他条件相同的情况下,我预计以几乎所有欧洲语言为母语的人都会比非欧洲语言的人过得更轻松。
I am a native speaker of English, but I've been studying languages, both human and digital, for most of my life.
I'd guess that the further one's language is from English in its writing system, structure, and vocabulary, the harder the time he'll have. Japanese is a profoundly different language from English, whereas German (for instance) is much closer. I would expect a native speaker of nearly any European language to have a much easier time of it than a non-European one, all else being equal.
作为非英语母语人士,我可以告诉你,是的,以英语为母语的人比非英语母语人士有明显的优势。 我发现英语语言范式在某些编程语言中根深蒂固。 阅读文档的速度较慢,因为翻译技术术语是最困难的。
我认为英语是程序员必备的技能。
As non-native English speaker I can tell you that yes, native English speakers have a clear advantage over non-native ones. I find the english language paradigm to be too deep ingrained in some programming languages. Reading documentation is slower as translating technical terms is most difficult.
I think english is a must-have skill for a programmer.
作为一个非英语母语的程序员,我可以说我没有任何问题,主要是因为我在学习编程的同时学习英语,现在(我认为)我两者都精通。
然而,我认为我可以理解这样一个事实:语言与英语越不同,就越难理解语言的英语部分。 日语是一种非常不同的语言的一个很好的例子,但即便如此,学习英语也必须被视为成为一名优秀程序员所必须做的事情。
能够用不同的语言简洁地表达你的想法就是编程的意义所在,所以学习英语是一种练习的方式(对于非母语人士来说甚至可能是一个优势,因为他们必须首先练习学习英语)。 但当然,并不是每个人都具有相同的语言能力。
As a non-native English speaker programmer I can say I've had no problem, mainly because I learned english while learning to program and now (I think) I'm proficient at both.
However, I think I can relate to the fact that the more different the language is to English, the harder it'll be to grok the English parts of languages. Japanese is a great example of a very different language, but even then, learning English has to be thought as of something you have to do to become a good programmer.
Being able to express concisely your ideas in a different language is what programming is about, so learning English is a way to practice (and might even be an advantage to non native speakers, given that they must first practice learning English). But of course, not every person has the same ability regarding languages.
我不认为母语英语和非英语母语之间存在分歧。 从日本人或中国人的角度来看,荷兰或欧洲其他国家的人都是以英语为母语的。 那是因为英语的语言和文化与当地的语言和文化很接近。
作为一个非英语母语的人,我从来没有遇到过问题,我在荷兰和以色列工作过的合作开发人员也是如此。
“西方”和“东方”之间的鸿沟更多。 我已经学习(或尝试)普通话,当你学习时,你会意识到语言结构和思维过程与欧洲语言有多么不同。 我可以想象,作为一个以日语或中文为母语的人,你会因编程对英语的偏见而挣扎。
I don't think that the divide is between native and non-native English speakers. From a Japanese or Chinese perspective people in Holland or the rest of Europe for that matter are native English speakers. That's because the English language and culture is close to the local language and culture.
I, as a non-native English speaker, have never had problems, and this is also the case for my co-developers in Holland and Israel where I've worked.
The divide is more between the "west" and "east". I have learned (or tried to) Mandarin Chinese, and when you to that you appreciate how different the language structure and thinking process is from the European languages. I can imagine the being a Japanese or Chinese native speaker you struggle with the bias of programming towards English.
会编程的人与不会的人之间存在着巨大的差距,相比之下,能够理解的人之间的距离
90% 和理解
100%
的人其实并不那么引人注目。这同样适用于不同的层次——知道如何写评论但不太懂英语的人仍然会比转向编程的文科专业人士写出更好的评论。
There is such an enormous gap between people who can program and people who can't, that compared to it the distance between people who can understand
90%
of common English words and those who understand100%
isn't really that noticeable.The same applies on different levels -- people who know how to write comments but don't really know English would still write better comments than liberal arts majors who switched to programming.