迪克斯特拉推荐一个精通母语的人意味着什么?[关闭]


28

Dijkstra在这里写道:

除了数学上的偏爱之外,对母语的掌握也非常出色,这是一名合格的程序员的最重要资产。

我不明白这句话的后半部分。您能否解释或阐述?

PS我在印度长大。我在家里说孟加拉语。我在自己居住的社区讲马拉地语印地语是一种国家语言,口语非常广泛,所以我知道。在学校和大学里,我都以英语为第一语言教我。当然,现在我想使用多种语言,我必须承认我对任何一种语言都没有掌握。这真的影响我的编程能力吗?如果是,怎么办?有什么解决方案吗?


20
有趣的是……我有一个好朋友,他是印度人(泰米尔语),当有人问他如何用“他的语言”说一句话时,我曾经看着他完全陷入僵局。后来和他谈论这件事,我得知他没有语言。他和妻子长大后会说多种不同的语言,他不能和他的姻亲说话。他们俩几乎都说他们遇见的城市的语言和英语。令人着迷。我不知道印度在语言上如此分散。
丹·雷,

4
优秀的程序员也往往也是优秀的作家,这并非巧合;知道如何清楚地表达自己的想法是这两种工艺的必要条件。
乔恩·普迪

1
我不禁怀疑,如果用他的母语(荷兰语)写成,Dijkstra的话是否会有更少的解释,而他(我认为)是他的精通语言。
布伦丹

Answers:


29

尽管我同意alex和quick_now所说的内容,但我相信可能会有不同的说法。这是我自己的理论,我不认为Dijkstra是同一回事。

什么是“语言的掌握”:它是一种能力,它可以构成语言的基本组成部分,并将其放入具有建设性的,有用的短语和句子中。字母和字符本身是没有意义的。您需要将它们放在一起并从中获得意义。言语本身就毫无意义。只有根据语法和语法将它们按适当的顺序排列,它们才能表达出具体的想法。

在计算机编程中不是完全一样吗?我们将一些关键字和符号放在一起,并从中制作出切实可行的东西。编程语言就像自然语言一样,具有符号和语法。精通一种编程语言,需要能够将这些(单独无意义的)符号和规则放在一起,以使某些事情有意义和有用。

我相信这意味着一个人学习人类语言的能力和计算机语言之间存在直接的关联。两者都需要相同的人类能力和思维能力。看看你的同事,你会发现那些编程技能差的人也不会像其他人那样清楚地说或写。那些擅长选择人类语言的人也必须具备成为优秀程序员的技能。


3
+1,这是我阅读Dijkstra陈述时的最初解释。
罗布

1
@quickly_now:“很多程序员可以编写非常好的代码,但缺乏以口头或书面形式进行良好交流的能力”,我对此表示怀疑。我会将其从非常好更改为可以接受。作为承包商30年后,我遇到了很多程序员。口齿不清的人最终可能会产生有效的代码。但是优秀的程序员实际上可以用多种语言编写,包括自然语言和人工语言。
S.Lott

4
成为优秀程序员的本质是成为优秀的沟通者。这就是我的解释方式。
尼尔,

8
@quickly_now,尼尔,阿尼西母;我认为这比口头或书面交流要深一些。我相信他是在谈论语言与认知之间的关系,例如。web.mit.edu/newsoffice/2008/language-0624.html。我认为这意味着精通某种语言(通常是人的母语,因为不熟练地使用第二语言或第三语言并不常见)表示强大的心理语言结构直接与编程能力相对应。
罗布

1
@OnesimusUnbound,我认为Dijkstra提到了母语,因为合乎逻辑的是期望人们会以自己的母语表现出色(在很多情况下,但不是全部,这也是他们的不受干扰的语言),但不一定是第二/第三语言。但是,在现代世界中,情况可能会有所不同,例如,我的英语水平要比母语更好。但这是因为我从未在学校学过
DPD

23

迪克斯特拉(Dijkstra)说,您必须能够使用工作场所的环境语言清晰,简洁,有力地写作和说话。他是完全正确的:除非您能够以他人可以立即理解的方式谈论和撰写技术(和非技术)问题,否则您将受到阻碍并且作为软件工程师的工作效率低下。

这个想法是写关于代码是一样重要的编写代码本身。

因此,这就是一个很好的例子:由于发帖人无法用英语很好地表达自己的观点,我们有多少次看到过好,敏锐,有价值的问题被吹走或结束?答:太多。


7

引言说,您需要了解您的母语(例如您的情况下的马拉地语)。这是一项重要资产。

心理学家通常认为,精通某种语言可以帮助您更好地表达自己的想法。有人说我们所做的所有思考都局限于我们的主要语言。语言(及其知识)越丰富,人就可以更好地交流和组织思想。

了解多种语言也有助于理解不同的思维模式。


7
如果“有人说我们所做的所有思考都局限于母语”是真的,那么我的母语不是(不再)我的母语吗?来吧 我的母语是荷兰语,但是编程时的思考语言是英语……这不仅是因为大多数术语以及几乎所有可帮助我思考编程挑战的文章都是英语。实际上,我发现很难与我说荷兰语,找不到任何东西并且严重依赖事物菜单位置的计算机工作。(另一个为什么个性化菜单很烂的原因)。
Marjan Venema

7

从整体上看,这是一个有趣的清单,但可以追溯到1975年。可以说,在这段时期内,时代在一定程度上发生了变化,使那部分宗旨的某些部分过时了。

我认为程序员应该具备的一项关键技能是有效沟通的能力。这不仅仅是解释。这意味着理解。不管您的工作语言是什么,以英语为母语,尽管不是您的母语,但那些难以有效使用母语进行交流的人在其他任何地方都不会感到更轻松。

一般而言,可以说,无论您的生活水平如何,如果您的母语遇到困难,您在日常生活中都会处于不利地位。

我不会精通他的精通的意思-根据您的上述贡献,我怀疑您对英语的掌握程度足够,并且据此推断,您可以使用其他语言进行有效交流。


真正。我认为Dijkstra有一点要说,但是“程序员”一词应改为“计算机科学家”。当然,科学家需要能够以清晰的语言进行辩论和写作。程序员也是如此:您不会引诱我以为您是用另一种语言与您(也是说母语的)同事吵架的。在荷兰,所有开发环境都是英语,但是当我与同事争论一段代码时,我们就用荷兰语来做。
vstrien 2011年

@vstrien,所以告诉我朋友,如果每个同事都说不同的母语,您将怎么办?多数民众赞成在这里的情况。每个人都来自不同的印度“州”,他们有不同的语言(我不是说方言..我是说语言),希望您可以绕开:P,而这正是我的问题。想一个特定的语言(我负担不起,因为我必须在一个小时的时间内用6个差异ppl讲近3个语言)我想问的是这是否会是一个不好的做法
Chani,

RYUZAKI,这是人们在许多不同领域遭受打击的情况。我曾经在一个拥有3种工作语言的组织中工作。在像您这样的公司中,如果您使用一种工作语言,那就做得不错。您会发现生活中的某些部分会以某些语言运行。
temptar,2011年

@RYUZAKI:对不起,当我说您不使用非母语与您的同事争论时,我不是在指导您。但我认为在这种情况下,找到清晰沟通的方式很重要-我想到的最简单的方法就是使用一种语言互相解释。同样,我不认为这会影响你在你的编程技巧,但肯定它的生产力,如果你不能在通信的代码好痛..
vstrien

1
@temptar:“世界上越来越多的没有应用数学背景的程序员”完全不会使该语句无效。您的观察结果相当于“未经数学方面正式训练的人仍然可以学习编程背后的一些应用数学。” 我同意你的观察。但是,这完全不会使Dijkstra的声明无效(或过时)。确实,这似乎是互补的。
S.Lott,

5

我怀疑他指的是对人们想要的东西有很好的理解-换句话说,良好的言语交流能力。

(对此我偏颇:在编程的背景下,这部分意味着有时您需要了解人们不说的话,或者他们说的话,但不是很清楚。)


1
我还可以在那里将您的想法清楚地传达给其他人。一个跟另一个imo一样重要:)
Demian Brecht

1
我同意您的意见,但我完全不认为Dijkstra在说什么。
罗布

1
这一切使我想起了高中英语文学课。您可以花几个小时来讨论作者的意思。我一直想知道为什么我们不只是去问他们。哦,英国文学。他们中有些现在已经死了。(尽管我始终认为您不应该过多地解释F Scott Fitzgerald-他对世界的看法是通过用威士忌酒瓶观察而形成的。我的英语老师也不喜欢我这么说。)
quick_now 2011年

您可以毫无争议地争论几个小时,也可以用事实来支持您的论点。例如,在同一页面上查看Dijkstra的其他引号,例如。“几乎不可能向曾经接触过BASIC的学生教授良好的编程:作为潜在的程序员,他们在 精神上被肢解, 无法再生。” -再次以语言和认知为主题。
罗布

这样的表述只是煽动性的。Crikey,大约30年前,我开始使用BASIC进行编程,因为它已经存在了。我不认为自己是超人,但我也不是“精神上的残缺,无法重生”。我发现这样的言论令人反感,这意味着我将他所说的其他话视为信誉有限。
quick_now 2011年

2

我认为擅长(任何)语言可以做到这一点-

如果您的观点不清楚,则可以改进方式进行思考,修改和重述。直到您说的正是您希望下一个人(或机器)理解的内容。

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.