学习任何自然语言,尤其是会进一步促进您的编程生涯吗?[关闭]


52

显然,英语是基于以前的P.SE问题进行编程的主要国际语言(尽管高度支持的注释正确地指出,在主要是英语的网站上问这样的问题会使结果倾斜)。

但是,学习外语进行软件开发是否有好处?例如,中文是否具有完全不同的软件工具,语言,技术等?日语,俄语和其他非拉丁语言怎么样?是否存在仅在其他语言中存在的软件开发语言,工具等整个世界?

还是知道这些语言的人使用我们知道和喜欢的工具和语言?


2
+1。好问题。我很想认识自己。
2013年

2
不太常见的语言通常会使用作者的母语编写书籍/教程。例如,很长一段时间以来,大多数Ruby东西在流行之前都是日本人。
jozefg

6
在过去,如果您是控制台视频游戏开发商,那么了解日语非常有用。
David Sergey 2013年

2
与此相关的有趣页面在Wikipedia上有关基于非英语的编程语言
亚历山大

1
我曾与中国和俄罗斯的开发人员一起工作过,他们使用的是英语,所以我想说,虽然提高技能总是有益的,但是学习一种困难的语言(我的意思是它不使用西方字母)的工作是可能微不足道。
Heatwave 2013年

Answers:


44

我要回答你的标题问题。答案是肯定的,但不是出于您追求的原因。IMO使用多种语言,可以帮助您将思想与表达思想的事物区分开。出于类似的原因,如果您从一种语言开始,我建议至少学习一种基于非c的语法语言。


17
+1知道多种人类语言可以帮助您进行抽象思考,这通常适用于软件开发。
艾伦2013年

4
+1(如果可以的话,请更多)我已经看到太多的人为自己制造问题,因为他们无法理解概念和用于描述它的单词之间的区别。
安东

3
我发现了解诸如ASL之类的手语对您总体上的语言有不同的看法
TruthOf42 2013年

1
@ TruthOf42至少您不会在ASL中找到注释的代码。
2013年

1
@EricDong我不知道。我7到8岁的时候就学过挪威语。多年来与人的交往给我的印象是,很多人并没有定期发现自己在口头上思考。我认为了解一种以上的语言将对此有很大帮助。了解ASL可能会提供更多帮助。当然,从非常不同的设计学院学习多种编程语言也有很大帮助。我是一个糟糕的诗人,但我怀疑那很像。您看到的文字越多,表示任何想法的效率就越高。
Erik Reppen

13

不。您不会错过任何学习材料。
作为荷兰语母语人士,我可以向您保证,我的开发环境和大多数参考资料都是用英语编写的。有一些用不同语言编写的教学大纲,但是我可以向您保证,其中没有任何魔术。

但是,我可以想象到关于API的/ webservices /项目的文档或源代码中的注释可以使用不同于英语的其他语言。为此,我建议您讲一些最常用的语言:西班牙语,阿拉伯语和中文


5
这也当然会取决于所选择的领域-游戏,我想日本可能是....很方便
发条-缪

我从事以三种不同语言注释的代码的工作:法语,英语和德语。
2013年

12

当您想专门研究非英语国家/地区开发的特定技术时,这可能很有意义。

例如,SAP是一家德国公司。SAP ERP是一种通常称为“ SAP”的软件的庞然大物,其大多数用户软件模块均以SAP自己的编程语言ABAP编写。作为开发人员,您可以(并且经常不得不)查看ABAP代码。

十年前,ABAP的大部分开发都发生在德国,并且没有政策规定注释和标识符必须使用英语,因此您会在旧式ABAP代码中发现很多德语。

作为ABAP开发人员,我经常需要调试SAP编写的旧代码。我是说德语的母语人士,所以一直在德语和英语之间进行心理切换对我来说是一个小小的烦恼,但是我真的很遗憾每个不会说德语并突然发现自己在源代码中用德语注释过的人。

您还会在较旧的API中找到一些德语。例如,在全局变量中找到当前时间SY-UZEIT。“ Uzeit”是“ Uhrzeit”的缩写,德语是“一天中的时间”。客户KUNNRID 是(“ Kundennummer”),本币金额是BETRH(“ Betrag-Hauswährung”)等。

我听说过一些可怜的非德语ABAP程序员的轶事,这些程序员在ABAP参考书旁边有德语词典。


我在使用TYPO3方面也有类似的经验。
liori 2013年

9

除非您计划像中国这样具有自我维持市场的职业,否则我敢打赌,英语已经足够了。业余爱好者可能会使用其他语言,但是在我看到的所有围绕英语的收费作品中,英语都是强制性的语言。也是出于实际原因。

另一方面,了解更多的语言可以帮助您从事卫星活动。许多程序都是本地化的,翻译和测试都需要人们知道目标语言。这是一种宝贵的“技能”。因此,如果您对此有亲和力,那就继续学习吧。


1
国际海事组织(IMO)通常聘用一位不讲目标语言的翻译员是一个错误。许多美国人可能有能力将外语翻译成英语,但是很少有人能将英语翻译成另一种语言。
凯文·克莱恩

2
当然,程序员作为翻译人员也会很浪费-但如果他能够发现与ln相关的问题就很好了
Balog Pal

8

是的,学习另一种语言将促进您的编程生涯。我认为这是因为学习另一种语言将促进任何职业。

这是由于几个原因,其中一些已经在上面提到过:

  • 学习另一种语言将扩大您的视野。它必定会使您接触到另一种文化和思维方式的各个方面,并为您提供将其映射到自己的想法的经验。显然,这与编程相似,但是它也是人际交流中普遍有用的技能。
  • 学习另一种语言(尤其是第二语言)将帮助您了解自己的语言的工作原理,因为您不得不分析新语言的语法如何工作以及它如何映射到您自己的语言的语法,而不是盲目地接受“这就是来龙去脉”。即使您在职业生涯中只使用母语,更好地理解它也会帮助您更有效地进行交流。
  • 甚至对另一种语言的一点了解也可以使您看起来很棒。除了最小的公司以外,所有公司都必须与外国供应商或客户打交道。即使你们俩都是用英语开展业务,但能够与母语人士交流一些小小的欢乐(例如打招呼)也会给人留下良好的印象。能够创造良好的印象将增加您在公司中的声誉。
  • 即使您使用母语,了解另一种语言也可以帮助您与该语言的母语者更有效地交流。这是因为您可以发现尝试使用外语中常见的结构,并从中获取含义,即使您自己不清楚这些结构。同样,它可以帮助您发现并了解可能出现的任何虚假朋友
  • 很好地了解一种语言为在使用该语言的国家/地区工作提供了可能。这扩大了您的潜在工作机会,这反过来意味着您将有更多的机会来发展自己的职业。

因此,直接回答您的问题:学习外语是否会开辟令人惊奇的新编程语言和学习资源范围?否。它将使您成为更好的软件工程师吗?可能不是直接的。但这是否有助于使您成为一个更好,更全面,更就业的人并促进您的职业发展?绝对。


2
+1!概括地说:这是因为学习任何东西(对于大多数价值而言)都将促进任何职业。但不仅如此。受过良好教育的人只会过上更好的生活。
Ingo 2013年

当API不专注于技术数学或业务时,非英语人士会发现英语的弱点。用一种语言思考,然后用另一种语言(具有不同的规则,语法,语法)进行翻译,需要创造力,想象力和幽默感。
cl-r

7

如果英语是您的母语,那么学习外语可能对您的编程职业没有太大的帮助。就我个人而言,我认为了解外语是一种很好的一般练习,它可以扩大您的视野(“维埃·维拉·史普拉亨·史普里斯特·索菲特·比斯特·门施”),但如果您只是眼前一亮,那可能就不值得大惊小怪了。

除了自我实现之外,在某些情况下,我认为您可能会出于纯粹的务实原因而受益于了解外语:

  • 与国外合作伙伴或客户合作。即使您对沟通的语言不够了解,了解一些基本知识也可能使您意识到沟通中可能出现的问题或外语用户对您的产品可能遇到的问题。
  • 处理任何需要良好国际化的产品。在不了解某些外语基础知识的情况下,您可能会想知道所有复杂的i18n库是做什么用的(例如,为什么消息“%d new messages”可能需要对同一语言进行几种不同的翻译,具体取决于%d的值) 。
  • 它有助于理解正确的Unicode处理的复杂性。

但是,如前所述,在许多情况下,如果仅看一下眼前的收益,就不会付出努力。


6

英语是该领域的主要语言,不仅限于欧盟/美国。

作为以汉语为母语的人,我知道那里的人们正在使用相同的操作系统,编程语言和工具。其中一些被翻译成中文,其余的不如英文小说难。有几种带有中文关键字的“中文编程语言”,它们没有被广泛使用,甚至被认为是严肃的东西。

目前,我住在日本,在这里也看到类似的事情。因此,至少我不认为了解中文或日语或其他神秘的自然语言可以授予访问不可替代资源的权限。

另一方面,我确实受益于(非语言指定的)语义理论。在自然语言和编程语言中,它都帮助我以类似于代码审查的方式来区分和优化表达式。


5

学习另一种语言的唯一直接好处就是可以使您更好地理解i18n周围的问题。也就是说,就像日期格式一样,语法也有不同的规则,因此仅通过为字符串添加占位符就无法完成本地化。

如果您只是想改善自己的编程生涯,可以更有效地利用自己的时间,例如提高现有技能,或者学习不同的编程语言,最好是采用不同的范例

话虽如此,学习另一种语言有许多有益的直接和副作用,特别是如果您是单语的话。如果您没有接触过不同的语言,那么很多对多语种人来说显而易见的事情实际上并不那么明显,例如,我注意到很多单语种人似乎没有意识到依赖语言的笑话(例如如双关语)在翻译时根本不起作用。这可以帮助您避免做出不敏感的错误,我最喜欢的例子是百事可乐的“活着的”广告在中文中被误译为“使死去的祖先活着”的虚假故事。拥有这种额外的敏感性对任何职业都有帮助。

总之,我认为学习一种新语言会带来很多好处。我只是在问这是否是对您时间的有效利用。


我想英语是你的母亲。
图兰斯·科尔多瓦

@ user61852我不知道你怎么得到的,但是你错了。
congusbongus

3

英语是解决问题的语言。

观看此短片。

“您的母语就是您的生活,但是随着英语的加入,您将成为更广泛的对话的一部分,成为有关气候变化或贫困等全球性问题的全球性对话……数学是科学的语言,音乐是情感的语言,现在是英语正在成为解决问题的语言。”

-- Jay Walker, american inventor and entrepreneur

我想如果罗马帝国没有崩溃,我们现在就应该在拉丁文中写作。

绝对地,英语是最常用的语言。我的母语是西班牙语,尽管西班牙语是使用最广泛的语言之一,但是西班牙语的技术材料,文档,教程,博客,问答网站等数量却远远不止英语中的大量资源。 。

同样,英语也具有简洁的特质,使它在许多情况下都毫不含糊。

其他原因:iTunesU。


1
“英语是解决问题的语言。” 这意味着什么?
ypercubeᵀᴹ


2

我能说流利的中文,有时还窥视过中国程序员的世界。他们的大部分学习材料都是英语翻译的,因此您在这方面不会错过任何内容。然而,有趣的是看到编程技术选择中的文化差异。例如,Go在中国似乎比在其他任何国家都更受欢迎。您可以检查谷歌趋势搜索“ golang”:http : //www.google.com/trends/explore ?q=golang#q=golang&cmpt=q


2

尽管英语是事实上的软件开发人员的语言,但有几次我能够在社区网站上找到其他语言的提示和解决方案。自动化翻译可以使此类页面不受干扰,因此能够按原样阅读很高兴。

当然,如果您与精通另一种语言的人一起工作,那么无论是从专业上还是从个人的角度来说,都能以母语进行交流都是非常好的。根据他们的水平和您的水平,学习两个技术用语并使其以最舒适的方式表达自己可能比将其理解变成更容易出现语义错误的语言要容易得多。


自动翻译器可以将“桌子”翻译成西班牙语的“ mesa”,这意味着您可以在餐桌上找到食物,而无论上下文是关于数据库表的。
图兰斯·科尔多瓦

2

这取决于您对职业的了解。

如果您在您所在的国家/地区拥有雇员的工作,并且希望继续工作,那么除了母语和英语之外,您通常不需要其他语言。当您公司的主要客户是外国公司时,您可能应该知道该公司的语言,这是一个例外。例如,许多来自波兰西部的公司大多与德国公司合作,并且知道德语对于作为高级开发人员来说是一个巨大的优势,甚至是要求(尽管初级人员没有与客户联系,他们也不需要讲德语) )。

但是,如果您想成为自由职业者,则需要精通客户的语言。当然,您可以只针对说英语的国家/地区,但是了解例如德国或法国会给您带来更多的机会,并且可能会带来支付更高的合同。

如果您想在国外工作,那要看情况。当然,去美国或英国,英语是正确的选择。在小国(欧洲),有许多说英语的团队,因此作为外国承包商,您可以希望在丹麦或荷兰等许多说英语的工作。

但是在德国这样的大国,说英语的工作是一个例外,如果不知道德国的好话,您就几乎没有找到任何东西的机会。为了获得薪水最高的合同,您需要说流利的德语,但是您可以得到真正的高薪工作


2

这是一个很好的问题。我认为,学习另一种口头语言是有用的,其原因与学习另一种编程语言是同样的原因:它允许您以新的方式思考事物。

不管是好是坏,英语是程序员的通用语言。因此,您不会因为只讲英语而错过太多机会。


1

它似乎这里所有的人似乎都认为有学习另一种语言的任何直接的好处编程直接(编程语言大多是基于英语中,它是计算机科学教科书和杂志等的语言)。

尽管如此,了解外语还是有很多好处的。至少这是我学习几种外语的经历告诉我的。您将学习用其他语言表达事物的不同方法,这将为您提供看待事物的新方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.