多语种发展的持续学习
多语种发展的持续学习
原文:https://medium.com/hackernoon/continuous-learning-with-polyglot-development-9308df575a2e

当你的谷歌搜索返回少于一百万个结果时,你发现了一个有趣的发展话题。
在过去的两年里,我花了大量的时间玩不同的编程语言。我已经学习了 ES6 的基础知识,并使用 Node.js 编写了几个 API 和 CLI。)并在 Go 中实践了并发的奇迹。
但是在意识到我已经接触了多少种语言之后,我开始认真思考这个问题。公司应该鼓励多语言软件开发吗?这促使我做了一些基本的搜索,这导致我…有争议的结果。
什么是多语者?
先说一个定义。如果您搜索“多语言开发人员”、“多语言工程师”、“多语言程序员”或任何类似的内容,您可能会得到混合的结果。一些文章将了解两种不同的 web 框架视为通晓多种语言。其他人认为了解两家云提供商就是通晓多种语言。
尼尔·福特在 2006 年创造了特定的短语“多语言编程”。然而,出于这篇文章的目的,我将从更一般的语言学维基百科对多语言的定义开始:
多语或多语种是掌握多种语言的能力,或已经掌握多种语言的状态。
在软件开发的情况下,这将转化为:
通晓多种语言的开发人员有能力掌握或已经掌握使用多种编程语言进行开发
首先,反对成为多语言开发者的理由是什么?
反对多语言开发者的案例
搜索后,第一个链接是 TechRepublic 的一个帖子,标题是“开发人员正在叫停多语言编程”。这篇文章的导语如下:
尽管开发人员在编程语言、数据库等方面享受到了新的选择,但他们越来越多地要求进行整合以简化开发。
其他几篇文章呼应了这些想法。他们提到多语言软件开发增加了复杂性,或者增加了公司维护项目的成本。诸如来自 DZone 的这些 两个的帖子提到了上述问题以及更多。
在我所读到的大部分内容中,多语言开发的不利因素往往分为两类:
- 对于公司或开发商的赞助商来说,使用多种语言工作成本高/不可维护/风险大/复杂
- 对于开发人员来说,专注于多语言开发是复杂/累人/分散注意力的
虽然这些都是合理的担忧,但我认为如果以正确的方式处理,多语言开发者的情况会更好。
多语言开发者的案例
值得注意的是,支持多语言开发的帖子数量要大得多。最大的焦点似乎是多国语言的发展如何让人们,正如迪安·万普勒所说的,“为特定的工作使用最好的工具。”
有数百个例子,包括 Emacs 和 Adobe Lightroom 等流行工具,都是使用多语言开发构建的。但是我要从一个不同的角度来看这个问题:让我们看看人类语言世界中的多种语言!
如果你告诉父母让他们的孩子学习第二种语言是个坏主意,他们会怀疑地盯着你。
你可能已经看过至少一篇吹捧双语或多语优势的文章。常见的好处包括打开新机会的大门,增加思维的多样性,更好地了解不同的文化,以及更受重视。
有研究指出了掌握多种人类语言的积极好处。在现有研究的一个概述中,作者写道“……使用多种语言的人在使用执行功能系统方面有持续的无意识练习……”(Diamond 332)。在对现有文献的荟萃分析中,另一位作者写道,“语言也显示出解决问题能力增强的证据,特别是在需要执行控制的任务上……”(ades ope 210)。
从个人层面来看,通晓多种人类语言似乎有很多好处。虽然似乎很少有(如果有的话)关于多语言编程(以及延伸到多语言开发)的认知优势的研究,但让我们抽象地考虑一下:即使一个开发人员在日常工作中没有积极地使用一种以上的语言,他们在其他编程语言中的经验能影响他们的思维过程和决策吗?
绝对的。例如,虽然我经常使用 JavaScript,但我也非常熟悉 C 语言。虽然我没有经常练习 C 编程,但是根深蒂固的边界检查意识、手动内存管理和有限的数据结构支持使我以不同的方式思考问题解决方案,即使是在使用不同的语言时。
多语言开发甚至与编程有关吗?
也许多语言开发并不意味着在项目中积极使用多种语言。与语言学相比,我们对学习新工具和技术的认知益处的理解是有限的。持续学习是我们所有人都必须参与的事情,因为它不仅能让我们更好地应对不断变化的问题和限制,还能以不同的方式让我们的大脑参与进来。
看来,至少,个人应该探索多种语言的发展,作为一种持续学习的形式。理想情况下,公司应该将其视为对员工投资的一种方式,鼓励持续学习最终也会让公司受益。虽然在软件项目中实践新语言并不总是有意义的,但它有助于公司探索新的想法,同时对长期的转变和采用持开放态度。
毕竟,没有比让开发人员互相说服对方他们的编程语言的优点更好的方式来开始一场健康的辩论了。
你怎么想呢?多语言开发有价值吗?它改变了你解决问题的方式吗?留下评论让我知道!